[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd] 15/75: Merge branch 'master' of git.savannah.gnu.org:/srv/git/hur
From: |
Samuel Thibault |
Subject: |
[hurd] 15/75: Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd into dde |
Date: |
Thu, 14 Jan 2016 01:04:05 +0000 |
This is an automated email from the git hooks/post-receive script.
sthibault pushed a commit to branch dde
in repository hurd.
commit 6e1555c9a749b215665619f4ec6f0b0d4d0f3fd6
Merge: 75ee933 87bc937
Author: Samuel Thibault <address@hidden>
Date: Sun Nov 29 13:10:15 2015 +0100
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd into dde
.gitignore | 12 +
ChangeLog | 5 -
INSTALL | 6 +-
INSTALL-cross | 2 +-
Makeconf | 16 +-
Makefile | 96 +-
NEWS | 106 +-
README | 37 +-
README.CVS | 29 -
TODO | 4 -
aclocal.m4 | 2 +-
auth/Makefile | 2 +-
auth/auth.c | 49 +-
libnetfs/get-source.c => auth/auth.h | 22 +-
auth/auth_mig.h | 5 -
auth/authmutations.h | 6 -
auth/mig-decls.h | 48 +
libdiskfs/get-source.c => auth/mig-mutate.h | 19 +-
benchmarks/Makefile | 1 -
boot/Makefile | 8 +-
boot/boot.c | 339 ++--
boot/boot_script.h | 4 -
config.make.in | 15 +-
configure.ac | 64 +-
console-client/Makefile | 12 +-
console-client/bdf.c | 2 +-
console-client/bdf.h | 2 +-
console-client/console.c | 26 +-
console-client/current-vcs.c | 9 +-
console-client/input.h | 2 +-
console-client/timer.c | 1 -
console-client/timer.h | 2 +-
console-client/trans.c | 45 +-
console-client/unicode.h | 1 -
console-client/vga-dynafont.c | 17 +-
console-client/vga-dynafont.h | 2 +-
console-client/vga-hw.h | 5 +
console-client/vga-support.c | 56 +-
console-client/vga.c | 12 +-
console-client/xkb/README | 2 +-
console-client/xkb/TODO | 4 +-
console-client/xkb/kstoucs.c | 41 +-
console-client/xkb/parser.y | 6 +-
console-client/xkb/xkb-data/keymap/hurd | 182 +-
console-client/xkb/xkb-data/types/hurd | 1 -
console-client/xkb/xkb.c | 9 +-
console-client/xkb/xkb.h | 2 +-
console-client/xkb/xkbdata.c | 6 +-
console-client/xkb/xkbtimer.c | 2 +-
console/console.c | 40 +-
console/display.c | 93 +-
console/hurd.ti | 6 +-
console/input.c | 2 +-
console/input.h | 2 +-
console/mutations.h | 11 +-
console/pager.c | 33 +-
console/priv.h | 41 -
daemons/Makefile | 4 +-
daemons/getty.c | 87 +-
daemons/lmail.c | 2 +-
daemons/rc.sh | 12 +-
daemons/{runsystem.sh => runsystem.hurd} | 0
daemons/runsystem.sh | 79 +-
defpager/Makefile | 1 -
defpager/backing.c | 1 -
defpager/defpager.c | 3 +-
doc/Makefile | 4 +-
doc/hurd.texi | 68 +-
doc/navigating | 3 +-
exec/Makefile | 4 +-
exec/elfcore.c | 30 +-
exec/exec.c | 112 +-
exec/execmutations.h | 15 +-
exec/hashexec.c | 25 +-
exec/hostarch.c | 123 +-
exec/main.c | 203 ++-
exec/mig-decls.h | 46 +
exec/priv.h | 2 +-
ext2fs/Makefile | 2 +-
ext2fs/dir.c | 113 +-
ext2fs/ext2fs.c | 16 +-
ext2fs/ext2fs.h | 34 +-
ext2fs/getblk.c | 65 +-
ext2fs/hyper.c | 19 +-
ext2fs/ialloc.c | 16 +-
ext2fs/inode.c | 232 +--
ext2fs/pager.c | 159 +-
ext2fs/storeinfo.c | 1 +
ext2fs/truncate.c | 16 +-
fatfs/Makefile | 2 +-
fatfs/dir.c | 15 +-
fatfs/fat.h | 2 +-
fatfs/fatfs.h | 20 +-
fatfs/inode.c | 252 +--
fatfs/main.c | 9 +-
fatfs/pager.c | 99 +-
fatfs/virt-inode.c | 6 -
fstests/Makefile | 1 -
fstests/fdtests.c | 24 +-
fstests/fstests.c | 24 +-
fstests/opendisk.c | 2 -
ftpfs/dir.c | 24 +-
ftpfs/netfs.c | 2 +-
gitlog-to-changelog | 432 +++++
hurd/console.h | 2 +-
hurd/default_pager.defs | 9 +-
hurd/exec_startup.defs | 6 +-
hurd/fs.defs | 19 +
hurd/fsys.defs | 21 +-
hurd/gensym.awk | 1 -
hurd/hurd_types.defs | 146 +-
hurd/hurd_types.h | 3 +
hurd/ifsock.defs | 1 -
hurd/iioctl.defs | 4 +
hurd/interrupt.defs | 7 +-
hurd/io.defs | 2 +-
hurd/paths.h | 5 +-
hurd/process.defs | 17 +-
hurd/process_reply.defs | 2 +-
hurd/process_request.defs | 7 +-
hurd/shared.h | 3 +-
hurd/startup.defs | 1 -
hurd/startup_notify.defs | 2 -
hurd/term.defs | 18 +-
include/pids.h | 7 +-
init/Makefile | 15 +-
init/init.c | 1617 +-----------------
init/stubs.c | 139 --
isofs/EXTENSIONS | 1 -
isofs/Makefile | 2 +-
isofs/ext.c | 2 -
isofs/inode.c | 272 +--
isofs/isofs.h | 13 +-
isofs/lookup.c | 22 +-
isofs/main.c | 17 +-
isofs/pager.c | 2 +-
isofs/rr.c | 6 +-
libcons/demuxer.c | 1 -
libcons/extra-version.c | 2 +-
libcons/init-loop.c | 1 -
libcons/mutations.h | 2 +-
libcons/priv.h | 6 +
libcons/vcons-add.c | 2 +-
libcons/vcons-remove.c | 2 +-
libcons/vcons-scrollback.c | 1 -
libdirmgt/dirmgt.h | 2 -
libdiskfs/Makefile | 5 +-
libdiskfs/boot-start.c | 83 +-
libdiskfs/conch-fetch.c | 1 -
libdiskfs/demuxer.c | 45 +-
libdiskfs/dir-init.c | 3 +-
libdiskfs/dir-link.c | 26 +-
libdiskfs/dir-lookup.c | 164 +-
libdiskfs/dir-mkfile.c | 24 +-
libdiskfs/dir-readdir.c | 24 +-
libdiskfs/dir-rename.c | 1 -
libdiskfs/dir-renamed.c | 11 +-
libdiskfs/dir-unlink.c | 20 +-
libdiskfs/disk-pager.c | 36 +-
libdiskfs/diskfs-pager.h | 1 +
libdiskfs/diskfs.h | 213 ++-
libdiskfs/extra-version.c | 2 +-
libdiskfs/file-chflags.c | 8 +
libdiskfs/file-chg.c | 2 +-
libdiskfs/file-chmod.c | 1 +
libdiskfs/file-exec.c | 24 +-
.../{fsys-get-children.c => file-get-children.c} | 25 +-
libdiskfs/file-get-fs-opts.c | 1 +
libdiskfs/{fsys-get-source.c => file-get-source.c} | 15 +-
libdiskfs/file-get-trans.c | 36 +-
libdiskfs/file-get-transcntl.c | 16 +-
libdiskfs/file-getcontrol.c | 14 +-
libdiskfs/file-getfh.c | 2 +-
libdiskfs/file-lock-stat.c | 24 +-
libdiskfs/file-lock.c | 26 +-
libdiskfs/file-set-size.c | 2 +-
libdiskfs/file-set-trans.c | 74 +-
libdiskfs/file-statfs.c | 4 +-
libdiskfs/file-syncfs.c | 6 +-
libdiskfs/fsmutations.h | 23 +-
libdiskfs/fsys-getfile.c | 12 +-
libdiskfs/fsys-getroot.c | 95 +-
libdiskfs/fsys-goaway.c | 33 +-
libdiskfs/fsys-options.c | 16 +-
libdiskfs/fsys-startup.c | 25 +-
libdiskfs/fsys-syncfs.c | 11 +-
libdiskfs/get-source.c | 11 +-
libdiskfs/ifsock.c | 3 +-
libdiskfs/init-first.c | 24 +-
libdiskfs/init-init.c | 30 +-
libdiskfs/init-main.c | 24 +-
libdiskfs/init-startup.c | 39 +-
libdiskfs/io-async.c | 1 -
libdiskfs/io-duplicate.c | 3 +
libdiskfs/io-map.c | 1 -
libdiskfs/io-modes-get.c | 1 -
libdiskfs/io-reauthenticate.c | 5 +
libdiskfs/io-restrict-auth.c | 3 +
libdiskfs/io-stubs.c | 1 -
libdiskfs/io-version.c | 24 +-
libdiskfs/io-write.c | 1 -
libdiskfs/lookup.c | 31 -
libdiskfs/name-cache.c | 409 +++--
libdiskfs/node-cache.c | 259 +++
libdiskfs/node-drop.c | 13 +-
libdiskfs/node-make.c | 43 +-
libdiskfs/node-nput.c | 50 +-
libdiskfs/node-nputl.c | 12 +-
libdiskfs/node-nref.c | 9 +-
libdiskfs/node-nrefl.c | 4 +-
libdiskfs/node-nrele.c | 48 +-
libdiskfs/node-nrelel.c | 9 +-
libdiskfs/node-times.c | 24 +-
libdiskfs/node-update.c | 24 +-
libdiskfs/opts-std-startup.c | 2 +-
libdiskfs/peropen-make.c | 2 +-
libdiskfs/peropen-rele.c | 21 +-
libdiskfs/priv.h | 4 +-
libdiskfs/protid-make.c | 10 +-
libdiskfs/protid-rele.c | 2 -
libdiskfs/readonly-changed.c | 2 +-
libdiskfs/shutdown.c | 24 +-
libdiskfs/sync-default.c | 2 +-
libdiskfs/validate-author.c | 2 +-
libdiskfs/validate-flags.c | 2 +-
libdiskfs/validate-group.c | 2 +-
libdiskfs/validate-mode.c | 2 +-
libdiskfs/validate-owner.c | 2 +-
libdiskfs/validate-rdev.c | 2 +-
libfshelp/fetch-root.c | 6 +-
libfshelp/fshelp.h | 27 +-
libfshelp/get-identity.c | 66 +-
libfshelp/lock-acquire.c | 122 +-
libfshelp/lock-init.c | 24 +-
libfshelp/set-active.c | 1 -
libfshelp/start-translator-long.c | 17 +-
libfshelp/start-translator.c | 2 +-
libfshelp/transbox-init.c | 1 -
libfshelp/translator-list.c | 74 +-
libftpconn/create.c | 2 +-
libftpconn/names.c | 1 -
libftpconn/open.c | 2 +-
libftpconn/unix.c | 4 +-
libihash/ihash.c | 247 ++-
libihash/ihash.h | 116 +-
libiohelp/handle_io_release_conch.c | 1 -
libiohelp/initialize_conch.c | 1 -
libiohelp/iouser-free.c | 2 -
libiohelp/return-buffer.c | 2 +-
libnetfs/Makefile | 2 +-
libnetfs/demuxer.c | 34 +-
libnetfs/dir-link.c | 2 -
libnetfs/dir-lookup.c | 58 +-
libnetfs/dir-mkfile.c | 1 -
libnetfs/dir-rename.c | 1 -
libnetfs/drop-node.c | 2 -
libnetfs/file-chauthor.c | 1 -
.../{fsys-get-children.c => file-get-children.c} | 24 +-
libnetfs/{fsys-get-source.c => file-get-source.c} | 15 +-
libnetfs/file-get-storage-info-default.c | 2 +-
libnetfs/file-getcontrol.c | 2 +-
libnetfs/file-getlinknode.c | 2 -
libnetfs/file-set-size.c | 3 +-
libnetfs/file-set-translator.c | 20 +-
libnetfs/fsstubs.c | 1 +
libnetfs/fsys-get-options.c | 6 +-
libnetfs/fsys-getroot.c | 5 +-
libnetfs/fsys-goaway.c | 10 +-
libnetfs/fsys-set-options.c | 11 +-
libnetfs/fsys-syncfs.c | 2 +-
libnetfs/fsysstubs.c | 8 +-
libnetfs/get-source.c | 4 +-
libnetfs/init-init.c | 3 +
libnetfs/init-loop.c | 1 -
libnetfs/io-get-icky-async-id.c | 1 -
libnetfs/io-reauthenticate.c | 18 +-
libnetfs/io-seek.c | 1 -
libnetfs/io-stat.c | 1 -
libnetfs/io-version.c | 24 +-
libnetfs/io-write.c | 2 -
libnetfs/make-node.c | 29 +-
libnetfs/make-peropen.c | 1 -
libnetfs/modes.h | 1 -
libnetfs/mutations.h | 13 +-
libnetfs/netfs.h | 42 +-
libnetfs/nput.c | 1 -
libnetfs/priv.h | 26 +
libnetfs/release-peropen.c | 5 +
libnetfs/set-get-trans.c | 4 +-
libnetfs/shutdown.c | 24 +-
libnetfs/trans-callback.c | 5 +-
libpager/Makefile | 11 +-
libpager/chg-compl.c | 17 +-
libpager/data-request.c | 14 +-
libpager/data-return.c | 26 +-
libpager/data-unlock.c | 14 +-
libpager/demuxer.c | 416 ++++-
libpager/lock-completed.c | 11 +-
libnetfs/get-source.c => libpager/mig-decls.h | 36 +-
libdiskfs/get-source.c => libpager/mig-mutate.h | 19 +-
libpager/no-senders.c | 43 -
libpager/notify-stubs.c | 76 -
libpager/object-init.c | 12 +-
libpager/object-terminate.c | 18 +-
libpager/offer-page.c | 1 -
libpager/pagemap.c | 2 +-
libpager/pager-attr.c | 13 +-
libpager/pager-create.c | 4 -
libpager/pager-flush.c | 1 -
libpager/pager-memcpy.c | 2 +
libpager/pager-return.c | 1 -
libpager/pager-shutdown.c | 1 -
libpager/pager-sync.c | 1 -
libpager/pager.h | 37 +-
libpager/priv.h | 8 -
libpager/queue.h | 69 +
libpager/seqnos.c | 69 -
libpager/stubs.c | 18 +-
libpipe/Makefile | 1 -
libpipe/pipe.c | 33 +-
libpipe/pq.c | 12 +-
libpipe/pq.h | 2 +-
libports/Makefile | 5 +-
libports/begin-rpc.c | 2 -
libports/bucket-iterate.c | 61 +-
libports/claim-right.c | 6 +-
libports/class-iterate.c | 10 +-
libports/complete-deallocate.c | 24 +-
libports/count-class.c | 3 -
libports/create-bucket.c | 7 +-
libports/create-class.c | 1 -
libports/create-internal.c | 47 +-
libports/create-port-noinstall.c | 3 -
libports/create-port.c | 3 -
libports/dead-name.c | 2 +-
libports/destroy-right.c | 61 +-
libnetfs/get-source.c => libports/extern-inline.c | 14 +-
libports/get-right.c | 2 +-
libports/import-port.c | 28 +-
libports/inhibit-all-rpcs.c | 28 +-
libports/inhibit-bucket-rpcs.c | 3 +-
libports/inhibit-class-rpcs.c | 29 +-
libports/init.c | 7 +-
libports/interrupt-notified-rpcs.c | 1 -
libports/interrupt-operation.c | 18 +-
libports/lookup-port.c | 31 +-
libports/manage-multithread.c | 167 +-
libports/manage-one-thread.c | 34 +-
libports/mig-decls.h | 46 +
libports/mig-mutate.h | 36 +
libports/notify-dead-name.c | 5 +-
libports/notify-msg-accepted.c | 3 +-
libports/notify-no-senders.c | 5 +-
libports/notify-port-deleted.c | 3 +-
libports/notify-port-destroyed.c | 3 +-
libports/notify-send-once.c | 2 +-
libports/port-deref-deferred.c | 161 ++
libports/port-deref-deferred.h | 89 +
libports/port-deref-weak.c | 11 +-
libports/port-deref.c | 36 +-
libports/port-ref-weak.c | 6 +-
libports/port-ref.c | 8 +-
libports/ports.h | 112 +-
libports/reallocate-from-external.c | 22 +-
libports/reallocate-port.c | 19 +-
libports/resume-all-rpcs.c | 2 -
libports/resume-class-rpcs.c | 1 -
libports/resume-port-rpcs.c | 3 -
libports/transfer-right.c | 29 +-
libps/fmt.c | 15 +
libps/procstat.c | 23 +-
libps/ps.h | 3 +-
libps/spec.c | 10 +-
libshouldbeinlibc/Makefile | 8 +-
libshouldbeinlibc/cacheq.c | 4 +-
libshouldbeinlibc/canon-host.c | 1 -
libshouldbeinlibc/fsysops.c | 1 +
libshouldbeinlibc/idvec-auth.c | 1 +
libshouldbeinlibc/idvec-impgids.c | 14 +-
libshouldbeinlibc/idvec-rep.c | 4 +-
libshouldbeinlibc/idvec-verify.c | 7 +-
libshouldbeinlibc/idvec.c | 5 +-
libshouldbeinlibc/idvec.h | 1 -
libshouldbeinlibc/localhost.c | 2 +-
libshouldbeinlibc/maptime.c | 17 +-
libshouldbeinlibc/maptime.h | 2 +
libshouldbeinlibc/nullauth.c | 2 -
libshouldbeinlibc/portxlate.c | 14 +-
.../get-source.c => libshouldbeinlibc/refcount.c | 13 +-
libshouldbeinlibc/refcount.h | 326 ++++
libshouldbeinlibc/shared-dom.c | 3 -
libshouldbeinlibc/timefmt.c | 6 +-
libshouldbeinlibc/ugids-argp.c | 3 +-
libshouldbeinlibc/ugids-auth.c | 2 +-
libshouldbeinlibc/ugids-imply.c | 3 +-
libshouldbeinlibc/ugids-merge.c | 3 +-
libshouldbeinlibc/ugids-subtract.c | 4 +-
libshouldbeinlibc/ugids-verify-auth.c | 7 +-
libshouldbeinlibc/ugids-verify.c | 7 +-
libshouldbeinlibc/ugids.c | 5 +-
libshouldbeinlibc/ugids.h | 2 +
libshouldbeinlibc/wire.c | 14 +-
libshouldbeinlibc/wire.h | 1 -
libstore/Makefile | 22 +-
libstore/argp.c | 2 +-
libstore/do-bunzip2.c | 1778 +-------------------
libstore/do-gunzip.c | 80 +
libstore/enc.c | 4 +-
libstore/gunzip.c | 27 +-
libstore/gzip.h | 315 ----
libstore/inflate.c | 954 -----------
libstore/kids.c | 2 +-
libstore/memobj.c | 1 +
libstore/part.c | 11 +
libstore/remap.c | 2 +-
libstore/tailor.h | 14 -
libstore/unzip.c | 199 ---
libstore/unzipstore.c | 6 +-
libstore/util.c | 257 +--
libthreads/Makefile.GNU | 1 -
libthreads/Makefile.GNU2 | 1 -
libthreads/alpha/lock.S | 1 -
libthreads/alpha/thread.c | 2 +-
libthreads/cancel-cond.c | 34 +-
libthreads/cthreads.c | 12 +-
libthreads/lockfile.c | 3 +
libtreefs/Makefile | 1 -
libtreefs/fsys.c | 4 +-
libtreefs/s-file.c | 2 +
libtreefs/s-fsys.c | 1 -
libtreefs/treefs-hooks.h | 4 +-
libtrivfs/Makefile | 12 +-
libtrivfs/cntl-classes.c | 22 -
libtrivfs/cntl-create.c | 1 -
libtrivfs/demuxer.c | 55 +-
libtrivfs/file-access.c | 1 +
libtrivfs/file-chauthor.c | 1 +
libtrivfs/file-chflags.c | 1 +
libtrivfs/file-chg.c | 1 +
libtrivfs/file-chmod.c | 1 +
libtrivfs/file-chown.c | 1 +
libtrivfs/file-exec.c | 1 +
.../{fsys-get-children.c => file-get-children.c} | 5 +-
libtrivfs/file-get-fs-options.c | 1 +
libtrivfs/{fsys-get-source.c => file-get-source.c} | 7 +-
libtrivfs/file-get-storage-info.c | 1 +
libtrivfs/file-get-trans.c | 1 +
libtrivfs/file-get-transcntl.c | 1 +
libtrivfs/file-getcontrol.c | 1 +
libtrivfs/file-getfh.c | 1 +
libtrivfs/file-getlinknode.c | 1 +
libtrivfs/file-lock.c | 1 +
libtrivfs/file-reparent.c | 2 +
libtrivfs/file-set-size.c | 1 +
libtrivfs/file-set-trans.c | 1 +
libtrivfs/file-statfs.c | 3 +-
libtrivfs/file-sync.c | 1 +
libtrivfs/file-syncfs.c | 1 +
libtrivfs/file-utimes.c | 1 +
libtrivfs/fsys-forward.c | 1 +
libtrivfs/fsys-get-options.c | 1 +
libtrivfs/fsys-getroot.c | 25 +-
libtrivfs/fsys-goaway.c | 25 +-
libtrivfs/fsys-set-options.c | 1 +
libtrivfs/fsys-stubs.c | 25 +-
libtrivfs/fsys-syncfs.c | 1 +
libtrivfs/get-source.c | 4 +-
libtrivfs/io-async-icky.c | 25 +-
libtrivfs/io-async.c | 25 +-
libtrivfs/io-duplicate.c | 25 +-
libtrivfs/io-identity.c | 1 +
libtrivfs/io-map.c | 25 +-
libtrivfs/io-modes-get.c | 25 +-
libtrivfs/io-modes-off.c | 25 +-
libtrivfs/io-modes-on.c | 25 +-
libtrivfs/io-modes-set.c | 25 +-
libtrivfs/io-owner-get.c | 25 +-
libtrivfs/io-owner-mod.c | 25 +-
libtrivfs/io-pathconf.c | 1 +
libtrivfs/io-read.c | 1 +
libtrivfs/io-readable.c | 1 +
libtrivfs/io-reauthenticate.c | 33 +-
libtrivfs/io-restrict-auth.c | 29 +-
libtrivfs/io-revoke.c | 1 +
libtrivfs/io-seek.c | 1 +
libtrivfs/io-select.c | 25 +-
libtrivfs/io-stat.c | 25 +-
libtrivfs/io-stubs.c | 25 +-
libtrivfs/io-version.c | 1 +
libtrivfs/io-write.c | 1 +
libtrivfs/mig-decls.h | 119 ++
libtrivfs/{fsmutations.h => mig-mutate.h} | 10 +-
libtrivfs/migsupport.c | 86 -
libtrivfs/open.c | 2 +-
libtrivfs/protid-classes.c | 22 -
libtrivfs/protid-clean.c | 35 +-
libtrivfs/protid-dup.c | 5 +-
libtrivfs/times.c | 4 -
libtrivfs/trivfs.h | 67 +-
mach-defpager/Makefile | 6 +-
mach-defpager/default_pager.c | 710 +++-----
mach-defpager/file_io.h | 6 +-
mach-defpager/kalloc.c | 26 +-
mach-defpager/main.c | 2 +-
libnetfs/get-source.c => mach-defpager/mig-decls.h | 28 +-
.../get-source.c => mach-defpager/mig-mutate.h | 19 +-
mach-defpager/priv.h | 200 +++
mach-defpager/queue.h | 10 +-
mach-defpager/setup.c | 10 +-
mach-defpager/wiring.c | 4 +-
nfs/cache.c | 1 -
nfs/main.c | 15 +-
nfsd/Makefile | 1 -
nfsd/ops.c | 2 +-
nfsd/xdr.c | 2 +-
pfinet/Makefile | 7 +-
pfinet/dummy.c | 4 -
pfinet/ethernet.c | 70 +-
pfinet/glue-include/asm/uaccess.h | 2 +-
pfinet/glue-include/linux/interrupt.h | 2 +
pfinet/iioctl-ops.c | 42 +-
pfinet/io-ops.c | 5 +-
pfinet/linux-src/arch/i386/lib/checksum.S | 2 +-
pfinet/linux-src/arch/i386/lib/old-checksum.c | 2 -
pfinet/linux-src/arch/s390/lib/checksum.c | 1 -
pfinet/linux-src/arch/sparc64/lib/checksum.S | 1 -
pfinet/linux-src/include/asm-s390/checksum.h | 2 -
pfinet/linux-src/include/linux/busmouse.h | 1 -
pfinet/linux-src/include/linux/coda.h | 3 +-
pfinet/linux-src/include/linux/digiPCI.h | 5 -
pfinet/linux-src/include/linux/dmascc.h | 1 -
pfinet/linux-src/include/linux/efs_dir.h | 1 -
pfinet/linux-src/include/linux/efs_fs.h | 1 -
pfinet/linux-src/include/linux/efs_fs_i.h | 1 -
pfinet/linux-src/include/linux/efs_fs_sb.h | 1 -
pfinet/linux-src/include/linux/efs_vh.h | 1 -
pfinet/linux-src/include/linux/epca.h | 1 -
pfinet/linux-src/include/linux/hayesesp.h | 1 -
pfinet/linux-src/include/linux/ioctl.h | 1 -
pfinet/linux-src/include/linux/ipc.h | 2 -
pfinet/linux-src/include/linux/irda.h | 4 -
pfinet/linux-src/include/linux/isicom.h | 1 -
pfinet/linux-src/include/linux/kmod.h | 1 -
pfinet/linux-src/include/linux/locks.h | 1 -
pfinet/linux-src/include/linux/lp_intern.h | 1 -
pfinet/linux-src/include/linux/lp_mfc.h | 1 -
pfinet/linux-src/include/linux/ncp_fs_sb.h | 1 -
pfinet/linux-src/include/linux/ntfs_fs.h | 1 -
pfinet/linux-src/include/linux/nubus.h | 1 -
pfinet/linux-src/include/linux/route.h | 1 -
pfinet/linux-src/include/linux/sdla_fr.h | 1 -
pfinet/linux-src/include/linux/sdlapci.h | 1 -
pfinet/linux-src/include/linux/sdlasfm.h | 1 -
pfinet/linux-src/include/linux/serial_reg.h | 1 -
pfinet/linux-src/include/linux/sysv_fs.h | 1 -
pfinet/linux-src/include/linux/sysv_fs_i.h | 1 -
pfinet/linux-src/include/linux/sysv_fs_sb.h | 1 -
pfinet/linux-src/include/linux/tpqic02.h | 1 -
pfinet/linux-src/include/linux/tty_flip.h | 7 -
pfinet/linux-src/include/linux/vmalloc.h | 1 -
pfinet/linux-src/include/linux/wanpipe.h | 1 -
pfinet/linux-src/include/net/addrconf.h | 2 +
pfinet/linux-src/include/net/br.h | 3 -
pfinet/linux-src/include/net/inet_common.h | 2 -
pfinet/linux-src/include/net/ipv6.h | 3 -
pfinet/linux-src/include/net/llc.h | 1 -
pfinet/linux-src/include/net/llc_name.h | 1 -
pfinet/linux-src/include/net/llccall.h | 1 -
pfinet/linux-src/include/net/neighbour.h | 2 -
pfinet/linux-src/include/net/rarp.h | 1 -
pfinet/linux-src/include/net/scm.h | 1 -
pfinet/linux-src/net/core/dev_mcast.c | 1 -
pfinet/linux-src/net/ipv4/Config.in | 1 -
pfinet/linux-src/net/ipv4/af_inet.c | 1 +
pfinet/linux-src/net/ipv4/devinet.c | 2 +
pfinet/linux-src/net/ipv4/fib_frontend.c | 1 -
pfinet/linux-src/net/ipv4/fib_hash.c | 2 +-
pfinet/linux-src/net/ipv4/igmp.c | 1 -
pfinet/linux-src/net/ipv4/ip_input.c | 1 -
pfinet/linux-src/net/ipv4/ip_masq_quake.c | 2 -
pfinet/linux-src/net/ipv4/ip_output.c | 1 -
pfinet/linux-src/net/ipv4/tcp.c | 59 +-
pfinet/linux-src/net/ipv4/tcp_input.c | 3 +
pfinet/linux-src/net/ipv4/tcp_output.c | 1 +
pfinet/linux-src/net/ipv4/timer.c | 1 -
pfinet/linux-src/net/ipv4/utils.c | 1 -
pfinet/linux-src/net/ipv6/exthdrs.c | 1 -
pfinet/linux-src/net/ipv6/ip6_fib.c | 2 -
pfinet/loopback.c | 7 +
pfinet/main.c | 148 +-
pfinet/mig-decls.h | 67 +
pfinet/{mutations.h => mig-mutate.h} | 12 +-
pfinet/misc.c | 26 -
pfinet/options.c | 352 +++-
pfinet/pfinet.h | 16 +-
pfinet/sched.c | 7 +-
pfinet/socket-ops.c | 2 +-
pfinet/socket.c | 2 +-
pfinet/timer-emul.c | 2 +-
pfinet/tunnel.c | 5 +-
pflocal/connq.c | 2 +-
pflocal/io.c | 18 +-
pflocal/mig-decls.h | 12 +
pflocal/mig-mutate.h | 3 +
pflocal/pflocal.c | 33 +-
pflocal/sock.c | 20 +-
pflocal/sock.h | 31 +-
pflocal/socket.c | 17 +-
pflocal/sserver.c | 25 +-
proc/Makefile | 8 +-
proc/hash.c | 35 +-
proc/host.c | 37 +-
proc/info.c | 24 +-
proc/main.c | 141 +-
proc/mgt.c | 268 ++-
proc/mig-decls.h | 77 +
libdiskfs/get-source.c => proc/mig-mutate.h | 31 +-
proc/msg.c | 4 +-
proc/notify.c | 50 +-
proc/pgrp.c | 32 +-
proc/proc.h | 28 +-
proc/proc_exc.defs | 12 +-
procfs/ChangeLog | 6 +
{isofs => procfs}/Makefile | 16 +-
procfs/TODO | 24 +
procfs/dircat.c | 128 ++
libports/create-class.c => procfs/dircat.h | 42 +-
procfs/main.c | 338 ++++
libports/init.c => procfs/main.h | 18 +-
procfs/netfs.c | 461 +++++
procfs/process.c | 516 ++++++
libports/count-class.c => procfs/process.h | 25 +-
procfs/procfs.c | 219 +++
procfs/procfs.h | 99 ++
procfs/procfs_dir.c | 134 ++
procfs/procfs_dir.h | 63 +
procfs/proclist.c | 94 ++
libcons/extra-version.c => procfs/proclist.h | 13 +-
procfs/rootdir.c | 730 ++++++++
libcons/extra-version.c => procfs/rootdir.h | 13 +-
{isofs => random}/Makefile | 17 +-
random/TODO | 11 +
random/gnupg-bithelp.h | 41 +
random/gnupg-glue.h | 40 +
random/gnupg-random.c | 810 +++++++++
random/gnupg-random.h | 47 +
random/gnupg-rmd.h | 38 +
random/gnupg-rmd160.c | 656 ++++++++
random/random.c | 650 +++++++
include/pids.h => random/random.h | 29 +-
release/README | 2 -
release/SOURCES.0.2 | 2 -
release/dist-README | 3 -
release/menu.lst | 1 -
{init => startup}/Makefile | 12 +-
init/init.c => startup/startup.c | 281 +++-
storeio/dev.c | 6 +-
storeio/io.c | 4 +
storeio/pager.c | 28 +-
storeio/storeio.c | 5 +-
sutils/MAKEDEV.sh | 4 +-
sutils/fstab.c | 109 +-
term/Makefile | 4 +
term/devio.c | 6 +-
term/hurdio.c | 7 +-
term/main.c | 24 +-
term/mig-decls.h | 48 +
term/mig-mutate.h | 36 +
term/ptyio.c | 54 +-
term/term.h | 5 +
term/users.c | 319 ++--
tmpfs/dir.c | 24 +-
tmpfs/node.c | 137 +-
tmpfs/pager-stubs.c | 24 +-
tmpfs/tmpfs.c | 41 +-
tmpfs/tmpfs.h | 20 +-
trans/Makefile | 24 +-
trans/crash.c | 74 +-
trans/fakeroot.c | 536 ++++--
trans/fifo.c | 5 +-
trans/firmlink.c | 2 +
trans/hello-mt.c | 30 +-
trans/hello.c | 23 +-
trans/ifsock.c | 18 +-
trans/magic.c | 18 +-
trans/mtab.c | 279 ++-
trans/new-fifo.c | 32 +-
trans/null.c | 5 +
trans/password.c | 74 +-
trans/proxy-defpager.c | 30 +-
trans/streamio.c | 20 +-
trans/symlink.c | 15 -
usermux/node.c | 2 +-
usermux/usermux.c | 5 +-
utils/Makefile | 23 +-
utils/fakeauth.c | 29 +-
utils/fakeroot.sh | 10 +-
utils/frobauth.c | 6 +-
utils/gcore.c | 24 +-
utils/login.c | 8 +-
utils/mount.c | 46 +-
utils/msgids.c | 252 +++
libdiskfs/get-source.c => utils/msgids.h | 23 +-
utils/portinfo.c | 126 +-
utils/remap.sh | 9 +-
utils/rpcscan.c | 404 +++++
utils/rpctrace.c | 370 ++--
utils/settrans.c | 129 +-
utils/storeinfo.c | 1 -
utils/umount.c | 13 +-
utils/vmstat.c | 3 +-
utils/x.c | 4 +-
712 files changed, 17017 insertions(+), 12310 deletions(-)
diff --cc Makefile
index 9a5d4f3,ebda8aa..c97c1d7
--- a/Makefile
+++ b/Makefile
@@@ -28,21 -28,21 +28,26 @@@ include ./Makecon
# Hurd libraries
lib-subdirs = libshouldbeinlibc libihash libiohelp libports libthreads \
libpager libfshelp libdiskfs libtrivfs libps \
- libnetfs libpipe libstore libhurdbugaddr libftpconn libcons
+ libnetfs libpipe libstore libhurdbugaddr libftpconn libcons \
+ libhurd-slab
+
+ifneq ($(LIBPCIACCESS),no)
+lib-subdirs += libmachdev libddekit
+endif
# Hurd programs
- prog-subdirs = auth proc exec init term \
+ prog-subdirs = auth proc exec term \
ext2fs isofs tmpfs fatfs \
storeio pflocal pfinet defpager mach-defpager \
login daemons boot console \
hostmux usermux ftpfs trans \
console-client utils sutils \
- benchmarks fstests eth-multiplexer proc_proxy devnode
- benchmarks fstests \
++ benchmarks fstests eth-multiplexer proc_proxy \
+ random \
+ procfs \
+ startup \
+ init \
+ devnode \
ifeq ($(HAVE_SUN_RPC),yes)
prog-subdirs += nfs nfsd
diff --cc boot/Makefile
index 88d9006,0afdb43..497e2a3
--- a/boot/Makefile
+++ b/boot/Makefile
@@@ -19,13 -19,11 +19,13 @@@ dir := boo
makemode := utility
SRCS = mach-crt0.c boot.c ux.c sigvec.S syscall.S \
- boot_script.c userland-boot.c
+ boot_script.c userland-boot.c list.c mach_proxy.c
- COMMON-OBJS = notifyServer.o ourdeviceServer.o \
+ COMMON-OBJS = notifyServer.o deviceServer.o \
ioServer.o io_replyUser.o device_replyUser.o \
- termServer.o bootstrapServer.o boot_script.o userland-boot.o
-OBJS = boot.o $(COMMON-OBJS)
+ termServer.o bootstrapServer.o boot_script.o userland-boot.o \
+ ourmach_hostServer.o ourmachServer.o ourmach_portServer.o
+OBJS = boot.o mach_host_impl.o mach_impl.o mach_port_impl.o \
+ list.o mach_proxy.o $(COMMON-OBJS)
UX-OBJS = mach-crt0.o uxboot.o sigvec.o syscall.o ux.o $(COMMON-OBJS)
target = boot
io-MIGSFLAGS=-DREPLY_PORTS
diff --cc boot/boot.c
index 5458ba6,f688860..5623107
--- a/boot/boot.c
+++ b/boot/boot.c
@@@ -118,14 -109,12 +118,14 @@@ typedef struct stat host_stat_t
#endif /* UX */
- mach_port_t privileged_host_port, master_device_port, defpager;
+ mach_port_t privileged_host_port, master_device_port;
mach_port_t pseudo_master_device_port;
mach_port_t receive_set;
- mach_port_t pseudo_console, pseudo_root;
+ mach_port_t pseudo_console, pseudo_root, pseudo_time;
auth_t authserver;
+struct port_info *pseudo_priv_host_pi;
+
struct store *root_store;
pthread_spinlock_t queuelock = PTHREAD_SPINLOCK_INITIALIZER;
@@@ -182,67 -169,57 +182,82 @@@ useropen (const char *name, int flags,
return open (name, flags, mode);
}
- int
- request_server (mach_msg_header_t *inp,
- mach_msg_header_t *outp)
- {
- extern int io_server (mach_msg_header_t *, mach_msg_header_t *);
- extern int device_server (mach_msg_header_t *, mach_msg_header_t *);
- extern int notify_server (mach_msg_header_t *, mach_msg_header_t *);
- extern int term_server (mach_msg_header_t *, mach_msg_header_t *);
- /* extern int tioctl_server (mach_msg_header_t *, mach_msg_header_t *); */
- extern int bootstrap_server (mach_msg_header_t *, mach_msg_header_t *);
- extern boolean_t mach_host_server (mach_msg_header_t *InHeadP,
- mach_msg_header_t *OutHeadP);
- extern boolean_t mach_server (mach_msg_header_t *InHeadP,
- mach_msg_header_t *OutHeadP);
- extern void bootstrap_compat ();
+ /* XXX: glibc should provide mig_reply_setup but does not. */
+ /* Fill in default response. */
+ void
+ mig_reply_setup (
+ const mach_msg_header_t *in,
+ mach_msg_header_t *out)
+ {
+ static const mach_msg_type_t RetCodeType = {
+ /* msgt_name = */ MACH_MSG_TYPE_INTEGER_32,
+ /* msgt_size = */ 32,
+ /* msgt_number = */ 1,
+ /* msgt_inline = */ TRUE,
+ /* msgt_longform = */ FALSE,
+ /* msgt_deallocate = */ FALSE,
+ /* msgt_unused = */ 0
+ };
+
+ #define InP (in)
+ #define OutP ((mig_reply_header_t *) out)
+ OutP->Head.msgh_bits =
+ MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(InP->msgh_bits), 0);
+ OutP->Head.msgh_size = sizeof *OutP;
+ OutP->Head.msgh_remote_port = InP->msgh_remote_port;
+ OutP->Head.msgh_local_port = MACH_PORT_NULL;
+ OutP->Head.msgh_seqno = 0;
+ OutP->Head.msgh_id = InP->msgh_id + 100;
+ OutP->RetCodeType = RetCodeType;
+ OutP->RetCode = MIG_BAD_ID;
+ #undef InP
+ #undef OutP
+ }
- #if 0
- if (inp->msgh_local_port == bootport && boot_like_cmudef)
+ int
+ boot_demuxer (mach_msg_header_t *inp,
+ mach_msg_header_t *outp)
+ {
+ mig_routine_t routine;
+ mig_reply_setup (inp, outp);
+ if ((routine = io_server_routine (inp)) ||
+ (routine = device_server_routine (inp)) ||
+ (routine = notify_server_routine (inp)) ||
+ (routine = term_server_routine (inp))
+ /* (routine = tioctl_server_routine (inp)) */)
{
- if (inp->msgh_id == 999999)
- {
- bootstrap_compat (inp, outp);
- return 1;
- }
- else
- return bootstrap_server (inp, outp);
+ (*routine) (inp, outp);
+ return TRUE;
}
else
- #endif
- return (io_server (inp, outp)
- || device_server (inp, outp)
- || notify_server (inp, outp)
- || term_server (inp, outp)
- /* || tioctl_server (inp, outp) */);
+ return FALSE;
}
+int
+mach_proxy_demuxer (mach_msg_header_t *inp,
+ mach_msg_header_t *outp)
+{
+ extern boolean_t mach_server
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP);
+ extern boolean_t mach_host_server
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP);
+ extern boolean_t mach_port_server
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP);
+ extern int notify_server (mach_msg_header_t *, mach_msg_header_t *);
+ return (mach_server (inp, outp)
+ || mach_host_server (inp, outp)
+ || mach_port_server (inp, outp)
+ || notify_server (inp, outp));
+}
+
+void
+mach_proxy_thread ()
+{
+ ports_manage_port_operations_multithread (port_bucket,
+ mach_proxy_demuxer,
+ 30 * 1000, 0, 0);
+}
+
vm_address_t
load_image (task_t t,
char *file)
@@@ -664,49 -522,7 +638,37 @@@ main (int argc, char **argv, char **env
if (err)
error (4, err, "%s", root_store_name);
- get_privileged_ports (&privileged_host_port, &master_device_port);
+ init_signal ();
+ if (!is_user)
+ {
+ get_privileged_ports (&privileged_host_port, &master_device_port);
+ defpager = MACH_PORT_NULL;
- err = vm_set_default_memory_manager (privileged_host_port, &defpager);
- if (err)
- error (4, err, "vm_set_default_memory_manager");
+ subhurd_privileged_host_port = privileged_host_port;
+ }
+ else
+ {
+ port_bucket = ports_create_bucket ();
+ task_portclass = ports_create_class (clean_pseudo_task, 0);
+ priv_host_portclass = ports_create_class (destroy_priv_host, 0);
+ other_portclass = ports_create_class (0, 0);
+ init_kernel_task ();
+ cthread_detach (cthread_fork ((cthread_fn_t) mach_proxy_thread,
+ (any_t) 0));
- {
- mach_port_t priv_host;
- get_privileged_ports (&priv_host, NULL);
- defpager = MACH_PORT_NULL;
- err = vm_set_default_memory_manager (priv_host, &defpager);
- if (err)
- error (4, err, "vm_set_default_memory_manager");
- mach_port_deallocate (mach_task_self (), priv_host);
- }
+// if (pager_file == NULL)
+// error (4, 0, "The default pager must be specified for subhurd.");
+// defpager = file_name_lookup (pager_file, O_EXEC, 0);
+// if (defpager == MACH_PORT_NULL)
+// error (4, errno, "file_name_look: %s", pager_file);
+
+ /* Initialize the pseudo privileged host port. */
+ err = ports_create_port (priv_host_portclass, port_bucket,
+ sizeof (struct port_info),
+ &pseudo_priv_host_pi);
+ if (err)
+ error (4, err, "fail to create the pseudo privileged host port");
+ subhurd_privileged_host_port = ports_get_send_right
(pseudo_priv_host_pi);
+ ports_port_deref (pseudo_priv_host_pi);
+ }
strcat (bootstrap_args, "f");
@@@ -1085,80 -901,10 +1051,15 @@@ do_bootstrap_privileged_ports(bootstrap
mach_port_t bootstrap;
mach_port_t *hostp, *devicep;
{
- *hostp = privileged_host_port;
- *devicep = pseudo_master_device_port;
- return KERN_SUCCESS;
+ if (is_user)
+ /* I cannot use ports_get_right() here,
+ * because the port will be copied to the client. */
+ *hostp = pseudo_priv_host_pi->port_right;
+ else
+ *hostp = privileged_host_port;
+ *devicep = pseudo_master_device_port;
+ return KERN_SUCCESS;
}
-
- void
- bootstrap_compat(in, out)
- mach_msg_header_t *in, *out;
- {
- mig_reply_header_t *reply = (mig_reply_header_t *) out;
- mach_msg_return_t mr;
-
- struct imsg {
- mach_msg_header_t hdr;
- mach_msg_type_t port_desc_1;
- mach_port_t port_1;
- mach_msg_type_t port_desc_2;
- mach_port_t port_2;
- } imsg;
-
- /*
- * Send back the host and device ports.
- */
-
- imsg.hdr.msgh_bits = MACH_MSGH_BITS_COMPLEX |
- MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(in->msgh_bits), 0);
- /* msgh_size doesn't need to be initialized */
- imsg.hdr.msgh_remote_port = in->msgh_remote_port;
- imsg.hdr.msgh_local_port = MACH_PORT_NULL;
- /* msgh_seqno doesn't need to be initialized */
- imsg.hdr.msgh_id = in->msgh_id + 100; /* this is a reply msg */
-
- imsg.port_desc_1.msgt_name = MACH_MSG_TYPE_COPY_SEND;
- imsg.port_desc_1.msgt_size = (sizeof(mach_port_t) * 8);
- imsg.port_desc_1.msgt_number = 1;
- imsg.port_desc_1.msgt_inline = TRUE;
- imsg.port_desc_1.msgt_longform = FALSE;
- imsg.port_desc_1.msgt_deallocate = FALSE;
- imsg.port_desc_1.msgt_unused = 0;
-
- if (is_user)
- imsg.port_1 = pseudo_priv_host_pi->port_right;
- else
- imsg.port_1 = privileged_host_port;
-
- imsg.port_desc_2 = imsg.port_desc_1;
-
- imsg.port_desc_2.msgt_name = MACH_MSG_TYPE_MAKE_SEND;
- imsg.port_2 = pseudo_master_device_port;
-
- /*
- * Send the reply message.
- * (mach_msg_server can not do this, because the reply
- * is not in standard format.)
- */
-
- mr = mach_msg(&imsg.hdr, MACH_SEND_MSG,
- sizeof imsg, 0, MACH_PORT_NULL,
- MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
- if (mr != MACH_MSG_SUCCESS)
- (void) mach_port_deallocate(mach_task_self (),
- imsg.hdr.msgh_remote_port);
-
- /*
- * Tell mach_msg_server to do nothing.
- */
-
- reply->RetCode = MIG_NO_REPLY;
- }
/* Implementation of device interface */
diff --cc config.make.in
index 5d861ef,0f1390a..20ab344
--- a/config.make.in
+++ b/config.make.in
@@@ -63,12 -65,6 +65,9 @@@ gnu89-inline-CFLAGS = @libc_cv_gnu89_in
# `yes' or `no' to indicate if ld --version-script is available.
VERSIONING = @VERSIONING@
- # If a separate libcrypt is available, use it.
- LIBCRYPT = @LIBCRYPT@
-
+# Whether pcap support is available.
+LIBPCAP = @LIBPCAP@
+
# How to link against Parted libraries, if at all.
PARTED_LIBS = @PARTED_LIBS@
diff --cc libdiskfs/dir-lookup.c
index e566a10,75df9b8..d3bc382
--- a/libdiskfs/dir-lookup.c
+++ b/libdiskfs/dir-lookup.c
@@@ -465,38 -508,27 +508,31 @@@ diskfs_S_dir_lookup (struct protid *dir
&& (fshelp_isowner (&np->dn_stat, dircred->user) == EPERM))
flags &= ~O_NOATIME;
- error = diskfs_make_peropen (np, (flags &~OPENONLY_STATE_MODES),
+ err = diskfs_make_peropen (np, (flags &~OPENONLY_STATE_MODES),
dircred->po, &newpo);
- if (! error)
- {
- error = diskfs_create_protid (newpo, dircred->user, &newpi);
- if (error)
- {
- mutex_unlock(&np->lock);
- diskfs_release_peropen (newpo);
- }
- }
+ if (! err)
+ err = diskfs_create_protid (newpo, dircred->user, &newpi);
- if (! error)
+ if (! err)
{
- newpo = 0;
if (flags & O_EXLOCK)
- error = fshelp_acquire_lock (&np->userlock, &newpi->po->lock_status,
+ err = fshelp_acquire_lock (&np->userlock, &newpi->po->lock_status,
&np->lock, LOCK_EX);
else if (flags & O_SHLOCK)
- error = fshelp_acquire_lock (&np->userlock, &newpi->po->lock_status,
+ err = fshelp_acquire_lock (&np->userlock, &newpi->po->lock_status,
&np->lock, LOCK_SH);
+ if (error)
+ {
+ mutex_unlock(&np->lock);
+ ports_port_deref (newpi); /* Get rid of NEWPI. */
+ }
}
- if (! error)
+ if (! err)
{
free (newpi->po->path);
- if (dircred->po->path == NULL)
+ if (dircred->po->path == NULL || !strcmp (dircred->po->path,"."))
{
/* dircred is the root directory. */
newpi->po->path = relpath;
diff --cc libfshelp/start-translator-long.c
index 8c1c745,8b00e08..fe4a332
--- a/libfshelp/start-translator-long.c
+++ b/libfshelp/start-translator-long.c
@@@ -142,9 -298,13 +139,13 @@@ fshelp_start_translator_long (fshelp_op
/* Ok, cool, we've got a running(?) program, now rendezvous with it if
possible using the startup protocol on the bootstrap port... */
- err = service_fsys_startup(underlying_open_fn, cookie, bootstrap,
- timeout, control, task);
+ err = fshelp_service_fsys_startup(underlying_open_fn, cookie, bootstrap,
+ timeout, task, control);
+ lose_task:
+ if (err)
+ task_terminate (task);
+
lose:
if (!ports_moved)
{
diff --cc libports/manage-multithread.c
index 0866d14,60743d9..971a867
--- a/libports/manage-multithread.c
+++ b/libports/manage-multithread.c
@@@ -18,9 -18,9 +18,10 @@@
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+#include <stdio.h>
#include "ports.h"
#include <assert.h>
+ #include <error.h>
#include <stdio.h>
#include <mach/message.h>
#include <mach/thread_info.h>
diff --cc libports/manage-one-thread.c
index 124c6dc,b920338..22e9bc5
--- a/libports/manage-one-thread.c
+++ b/libports/manage-one-thread.c
@@@ -200,11 -103,21 +220,21 @@@ ports_manage_port_operations_one_threa
status = 1;
}
+ _ports_thread_quiescent (&bucket->threadpool, &thread);
return status;
}
-
+
+ /* XXX It is currently unsafe for most servers to terminate based on
+ inactivity because a request may arrive after a server has
+ started shutting down, causing the client to receive an error.
+ Prevent the service loop from terminating by setting TIMEOUT to
+ zero. */
+ timeout = 0;
+
+ _ports_thread_online (&bucket->threadpool, &thread);
do
- err = mach_msg_server_timeout (internal_demuxer, 0, bucket->portset,
- timeout ? MACH_RCV_TIMEOUT : 0, timeout);
+ err = ported_mach_msg_server_timeout (internal_demuxer, 0,
bucket->portset,
+ timeout ? MACH_RCV_TIMEOUT : 0,
timeout);
while (err != MACH_RCV_TIMED_OUT);
+ _ports_thread_offline (&bucket->threadpool, &thread);
}
diff --cc pfinet/main.c
index 8f440ab,4bfa318..1c43247
--- a/pfinet/main.c
+++ b/pfinet/main.c
@@@ -452,13 -482,11 +482,13 @@@ trivfs_goaway (struct trivfs_control *c
else
{
/* Stop new requests. */
- ports_inhibit_class_rpcs (trivfs_cntl_portclasses[0]);
- ports_inhibit_class_rpcs (trivfs_protid_portclasses[0]);
+ ports_inhibit_class_rpcs (pfinet_cntl_portclasses[0]);
+ ports_inhibit_class_rpcs (pfinet_protid_portclasses[0]);
ports_inhibit_class_rpcs (socketport_class);
- if (ports_count_class (socketport_class) != 0)
+ int count = ports_count_class (socketport_class);
+ fprintf (stderr, "the count of socket port: %d\n", count);
+ if (count != 0)
{
/* We won't go away, so start things going again... */
ports_enable_class (socketport_class);
diff --cc trans/proxy-defpager.c
index 229ae9e,4fdeb35..0bc7e3a
--- a/trans/proxy-defpager.c
+++ b/trans/proxy-defpager.c
@@@ -23,10 -23,10 +23,11 @@@
#include <error.h>
#include <version.h>
#include <hurd/paths.h>
+#include <string.h>
+ #include "libtrivfs/trivfs_io_S.h"
-#include "default_pager_S.h"
-#include "default_pager_U.h"
+#include "ourdefault_pager_S.h"
+#include "ourdefault_pager_U.h"
static mach_port_t real_defpager, dev_master;
@@@ -45,12 -48,12 +49,14 @@@ allowed (mach_port_t port, int mode
kern_return_t
S_default_pager_object_create (mach_port_t default_pager,
memory_object_t *memory_object,
+ mach_msg_type_name_t *memory_object_type,
vm_size_t object_size)
{
+ *memory_object_type = MACH_MSG_TYPE_COPY_SEND;
- return allowed (default_pager, O_EXEC)
+ error_t err;
+ err = allowed (default_pager, O_EXEC)
?: default_pager_object_create (real_defpager, memory_object,
object_size);
+ return err;
}
kern_return_t
diff --cc utils/settrans.c
index 8899b21,cd40c56..e20cff9
--- a/utils/settrans.c
+++ b/utils/settrans.c
@@@ -52,12 -48,12 +52,15 @@@ const char *argp_program_version = STAN
static struct argp_option options[] =
{
{"active", 'a', 0, 0, "Start TRANSLATOR and set it as NODE's active
translator" },
+ {"start", 's', 0, 0, "Start the translator specified by the NODE's
passive translator record and set it as NODE's active translator" },
{"passive", 'p', 0, 0, "Change NODE's passive translator record
(default)" },
+ {"interactive", 'i', 0, 0, "Run TRANSLATOR as a regular command "
+ "but still accept startup requests "
+ "so that child translators gets set to NODE" },
{"create", 'c', 0, 0, "Create NODE if it doesn't exist" },
{"dereference", 'L', 0, 0, "If a translator exists, put the new one on
top"},
+ {"pid-file", 'F', "FILENAME", 0, "When starting an active translator,"
+ " write its pid to this file"},
{"pause", 'P', 0, 0, "When starting an active translator, prompt and"
" wait for a newline on stdin before completing the startup handshake"},
{"timeout", 't',"SEC",0, "Timeout for translator startup, in seconds"
@@@ -270,7 -108,9 +273,9 @@@ main(int argc, char *argv[]
/* Various option flags. */
int passive = 0, active = 0, keep_active = 0, pause = 0, kill_active = 0,
- orphan = 0;
+ orphan = 0, interactive = 0;
+ int start = 0;
+ char *pid_file = NULL;
int excl = 0;
int timeout = DEFAULT_TIMEOUT * 1000; /* ms */
char **chroot_command = 0;
@@@ -298,8 -141,11 +306,12 @@@
return EINVAL;
case 'a': active = 1; break;
+ case 's':
+ start = 1;
+ active = 1; /* start implies active */
+ break;
case 'p': passive = 1; break;
+ case 'i': interactive = 1; break;
case 'k': keep_active = 1; break;
case 'g': kill_active = 1; break;
case 'x': excl = 1; break;
@@@ -384,80 -222,26 +402,100 @@@
active_flags = FS_TRANS_SET | FS_TRANS_EXCL;
}
+ if (interactive)
+ /* Interactive translators require special care when starting and
+ setting the translator, so it is an exclusive mode. */
+ {
+ mach_port_t bootstrap;
+ cthread_t thread;
+ pid_t pid;
+ int status;
+
+ /* The callback to start_translator opens NODE as a side effect. */
+ error_t open_node (int flags, mach_port_t *underlying,
+ mach_msg_type_name_t *underlying_type,
+ task_t task, void *cookie)
+ {
+ node = file_name_lookup (node_name, flags | lookup_flags, 0666);
+ if (node == MACH_PORT_NULL)
+ {
+ error (0, errno, "%s", node_name);
+ return errno;
+ }
+
+ *underlying = node;
+ *underlying_type = MACH_MSG_TYPE_COPY_SEND;
+
+ return 0;
+ }
+
+ error_t settrans (fsys_t control, task_t task, void *cookie)
+ {
+ error_t err;
+
+ err = file_set_translator (node, passive_flags, active_flags,
+ goaway_flags, argz, argz_len,
+ control, MACH_MSG_TYPE_COPY_SEND);
+ if (err)
+ error (0, err, "%s", node_name);
+
+ mach_port_deallocate (mach_task_self (), node);
+ return err;
+ }
+
+ err = start_interactive_translator_service (open_node, NULL,
+ settrans, NULL,
+ &thread, &bootstrap);
+ if (err)
+ error (9, err, "starting translator service");
+
+ err = fork_interactive_translator (bootstrap, &pid);
+ if (err)
+ error (9, err, "forking child process");
+
+ if (pid == 0)
+ {
+ err = exec_interactive_translator (argz, argz_len);
+ error (10, err, "%s", argz);
+ }
+
+ pid = waitpid (pid, &status, 0);
+ if (pid == -1)
+ error (10, errno, "waiting for child process");
+
+ mach_port_destroy (mach_task_self (), bootstrap);
+ cthread_join (thread);
+
+ if (err)
+ error (10, err, "%s", argz);
+ else if (WIFEXITED (status))
+ exit (WEXITSTATUS (status));
+ else if (WIFSIGNALED (status))
+ error (10, 0, "%s: %s", argz, strsignal (WTERMSIG (status)));
+ else
+ error (10, 0, "translator exited in an unknown fashion");
+ }
+
+ if (start)
+ {
+ /* Retrieve the passive translator record in argz. */
+ mach_port_t node = file_name_lookup (node_name, lookup_flags, 0);
+ if (node == MACH_PORT_NULL)
+ error (4, errno, "%s", node_name);
+
+ char buf[1024];
+ argz = buf;
+ argz_len = sizeof (buf);
+
+ err = file_get_translator (node, &argz, &argz_len);
+ if (err == EINVAL)
+ error (4, 0, "%s: no passive translator record found", node_name);
+ if (err)
+ error (4, err, "%s", node_name);
+
+ mach_port_deallocate (mach_task_self (), node);
+ }
+
if ((active || chroot_command) && argz_len > 0)
{
/* Error during file lookup; we use this to avoid duplicating error
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-hurd/hurd.git
- [hurd] 27/75: libihash: generalize the interface to support non-integer keys, (continued)
- [hurd] 27/75: libihash: generalize the interface to support non-integer keys, Samuel Thibault, 2016/01/13
- [hurd] 68/75: Fix build with perl >= 5.22, Samuel Thibault, 2016/01/13
- [hurd] 29/75: libihash: provide a general purpose hash algorithm, Samuel Thibault, 2016/01/13
- [hurd] 65/75: pflocal: Do not abort on too small getopt parameter, Samuel Thibault, 2016/01/13
- [hurd] 71/75: Merge branch 'dde-upstream' into dde, Samuel Thibault, 2016/01/13
- [hurd] 64/75: Add dumb SO_ERROR support to pflocal, Samuel Thibault, 2016/01/13
- [hurd] 75/75: Merge branch 'dde-upstream' into dde, Samuel Thibault, 2016/01/13
- [hurd] 67/75: Fix pfinet crash, Samuel Thibault, 2016/01/13
- [hurd] 18/75: Drop spurious debugging or outdated changes, Samuel Thibault, 2016/01/13
- [hurd] 74/75: Merge remote-tracking branch 'incubator/dde' into dde-upstream, Samuel Thibault, 2016/01/13
- [hurd] 15/75: Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd into dde,
Samuel Thibault <=
- [hurd] 73/75: Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd into dde, Samuel Thibault, 2016/01/13
- [hurd] 16/75: Add libhurd-slab, Samuel Thibault, 2016/01/13
- [hurd] 70/75: Merge remote-tracking branch 'incubator/dde' into dde-upstream, Samuel Thibault, 2016/01/13
- [hurd] 72/75: Drop devnode and libhurd-slab, now upstream, Samuel Thibault, 2016/01/13
- [hurd] 56/75: fix compiler warnings in hurd/nfs and hurd/nfsd, Samuel Thibault, 2016/01/13
- [hurd] 41/75: fix compiler warnings in hurd/libdiskfs, Samuel Thibault, 2016/01/13
- [hurd] 69/75: Fix O_DIRECTORY lookup on trivial translators, Samuel Thibault, 2016/01/13
- [hurd] 47/75: fix compiler warnings in hurd/libstore, Samuel Thibault, 2016/01/13
- [hurd] 50/75: fix compiler warnings in hurd/procfs, Samuel Thibault, 2016/01/13
- [hurd] 54/75: fix compiler warnings in hurd/trans, Samuel Thibault, 2016/01/13