Age | Commit message (Collapse) | Author |
|
hurdio_mdmctl allows one to set and clear bits from the modem control
bit vector. However, plausible code paths exist that leave oldbits
uninitialized. Fix this by returning an error instead if retrieving
the oldbits failed and the bit set or clear operation was selected.
Found using the Clang Static Analyzer.
* term/hurdio.c (hurdio_mdmctl): Fix error handling.
|
|
* term/ptyio.c (pty_io_read): Return EIO if the terminal has been closed.
|
|
* libdiskfs/file-set-size.c (diskfs_S_file_set_size): Return EINVAL if
size is negative.
* libnetfs/file-set-size.c (netfs_S_file_set_size): Likewise.
* libtreefs/s-file.c (treefs_S_file_set_size): Likewise.
* storeio/io.c (trivfs_S_file_set_size): Likewise.
* term/users.c (trivfs_S_file_set_size): Likewise.
* trans/null.c (trivfs_S_file_set_size): Likewise.
* trans/streamio.c (trivfs_S_file_set_size): Likewise.
|
|
* term/hurdio.c (hurdio_mdmctl): Pass `newbits` intead of `oldbits` to
`tioctl_tiocmods`.
|
|
* term/users.c (trivfs_S_io_read): Add parentheses to make expression
evaluation priority clear.
|
|
* term/users.c (S_tioctl_tiocsetd): Properly return `err`.
|
|
* term/users.c (S_term_open_ctty): Properly test for `openmodes` containing
at least O_READ or O_WRITE.
|
|
This change fixes a problem that can occur with non-blocking (and also
blocking for very short times) select/poll calls. The problem occurs because
the timeout is implemented at the client side. For a non-blocking call, this
means that (depending on the code path taken in the C library) the client
could get a timeout without a full RPC round-trip to the server. Moving the
implementation of the timeout to the servers guarantees a full round-trip,
and correct results for non-blocking calls.
The modifications in this change depend on the availability of the recently
added pthread_hurd_cond_timedwait_np function in libpthread.
* boot/boot.c (io_select_common): New static function.
(S_io_select): Use io_select_common.
(S_io_select_timeout): New function which makes use of io_select_common.
* console-client/kbd-repeat.c (repeater_select): Add a timeout parameter.
* console-client/pc-mouse.c (repeater_select): Likewise.
* console-client/trans.c (io_select_common): New static function.
(netfs_S_io_select): Use io_select_common.
(netfs_S_io_select_timeout): New function which makes use of io_select_common.
* console-client/trans.h (struct consnode): Add a timeout parameter.
* hurd/io.defs (io_select_timeout): New MIG routine.
* hurd/io_reply.defs (io_select_timeout_reply): New MIG simpleroutine.
* hurd/io_request.defs (io_select_timeout_request): Likewise.
* libdiskfs/io-select.c (diskfs_S_io_select_timeout): New function.
* libnetfs/io-select.c (netfs_S_io_select_timeout): Likewise.
* libpipe/pipe.c (pipe_pair_select): Add a timeout parameter.
* libpipe/pipe.h (pipe_select_readable): Likewise.
(pipe_select_writable): Likewise.
(pipe_pair_select): Likewise.
* libpipe/pq.h: Include <hurd/hurd_types.h>.
* libtrivfs/io-select.c (trivfs_S_io_select_timeout): New function.
* pfinet/glue-include/linux/sched.h: Include <errno.h>.
(interruptible_sleep_on): Function removed, replaced with ...
(interruptible_sleep_on_timeout): New function.
(schedule): Update to use interruptible_sleep_on_timeout.
(schedule_timeout): Likewise.
* pfinet/io-ops.c (io_select_common): New static function.
(S_io_select): Use io_select_common.
(S_io_select_timeout): New function which makes use of io_select_common.
* pfinet/tunnel.c (io_select_common): New static function.
(trivfs_S_io_select): Use io_select_common.
(trivfs_S_io_select_timeout): New function which makes use of io_select_common.
* pflocal/connq.c (connq_listen): Replace noblock with a timeout parameter.
* pflocal/connq.h: Include <hurd/hurd_types.h>.
(connq_listen): Update declaration to replace noblock with a timeout parameter.
* pflocal/io.c (io_select_common): New static function.
(S_io_select): Use io_select_common.
(S_io_select_timeout): New function which makes use of io_select_common.
* pflocal/socket.c (S_socket_accept): Update call to connq_listen to match new
declaration.
* storeio/io.c (trivfs_S_io_select_timeout): New function.
* term/ptyio.c (pty_io_select): Add a timeout parameter.
* term/term.h (pty_io_select): Likewise.
* term/users.c (io_select_common): New static function.
(trivfs_S_io_select): Use io_select_common.
(trivfs_S_io_select_timeout): New function which makes use of io_select_common.
* trans/fifo.c (io_select_common): New static function.
(trivfs_S_io_select): Use io_select_common.
(trivfs_S_io_select_timeout): New function which makes use of io_select_common.
* trans/firmlink.c (trivfs_S_io_select_timeout): New function.
* trans/new-fifo.c (io_select_common): New static function.
(trivfs_S_io_select): Use io_select_common.
(trivfs_S_io_select_timeout): New function which makes use of io_select_common.
* trans/null.c (trivfs_S_io_select_timeout): New function.
* trans/streamio.c (io_select_common): New static function.
(trivfs_S_io_select): Use io_select_common.
(trivfs_S_io_select_timeout): New function which makes use of io_select_common.
|
|
* console/input.c: Switch comment from cthreads to pthreads.
* libnetfs/file-get-fs-options.c: Likewise
* libnetfs/fsys-get-options.c: Likewise
* libnetfs/fsys-set-options.c: Likewise
* libnetfs/shutdown.c: Likewise
* libpager/lock-object.c: Likewise
* nfsd/cache.c: Set back replycachelock as static variable.
* term/hurdio.c: Use pthread_hurd_cond_wait_np instead of pthread_cond_wait.
|
|
Makefiles, headers, types, macros and function calls are renamed where
appropriate.
Most of this work was done by Barry deFreese and Thomas DiModica.
* auth/Makefile: Switch from cthreads to pthreads.
* auth/auth.c: Likewise.
* boot/Makefile: Likewise.
* boot/boot.c: Likewise.
* boot/ux.c: Likewise.
* console-client/Makefile: Likewise.
* console-client/console.c: Likewise.
* console-client/driver.c: Likewise.
* console-client/driver.h: Likewise.
* console-client/generic-speaker.c: Likewise.
* console-client/kbd-repeat.c: Likewise.
* console-client/ncursesw.c: Likewise.
* console-client/pc-kbd.c: Likewise.
* console-client/pc-mouse.c: Likewise.
* console-client/timer.c: Likewise.
* console-client/trans.c: Likewise.
* console-client/vga.c: Likewise.
* console/Makefile: Likewise.
* console/console.c: Likewise.
* console/display.c: Likewise.
* console/input.c: Likewise.
* console/pager.c: Likewise.
* defpager/backing.c: Likewise.
* exec/Makefile: Likewise.
* exec/exec.c: Likewise.
* exec/hashexec.c: Likewise.
* exec/priv.h: Likewise.
* ext2fs/Makefile: Likewise.
* ext2fs/balloc.c: Likewise.
* ext2fs/dir.c: Likewise.
* ext2fs/ext2fs.c: Likewise.
* ext2fs/ext2fs.h: Likewise.
* ext2fs/ialloc.c: Likewise.
* ext2fs/inode.c: Likewise.
* ext2fs/msg.c: Likewise.
* ext2fs/pager.c: Likewise.
* ext2fs/pokel.c: Likewise.
* ext2fs/storeinfo.c: Likewise.
* ext2fs/truncate.c: Likewise.
* fatfs/Makefile: Likewise.
* fatfs/dir.c: Likewise.
* fatfs/fat.c: Likewise.
* fatfs/fatfs.h: Likewise.
* fatfs/inode.c: Likewise.
* fatfs/main.c: Likewise.
* fatfs/pager.c: Likewise.
* fatfs/virt-inode.c: Likewise.
* ftpfs/Makefile: Likewise.
* ftpfs/ccache.c: Likewise.
* ftpfs/ccache.h: Likewise.
* ftpfs/conn.c: Likewise.
* ftpfs/dir.c: Likewise.
* ftpfs/fs.c: Likewise.
* ftpfs/ftpfs.c: Likewise.
* ftpfs/ftpfs.h: Likewise.
* ftpfs/ncache.c: Likewise.
* ftpfs/netfs.c: Likewise.
* ftpfs/node.c: Likewise.
* hostmux/Makefile: Likewise.
* hostmux/hostmux.h: Likewise.
* hostmux/mux.c: Likewise.
* hostmux/node.c: Likewise.
* hostmux/stubs.c: Likewise.
* hurd/shared.h: Likewise.
* isofs/Makefile: Likewise.
* isofs/inode.c: Likewise.
* isofs/lookup.c: Likewise.
* isofs/main.c: Likewise.
* isofs/pager.c: Likewise.
* libcons/Makefile: Likewise.
* libcons/cons-switch.c: Likewise.
* libcons/cons.h: Likewise.
* libcons/dir-changed.c: Likewise.
* libcons/file-changed.c: Likewise.
* libcons/init-init.c: Likewise.
* libcons/vcons-close.c: Likewise.
* libcons/vcons-input.c: Likewise.
* libcons/vcons-move-mouse.c: Likewise.
* libcons/vcons-open.c: Likewise.
* libcons/vcons-scrollback.c: Likewise.
* libdiskfs/Makefile: Likewise.
* libdiskfs/boot-start.c: Likewise.
* libdiskfs/dead-name.c: Likewise.
* libdiskfs/dir-chg.c: Likewise.
* libdiskfs/dir-link.c: Likewise.
* libdiskfs/dir-lookup.c: Likewise.
* libdiskfs/dir-mkdir.c: Likewise.
* libdiskfs/dir-mkfile.c: Likewise.
* libdiskfs/dir-readdir.c: Likewise.
* libdiskfs/dir-rename.c: Likewise.
* libdiskfs/dir-renamed.c: Likewise.
* libdiskfs/dir-rmdir.c: Likewise.
* libdiskfs/dir-unlink.c: Likewise.
* libdiskfs/disk-pager.c: Likewise.
* libdiskfs/diskfs-pager.h: Likewise.
* libdiskfs/diskfs.h: Likewise.
* libdiskfs/file-access.c: Likewise.
* libdiskfs/file-chg.c: Likewise.
* libdiskfs/file-exec.c: Likewise.
* libdiskfs/file-get-fs-opts.c: Likewise.
* libdiskfs/file-get-trans.c: Likewise.
* libdiskfs/file-get-transcntl.c: Likewise.
* libdiskfs/file-getcontrol.c: Likewise.
* libdiskfs/file-getfh.c: Likewise.
* libdiskfs/file-lock-stat.c: Likewise.
* libdiskfs/file-lock.c: Likewise.
* libdiskfs/file-reparent.c: Likewise.
* libdiskfs/file-set-trans.c: Likewise.
* libdiskfs/file-sync.c: Likewise.
* libdiskfs/file-syncfs.c: Likewise.
* libdiskfs/fsys-getroot.c: Likewise.
* libdiskfs/fsys-options.c: Likewise.
* libdiskfs/fsys-syncfs.c: Likewise.
* libdiskfs/ifsock.c: Likewise.
* libdiskfs/init-first.c: Likewise.
* libdiskfs/init-init.c: Likewise.
* libdiskfs/init-startup.c: Likewise.
* libdiskfs/io-duplicate.c: Likewise.
* libdiskfs/io-get-conch.c: Likewise.
* libdiskfs/io-identity.c: Likewise.
* libdiskfs/io-map-cntl.c: Likewise.
* libdiskfs/io-map.c: Likewise.
* libdiskfs/io-modes-get.c: Likewise.
* libdiskfs/io-modes-off.c: Likewise.
* libdiskfs/io-modes-on.c: Likewise.
* libdiskfs/io-modes-set.c: Likewise.
* libdiskfs/io-owner-get.c: Likewise.
* libdiskfs/io-owner-mod.c: Likewise.
* libdiskfs/io-prenotify.c: Likewise.
* libdiskfs/io-read.c: Likewise.
* libdiskfs/io-readable.c: Likewise.
* libdiskfs/io-reauthenticate.c: Likewise.
* libdiskfs/io-rel-conch.c: Likewise.
* libdiskfs/io-restrict-auth.c: Likewise.
* libdiskfs/io-revoke.c: Likewise.
* libdiskfs/io-seek.c: Likewise.
* libdiskfs/io-sigio.c: Likewise.
* libdiskfs/io-stat.c: Likewise.
* libdiskfs/io-write.c: Likewise.
* libdiskfs/lookup.c: Likewise.
* libdiskfs/name-cache.c: Likewise.
* libdiskfs/node-drop.c: Likewise.
* libdiskfs/node-make.c: Likewise.
* libdiskfs/node-nput.c: Likewise.
* libdiskfs/node-nputl.c: Likewise.
* libdiskfs/node-nref.c: Likewise.
* libdiskfs/node-nrefl.c: Likewise.
* libdiskfs/node-nrele.c: Likewise.
* libdiskfs/node-nrelel.c: Likewise.
* libdiskfs/peropen-rele.c: Likewise.
* libdiskfs/priv.h: Likewise.
* libdiskfs/shutdown.c: Likewise.
* libdiskfs/sync-interval.c: Likewise.
* libfshelp/Makefile: Likewise.
* libfshelp/fetch-root.c: Likewise.
* libfshelp/fshelp.h: Likewise.
* libfshelp/get-identity.c: Likewise.
* libfshelp/lock-acquire.c: Likewise.
* libfshelp/lock-init.c: Likewise.
* libfshelp/locks.h: Likewise.
* libfshelp/set-active.c: Likewise.
* libfshelp/trans.h: Likewise.
* libfshelp/transbox-init.c: Likewise.
* libiohelp/Makefile: Likewise.
* libiohelp/get_conch.c: Likewise.
* libiohelp/handle_io_release_conch.c: Likewise.
* libiohelp/initialize_conch.c: Likewise.
* libiohelp/iohelp.h: Likewise.
* libiohelp/verify_user_conch.c: Likewise.
* libnetfs/Makefile: Likewise.
* libnetfs/dir-lookup.c: Likewise.
* libnetfs/dir-mkdir.c: Likewise.
* libnetfs/dir-mkfile.c: Likewise.
* libnetfs/dir-readdir.c: Likewise.
* libnetfs/dir-rmdir.c: Likewise.
* libnetfs/dir-unlink.c: Likewise.
* libnetfs/drop-node.c: Likewise.
* libnetfs/file-chauthor.c: Likewise.
* libnetfs/file-check-access.c: Likewise.
* libnetfs/file-chflags.c: Likewise.
* libnetfs/file-chmod.c: Likewise.
* libnetfs/file-chown.c: Likewise.
* libnetfs/file-exec.c: Likewise.
* libnetfs/file-get-storage-info.c: Likewise.
* libnetfs/file-get-translator.c: Likewise.
* libnetfs/file-lock-stat.c: Likewise.
* libnetfs/file-lock.c: Likewise.
* libnetfs/file-reparent.c: Likewise.
* libnetfs/file-set-size.c: Likewise.
* libnetfs/file-set-translator.c: Likewise.
* libnetfs/file-statfs.c: Likewise.
* libnetfs/file-sync.c: Likewise.
* libnetfs/file-syncfs.c: Likewise.
* libnetfs/file-utimes.c: Likewise.
* libnetfs/fsys-getroot.c: Likewise.
* libnetfs/fsys-set-options.c: Likewise.
* libnetfs/init-init.c: Likewise.
* libnetfs/io-clear-some-openmodes.c: Likewise.
* libnetfs/io-duplicate.c: Likewise.
* libnetfs/io-get-openmodes.c: Likewise.
* libnetfs/io-get-owner.c: Likewise.
* libnetfs/io-identity.c: Likewise.
* libnetfs/io-mod-owner.c: Likewise.
* libnetfs/io-read.c: Likewise.
* libnetfs/io-readable.c: Likewise.
* libnetfs/io-reauthenticate.c: Likewise.
* libnetfs/io-restrict-auth.c: Likewise.
* libnetfs/io-revoke.c: Likewise.
* libnetfs/io-seek.c: Likewise.
* libnetfs/io-set-all-openmodes.c: Likewise.
* libnetfs/io-set-some-openmodes.c: Likewise.
* libnetfs/io-stat.c: Likewise.
* libnetfs/io-write.c: Likewise.
* libnetfs/make-node.c: Likewise.
* libnetfs/netfs.h: Likewise.
* libnetfs/nput.c: Likewise.
* libnetfs/nref.c: Likewise.
* libnetfs/nrele.c: Likewise.
* libnetfs/release-peropen.c: Likewise.
* libnetfs/shutdown.c: Likewise.
* libpager/Makefile: Likewise.
* libpager/chg-compl.c: Likewise.
* libpager/clean.c: Likewise.
* libpager/data-request.c: Likewise.
* libpager/data-return.c: Likewise.
* libpager/data-unlock.c: Likewise.
* libpager/inhibit-term.c: Likewise.
* libpager/lock-completed.c: Likewise.
* libpager/lock-object.c: Likewise.
* libpager/mark-error.c: Likewise.
* libpager/no-senders.c: Likewise.
* libpager/object-init.c: Likewise.
* libpager/object-terminate.c: Likewise.
* libpager/offer-page.c: Likewise.
* libpager/pager-attr.c: Likewise.
* libpager/pager-create.c: Likewise.
* libpager/pager-shutdown.c: Likewise.
* libpager/priv.h: Likewise.
* libpager/seqnos.c: Likewise.
* libpipe/Makefile: Likewise.
* libpipe/pipe.c: Likewise.
* libpipe/pipe.h: Likewise.
* libports/Makefile: Likewise.
* libports/begin-rpc.c: Likewise.
* libports/bucket-iterate.c: Likewise.
* libports/claim-right.c: Likewise.
* libports/class-iterate.c: Likewise.
* libports/complete-deallocate.c: Likewise.
* libports/count-bucket.c: Likewise.
* libports/count-class.c: Likewise.
* libports/create-bucket.c: Likewise.
* libports/create-internal.c: Likewise.
* libports/destroy-right.c: Likewise.
* libports/enable-bucket.c: Likewise.
* libports/enable-class.c: Likewise.
* libports/end-rpc.c: Likewise.
* libports/get-right.c: Likewise.
* libports/import-port.c: Likewise.
* libports/inhibit-all-rpcs.c: Likewise.
* libports/inhibit-bucket-rpcs.c: Likewise.
* libports/inhibit-class-rpcs.c: Likewise.
* libports/inhibit-port-rpcs.c: Likewise.
* libports/init.c: Likewise.
* libports/interrupt-notified-rpcs.c: Likewise.
* libports/interrupt-on-notify.c: Likewise.
* libports/interrupt-operation.c: Likewise.
* libports/interrupt-rpcs.c: Likewise.
* libports/interrupted.c: Likewise.
* libports/lookup-port.c: Likewise.
* libports/manage-multithread.c: Likewise.
* libports/no-senders.c: Likewise.
* libports/port-deref-weak.c: Likewise.
* libports/port-deref.c: Likewise.
* libports/port-ref-weak.c: Likewise.
* libports/port-ref.c: Likewise.
* libports/ports.h: Likewise.
* libports/reallocate-from-external.c: Likewise.
* libports/reallocate-port.c: Likewise.
* libports/resume-all-rpcs.c: Likewise.
* libports/resume-bucket-rpcs.c: Likewise.
* libports/resume-class-rpcs.c: Likewise.
* libports/resume-port-rpcs.c: Likewise.
* libports/stubs.c: Likewise.
* libports/transfer-right.c: Likewise.
* libstore/Makefile: Likewise.
* libstore/gunzip.c: Likewise.
* libstore/part.c: Likewise.
* libstore/unzipstore.c: Likewise.
* libthreads/Makefile: Likewise.
* libtreefs/dir-lookup.c: Likewise.
* libtreefs/fsys-getroot.c: Likewise.
* libtreefs/fsys-hooks.c: Likewise.
* libtreefs/fsys.c: Likewise.
* libtreefs/trans-help.c: Likewise.
* libtreefs/trans-start.c: Likewise.
* libtreefs/treefs.h: Likewise.
* libtrivfs/cntl-create.c: Likewise.
* libtrivfs/dyn-classes.c: Likewise.
* libtrivfs/io-reauthenticate.c: Likewise.
* libtrivfs/io-restrict-auth.c: Likewise.
* libtrivfs/protid-clean.c: Likewise.
* libtrivfs/protid-dup.c: Likewise.
* libtrivfs/trivfs.h: Likewise.
* mach-defpager/Makefile: Likewise.
* mach-defpager/default_pager.c: Likewise.
* mach-defpager/kalloc.c: Likewise.
* mach-defpager/main.c: Likewise.
* nfs/Makefile: Likewise.
* nfs/cache.c: Likewise.
* nfs/main.c: Likewise.
* nfs/mount.c: Likewise.
* nfs/name-cache.c: Likewise.
* nfs/nfs.h: Likewise.
* nfs/ops.c: Likewise.
* nfs/rpc.c: Likewise.
* nfsd/Makefile: Likewise.
* nfsd/cache.c: Likewise.
* nfsd/loop.c: Likewise.
* nfsd/main.c: Likewise.
* nfsd/nfsd.h: Likewise.
* pfinet/Makefile: Likewise.
* pfinet/ethernet.c: Likewise.
* pfinet/glue-include/asm/spinlock.h: Likewise.
* pfinet/glue-include/linux/interrupt.h: Likewise.
* pfinet/glue-include/linux/sched.h: Likewise.
* pfinet/glue-include/linux/timer.h: Likewise.
* pfinet/glue-include/linux/wait.h: Likewise.
* pfinet/iioctl-ops.c: Likewise.
* pfinet/io-ops.c: Likewise.
* pfinet/kmem_cache.c: Likewise.
* pfinet/main.c: Likewise.
* pfinet/options.c: Likewise.
* pfinet/pfinet-ops.c: Likewise.
* pfinet/pfinet.h: Likewise.
* pfinet/sched.c: Likewise.
* pfinet/socket-ops.c: Likewise.
* pfinet/socket.c: Likewise.
* pfinet/timer-emul.c: Likewise.
* pfinet/tunnel.c: Likewise.
* pflocal/Makefile: Likewise.
* pflocal/connq.c: Likewise.
* pflocal/io.c: Likewise.
* pflocal/sock.c: Likewise.
* pflocal/sock.h: Likewise.
* pflocal/socket.c: Likewise.
* pflocal/sserver.c: Likewise.
* proc/Makefile: Likewise.
* proc/info.c: Likewise.
* proc/main.c: Likewise.
* proc/mgt.c: Likewise.
* proc/msg.c: Likewise.
* proc/proc.h: Likewise.
* proc/stubs.c: Likewise.
* proc/wait.c: Likewise.
* storeio/Makefile: Likewise.
* storeio/dev.c: Likewise.
* storeio/dev.h: Likewise.
* storeio/open.c: Likewise.
* storeio/open.h: Likewise.
* storeio/pager.c: Likewise.
* storeio/storeio.c: Likewise.
* term/Makefile: Likewise.
* term/devio.c: Likewise.
* term/hurdio.c: Likewise.
* term/main.c: Likewise.
* term/munge.c: Likewise.
* term/ptyio.c: Likewise.
* term/term.h: Likewise.
* term/users.c: Likewise.
* tmpfs/Makefile: Likewise.
* tmpfs/dir.c: Likewise.
* tmpfs/node.c: Likewise.
* tmpfs/tmpfs.c: Likewise.
* tmpfs/tmpfs.h: Likewise.
* trans/Makefile: Likewise.
* trans/fakeroot.c: Likewise.
* trans/fifo.c: Likewise.
* trans/hello-mt.c: Likewise.
* trans/new-fifo.c: Likewise.
* trans/streamio.c: Likewise.
* ufs/Makefile: Likewise.
* ufs/alloc.c: Likewise.
* ufs/dir.c: Likewise.
* ufs/hyper.c: Likewise.
* ufs/inode.c: Likewise.
* ufs/main.c: Likewise.
* ufs/pager.c: Likewise.
* ufs/pokeloc.c: Likewise.
* ufs/sizes.c: Likewise.
* ufs/ufs.h: Likewise.
* usermux/Makefile: Likewise.
* usermux/mux.c: Likewise.
* usermux/node.c: Likewise.
* usermux/usermux.h: Likewise.
* utils/Makefile: Likewise.
* utils/fakeauth.c: Likewise.
* utils/rpctrace.c: Likewise.
|
|
There is no equivalent for these functions in libpthread. Instead of
adding them as non standard extensions, rework their use.
* console-client/kbd-repeat.c (kbd_repeat_key): Wake threads waiting on
select_alert.
(kbd_setrepeater): Remove call to condition_implies.
console-client/pc-mouse.c (repeat_event): Wake threads waiting on
select_alert.
(setrepeater): Remove call to condition_implies.
* libpipe/pipe.c (pipe_create): Initialize the `pending_selects' member.
(pipe_add_select_cond): New function.
(pipe_remove_select_cond): Likewise.
(pipe_select_cond_broadcast): Likewise.
(_pipe_no_readers): Wake threads waiting on a pending select.
(_pipe_no_writers): Likewise.
(pipe_send): Likewise.
(pipe_recv): Likewise.
(pipe_pair_select): Replace condition implications by installing a pending
select on the pair of pipes.
* libpipe/pipe.h (struct pipe_select_cond): New type.
(struct pipe): New member `pending_selects'.
* pfinet/tunnel.c (tunnel_xmit): Wake threads waiting on tdev->select_alert.
(setup_tunnel_device): Remove call to condition_implies.
* term/devio.c (device_write_reply_inband): Wake threads waiting on
select_alert.
* term/hurdio.c (hurdio_writer_loop): Likewise.
* term/main.c (main): Remove calls to condition_implies.
* term/ptyio.c (ptyio_init): Remove calls to condition_implies, initialize
pty_select_alert.
(wake_reader): Wake threads waiting on pty_select_wakeup.
* term/term.h (pty_select_alert): New variable.
(clear_queue): Wake threads waiting on select_alert and, if acting on the
input queue, pty_select_alert, unless it's NULL.
(dequeue_quote): Likewise.
(enqueue_internal): Likewise.
(queue_erase): Likewise.
* trans/streamio.c (clear_buffer): Wake threads waiting on select_alert.
(buffer_read): Likewise.
(buffer_write): Likewise.
(device_read_reply_inband): Likewise.
(device_write_reply_inband): Likewise.
(main): Remove calls to condition_implies.
|
|
* Makeconf (lndist): Remove target.
(dist-hook, dist.tar): New targets.
* Makefile (dist): Rewrite this target's as well as accompanying rules.
(%-lndist, cp-linked-files, $(lf-inst)): Remove targets.
(%.bz2, %.gz, %/dist-hook): New targets.
(DISTFILES): Set.
* doc/Makefile (DISTFILES): Set.
* doc/Makefile (lndist, lndist-info-targets): Remove targets.
* include/Makefile (lndist): Remove target.
* libthreads/Makefile (lndist, lndist-i386-files, lndist-map-file): Remove
targets.
* pfinet/Makefile (lndist, lndist-linux-src-net-core-files)
(lndist-linux-src-net-ethernet-files, lndist-linux-src-net-ipv4-files)
(lndist-linux-src-net-ipv6-files, lndist-linux-src-asm-files)
(lndist-linux-src-include-linux-files, lndist-linux-src-include-net-files)
(lndist-linux-src-include-asm-files, lndist-glue-include-linux-files)
(lndist-glue-include-asm-files): Remove targets.
* auth/Makefile (LCLHDRS): Don't set.
* boot/Makefile (LCLHDRS, DIST_FILES): Likewise.
* bsdfsck/Makefile (LCLHDRS): Likewise.
* config/Makefile (DIST_FILES): Likewise.
* console-client/Makefile (LCLHDRS): Likewise.
* console/Makefile (LCLHDRS, DIST_FILES): Likewise.
* doc/Makefile (DIST_FILES): Likewise.
* exec/Makefile (LCLHDRS, DIST_FILES): Likewise.
* ext2fs/Makefile (LCLHDRS): Likewise.
* fatfs/Makefile (LCLHDRS): Likewise.
* ftpfs/Makefile (LCLHDRS): Likewise.
* hostmux/Makefile (LCLHDRS): Likewise.
* hurd/Makefile (DIST_FILES): Likewise.
* include/Makefile (LCLHDRS): Likewise.
* isofs/Makefile (LCLHDRS, DIST_FILES): Likewise.
* libcons/Makefile (LCLHDRS): Likewise.
* libdirmgt/Makefile (LCLHDRS): Likewise.
* libdiskfs/Makefile (LCLHDRS): Likewise.
* libfshelp/Makefile (LCLHDRS): Likewise.
* libftpconn/Makefile (LCLHDRS): Likewise.
* libihash/Makefile (LCLHDRS): Likewise.
* libiohelp/Makefile (LCLHDRS): Likewise.
* libnetfs/Makefile (LCLHDRS): Likewise.
* libpager/Makefile (LCLHDRS): Likewise.
* libpipe/Makefile (LCLHDRS): Likewise.
* libports/Makefile (LCLHDRS): Likewise.
* libps/Makefile (LCLHDRS): Likewise.
* libshouldbeinlibc/Makefile (LCLHDRS): Likewise.
* libstore/Makefile (LCLHDRS, DIST_FILES): Likewise.
* libthreads/Makefile (LCLHDRS): Likewise.
* libtreefs/Makefile (LCLHDRS): Likewise.
* libtrivfs/Makefile (LCLHDRS): Likewise.
* mach-defpager/Makefile (LCLHDRS): Likewise.
* nfs/Makefile (LCLHDRS): Likewise.
* nfsd/Makefile (LCLHDRS): Likewise.
* pfinet/Makefile (LCLHDRS): Likewise.
* pflocal/Makefile (LCLHDRS): Likewise.
* proc/Makefile (LCLHDRS, DIST_FILES): Likewise.
* release/Makefile (DIST_FILES): Likewise.
* storeio/Makefile (LCLHDRS): Likewise.
* sutils/Makefile (LCLHDRS): Likewise.
* term/Makefile (LCLHDRS, DIST_FILES): Likewise.
* tmpfs/Makefile (LCLHDRS): Likewise.
* ufs-fsck/Makefile (LCLHDRS): Likewise.
* ufs/Makefile (LCLHDRS): Likewise.
* usermux/Makefile (LCLHDRS): Likewise.
* utils/Makefile (LCLHDRS): Likewise.
|
|
* ext2fs/Makefile (SRCS): Add xinl.c
* libtreefs/Makefile (OTHERSRCS): Likewise.
* term/Makefile (SRCS): Likewise.
* ufs/Makefile (SRCS): Likewise.
* hostmux/hostmux-xinl.c: Define HOSTMUX_DEFINE_EI instead of HOSTMUX_EI.
* libdiskfs/extern-inline.c: Define DISKFS_DEFINE_EXTERN_INLINE instead of
DISKFS_EXTERN_INLINE.
* libftpconn/xinl.c: Define FTP_CONN_DEFINE_EI instead of FTP_CONN_EI.
* libpipe/pipe-funcs.c: Define PIPE_DEFINE_EI instead of PIPE_EI.
* libpipe/pq-funcs.c: Define PQ_DEFINE_EI instead of PQ_EI.
* libshouldbeinlibc/idvec-funcs.c: Define IDVEC_DEFINE_EI instead of
IDVEC_EI.
* libshouldbeinlibc/maptime-funcs.c: Define MAPTIME_DEFINE_EI instead of
MAPTIME_EI.
* libshouldbeinlibc/ugids-xinl.c: Define UGIDS_DEFINE_EI instead of
UGIDS_EI.
* libstore/xinl.c: Define STORE_DEFINE_EI instead of STORE_EI.
* libthreads/rwlock.c: Define RWLOCK_DEFINE_EI instead of RWLOCK_EI.
* ext2fs/xinl.c: New file, define EXT2FS_DEFINE_EI and include "ext2fs.h"
* libtreefs/xinl.c: New file, define TREEFS_DEFINE_EI and include "treefs.h"
and "mig-decls.h".
* term/xinl.c: New file, define TERM_DEFINE_EI and include "term.h".
* ufs/xinl.c: New file, define UFS_DEFINE_EI and include "ufs.h"
* ext2fs/ext2fs.h: Include <features.h>, define EXT2FS_EI to __extern_inline
instead of "extern inline", define it to empty when EXT2FS_DEFINE_EI is
defined. Always declare extern inline prototypes, and define extern inlines
content only if __USE_EXTERN_INLINES or EXT2FS_DEFINE_EI is defined.
* libdiskfs/diskfs.h: Likewise with DISKFS_EXTERN_INLINE and
DISKFS_DEFINE_EXTERN_INLINE.
* libftpconn/ftpconn.h: Likewise with FTP_CONN_EI and FTP_CONN_DEFINE_EI.
* libftpconn/priv.h: Likewise.
* libpipe/pipe.h: Likewise with PIPE_EI and PIPE_DEFINE_EI.
* libpipe/pq.h: Likewise with PQ_EI and PQ_DEFINE_EI.
* libshouldbeinlibc/idvec.h: Likewise with IDVEC_EI and IDVEC_DEFINE_EI.
* libshouldbeinlibc/maptime.h: Likewise with MAPTIME_EI and
MAPTIME_DEFINE_EI.
* libshouldbeinlibc/ugids.h: Likewise with UGIDS_EI and UGIDS_DEFINE_EI.
* libstore/store.h: Likewise with STORE_EI and STORE_DEFINE_EI.
* libthreads/rwlock.h: Likewise with RWLOCK_EI and RWLOCK_DEFINE_EI.
* term/term.h: Likewise with TERM_EI and TERM_DEFINE_EI.
* ufs/ufs.h: Likewise with UFS_EI and UFS_DEFINE_EI.
* libtreefs/treefs.h: Include <features.h>, define TREE_FS_EI to
__extern_inline, or to empty when TREEFS_DEFINE_EI is defined. Use TREEFS_EI
instead of "extern inline".
* libtreefs/mig-decls.h: Use TREEFS_EI instead of "extern inline".
|
|
* term/users.c (trivfs_S_io_read): Immediately return 0 also when `amount' is 0.
|
|
Some calls to `error', `printk', and `problem' lacked a format
string, leading to build failure when compiling with stricter CFLAGS.
* nfs/mount.c (mount_root): Add format string for `error' calls which
lacked it.
* pfinet/main.c (pfinet_bind): Likewise.
* term/main.c (main): Likewise.
* utils/shd.c (run): Likewise.
* utils/storeinfo.c (main): Likewise.
* pfinet/linux-src/include/net/tcp.h (tcp_clear_xmit_timer): Add
format string for `printk' call which lacked it.
(tcp_timer_is_set): Likewise.
* ufs-fsck/utilities.c (punt): Add format string for `problem' call
which lacked it.
|
|
* Fix spelling with codespell[1] and manually review it.
[1] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
|
|
* ChangeLog: Wipe out content, and add instructions about how to get it back.
* auth/ChangeLog: Remove file.
* benchmarks/ChangeLog: Likewise.
* boot/ChangeLog: Likewise.
* bsdfsck/ChangeLog: Likewise.
* config/ChangeLog: Likewise.
* console-client/ChangeLog: Likewise.
* console/ChangeLog: Likewise.
* daemons/ChangeLog: Likewise.
* defpager/ChangeLog: Likewise.
* doc/ChangeLog: Likewise.
* exec/ChangeLog: Likewise.
* ext2fs/ChangeLog: Likewise.
* fatfs/ChangeLog: Likewise.
* fstests/ChangeLog: Likewise.
* ftpfs/ChangeLog: Likewise.
* hostmux/ChangeLog: Likewise.
* hurd/ChangeLog: Likewise.
* include/ChangeLog: Likewise.
* init/ChangeLog: Likewise.
* isofs/ChangeLog: Likewise.
* libcons/ChangeLog: Likewise.
* libdirmgt/ChangeLog: Likewise.
* libdiskfs/ChangeLog: Likewise.
* libfshelp/ChangeLog: Likewise.
* libftpconn/ChangeLog: Likewise.
* libhurdbugaddr/ChangeLog: Likewise.
* libihash/ChangeLog: Likewise.
* libiohelp/ChangeLog: Likewise.
* libnetfs/ChangeLog: Likewise.
* libpager/ChangeLog: Likewise.
* libpipe/ChangeLog: Likewise.
* libports/ChangeLog: Likewise.
* libps/ChangeLog: Likewise.
* libshouldbeinlibc/ChangeLog: Likewise.
* libstore/ChangeLog: Likewise.
* libthreads/ChangeLog: Likewise.
* libtrivfs/ChangeLog: Likewise.
* login/ChangeLog: Likewise.
* mach-defpager/ChangeLog: Likewise.
* nfs/ChangeLog: Likewise.
* nfsd/ChangeLog: Likewise.
* pfinet/ChangeLog: Likewise.
* pflocal/ChangeLog: Likewise.
* proc/ChangeLog: Likewise.
* release/ChangeLog: Likewise.
* serverboot/ChangeLog: Likewise.
* storeio/ChangeLog: Likewise.
* sutils/ChangeLog: Likewise.
* term/ChangeLog: Likewise.
* tmpfs/ChangeLog: Likewise.
* trans/ChangeLog: Likewise.
* ufs-fsck/ChangeLog: Likewise.
* ufs-utils/ChangeLog: Likewise.
* ufs/ChangeLog: Likewise.
* usermux/ChangeLog: Likewise.
* utils/ChangeLog: Likewise.
|
|
* term.h (QUEUE_LOWAT): Increase to 200.
(QUEUE_HIWAT): Increase to 8100.
|
|
|
|
* term.h (rdev): Change type to dev_t.
|
|
|
|
* main.c (parse_opt : case ARGP_KEY_SUCCESS): After initializing a new
bottomhalf, call its assert_dtr hook if TTY_OPEN is set in termflags.
|
|
|
|
* main.c (parse_opt: case ARGP_KEY_SUCCESS): Set tty_arg along with
tty_type from new argument value.
Reported by David Walter <dwalter@syr.edu>.
|
|
* hurdio.c (hurdio_writer_loop): Check output_stopped instead termflags.
Move the code that signals the underlying file to ...
(hurdio_start_output): ... here.
|
|
* munge.c (input_character): Really toggle USER_OUTPUT_SUSP if
VSTART == VSTOP.
|
|
* hurdio.c (hurdio_writer_loop): Desert the DTR on all errors, not
only EIO.
(hurdio_reader_loop): Likewise.
|
|
|
|
* main.c (main): Open with O_RDWR only for hurdio bottomhalf.
|
|
|
|
* term.h (struct bottomhalf): New member `fini'.
* hurdio.c (hurdio_fini): New function.
(hurdio_bottom): Use it.
* devio.c (devio_fini): New function.
(devio_bottom): Use it.
* ptyio.c (ptyio_bottom): Add 0 entry for `fini'.
* main.c (trivfs_runtime_argp): New variable.
(options): Add --name/-N and --type/-T options.
(parse_opt): Collect parsed options in temporary storage and apply
them only at final success. For T_HURDIO, allow absent arg.
For non-startup parsing call, allow any missing args.
(tty_type_names): New const variable.
(trivfs_append_args): New function.
(main): Open underlying node with O_RDWR.
* hurdio.c (wait_for_dtr): If tty_arg is null, use termctl->underlying
instead of opening a node by name.
(hurdio_desert_dtr): If tty_arg is null, don't deallocate ioport.
|
|
* main.c (trivfs_runtime_argp): New variable.
(options): Add --name/-N and --type/-T options.
(parse_opt): Collect parsed options in temporary storage and apply
them only at final success. For T_HURDIO, allow absent arg.
For non-startup parsing call, allow any missing args.
(tty_type_names): New const variable.
(trivfs_append_args): New function.
(main): Open underlying node with O_RDWR.
* hurdio.c (wait_for_dtr): If tty_arg is null, use termctl->underlying
instead of opening a node by name.
(hurdio_desert_dtr): If tty_arg is null, don't deallocate ioport.
|
|
* term.h (struct bottomhalf): New member `fini'.
* hurdio.c (hurdio_fini): New function.
(hurdio_bottom): Use it.
* devio.c (devio_fini): New function.
(devio_bottom): Use it.
* ptyio.c (ptyio_bottom): Add 0 entry for `fini'.
|
|
* term.h (struct bottomhalf): New member GWINSZ.
* devio.c (devio_bottom): Add new member.
* ptyio.c (ptyio_bottom): Likewise.
* hurdio.c (hurdio_bottom): Likewise.
(hurdio_gwinsz): New function.
(tioc_caps): Change type to unsigned int.
(TIOC_CAP_GWINSZ): New symbol.
* users.c (open_hook): Call GWINSZ of bottom layer after
establishing the carrier.
|
|
|
|
|
|
* ptyio.c (pty_io_readable): int -> size_t in argument type.
* term.h: Update decl.
* users.c (trivfs_S_io_write): int -> size_t in AMT argument type.
(trivfs_S_io_readable): Likewise.
(trivfs_S_io_read): Likewise. Also u_int -> size_t, off_t -> loff_t.
(trivfs_S_io_write): Likewise.
(trivfs_S_io_map): Add reply port args.
|
|
|
|
* devio.c (device_open_reply): int -> size_t
(devio_set_bits, devio_mdmctl, devio_mdmstate): Likewise.
|
|
|
|
* main.c (main): Add a return after `error' call to clue compiler in.
|
|
|
|
* hurdio.c (hurdio_reader_loop): Add a return stmt.
(hurdio_writer_loop): Likewise.
|
|
|
|
* main.c: Include <error.h>.
(main): Use error, not fprintf and exit or perror and exit. Use
ERR, not errno. Use MACH_PORT_NULL explicitly.
* users.c: Include <error.h>.
(init_users): Use ERR, not errno. Use error, not perror and exit.
|
|
* main.c (main): Use memset instead bzero.
Fix error message, and formatting of some comments.
* ptyio.c (pty_io_read): Use memcpy instead bcopy.
* users.c (S_tioctl_tiocflush): Ignore error by bottom handler's
notice_input_flushed.
* users.c (set_state): Likewise.
If bottom handler's set_bits fails, don't adjust terminal state
but return success anyway.
|
|
|
|
* term.h: Declare rdev.
* main.c (options): New variable.
(parse_opt): Handle case `n' to set rdev number.
Also return EINVAL if terminal type is invalid.
* users.c (trivfs_modify_stat): Set ST->st_rdev to global rdev.
|
|
* hurdio.c: New file.
* Makefile (SRCS): Add hurdio.c.
* term.h: Add hurdio_bottom declaration.
* main.c: Add T_HURDIO to enum of tty_type.
(parse_opt): Add case for hurdio bottom handler.
(term_argp): Likewise.
(main): Likewise.
|
|
* main.c: Include `argp.h' and `version.h'.
(argp_program_version): New global variable.
(tty_name, tty_type, tty_arg): Likewise.
(parse_opt): New function.
(term_argp): New global variable.
(main): Call argp_parse, use new global variables to parse the
options. Remove TYPE variable. Get the bootstrap port after
checking the argument line.
* term.h (pterm_name): Remove variable.
(tty_arg): Declare variable.
* devio.c (initial_open): Use tty_arg instead pterm_name.
(devio_assert_dtr): Likewise.
|