commit-hurd
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]