mount: handle -t auto

Use libblkid to detect the filesystem type if "auto" is given as
type. Remove the translator localization from main, this is also done
in do_mount and any errors are propagated properly. This way "auto" is
handled correctly if given on the command line or used as filesystem
type in the fstab.

* configure.ac: Add check for libblkid.
* config.make.in: Make libblkid specific values available.
* utils/Makefile: Use libblkid specific values.
* utils/mount.c (DEFAULT_FSTYPE): Use "auto" as default type.
(do_mount): Detect type using libblkid.
(main): Drop translator localization.
Fix variable names

* utils/Makefile (mount-LDLIBS): Define to libblkid_LIBS instead of
libblkid-LIBS
(mount-CPPFLAGS): Likewise.
proc: keep track of {start,end}_code

Any executable segments loaded from the ELF binary are in this range.

* proc/proc.h (struct proc): Add {start,end}_code.
* proc/mgt.h (S_proc_set_code): New function.
* proc/mgt.h (S_proc_get_code): New function.
hurd: add proc_{get,set}_code

Add routines to set and query the processes start_code and end_code
locations. Any executable segments loaded from the ELF binary are in
this range.

* hurd/process.defs: Add proc_{get,set}_code.
* hurd/process_reply.defs: Add proc_{get,set}_code.
* hurd/process_request.defs: Add proc_{get,set}_code_request.
exec: keep track of the range where executable segments are mapped

Keep track of the range where executable segments are mapped into
memory and hand that information over to the proc server.

* exec/priv.h (struct execdata): Add {start,end}_code.
* exec/exec.c (prepare): Initialize {start,end}_code.
(load_section): Update {start,end}_code.
(do_exec): Use proc_set_code to hand {start,end}_code to the proc server.
proc: remove unused file exc-reply.defs

* proc/exc-reply.defs: Delete file.
proc: Remove unused declaration of zombie_list

* proc/proc.h (zombie_list): Remove declaration.
libihash: add HURD_IHASH_ITERATE_ITEMS macro

Add a macro HURD_IHASH_ITERATE_ITEMS that iterates over all elements
in the hash table making both the key and the value available.

* libihash/ihash.h (HURD_IHASH_ITERATE_ITEMS): New macro.
libdiskfs: track file name in struct peropen

Track the relative path used to obtain a file handle in the
struct peropen.

* libdiskfs/diskfs.h (struct peropen): New field path.
* libdiskfs/peropen-make.c (diskfs_make_peropen): Initialize path.
* libdiskfs/peropen-rele.c (diskfs_release_peropen): Free path.
* libdiskfs/fsys-getroot.c (diskfs_S_fsys_getroot): Initialize path.
* libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Preserve the path.
libnetfs: track file name in struct peropen

Track the relative path used to obtain a file handle in the
struct peropen.

* libnetfs/netfs.h (struct peropen): New field path.
* libnetfs/make-peropen.c (netfs_make_peropen): Initialize path.
* libnetfs/release-peropen.c (netfs_release_peropen): Free path.
* libnetfs/fsys-getroot.c (netfs_S_fsys_getroot): Initialize path.
* libnetfs/dir-lookup.c (netfs_S_dir_lookup): Preserve the path.
libfshelp: add translator-list.c

Add functions that maintain a list of active translators.

* libfshelp/translator-list.c: New file.
* libfshelp/fshelp.h: Add function declarations.
* libfshelp/Makefile: Add translator-list.c, link against libihash.
libdiskfs: add fsys_get_children

Keep track of active translators and handle fsys_get_children
requests.

* libdiskfs/Makefile (FSYSSRCS): Add fsys-get-children.c.
* libdiskfs/dead-name.c (ports_dead_name): Remove dead translators.
* libdiskfs/file-set-trans.c (diskfs_S_file_set_translator): Register
  active translators.
* libdiskfs/fsys-get-children.c: New file.
libnetfs: add fsys_get_children

Keep track of active translators and handle fsys_get_children
requests.

* libnetfs/Makefile (FSYSSRCS): Add fsys-get-children.c.
* libnetfs/dead-name.c (ports_dead_name): Remove dead translators.
* libnetfs/file-set-translator.c (netfs_S_file_set_translator): Register
  active translators.
* libnetfs/fsys-get-children.c: New file.
libtrivfs: add fsys_get_children

Create a server function returning EOPNOTSUPP.

* libtrivfs/fsys-get-children.c: New file.
trans/symlink.c: add fsys_get_children

Create a server function returning EOPNOTSUPP.

* trans/symlink.c (S_fsys_get_children): New function.
hurd: add fsys_get_children

fsys_get_children returns any active translators bound to nodes of the
receiving filesystem as an argz vector containing file names relative
to the root of the receiving translator.

* hurd/fsys.defs: Add fsys_get_children.
* hurd/fsys_reply.defs: Add fsys_get_children.
libdiskfs: add fsys_get_source

Add a user overridable function diskfs_get_source with a default
implementation returning EOPNOTSUPP. Add a server function for
fsys-get-source.

* libdiskfs/Makefile: Add fsys-get-source.c and get-source.c
* libdiskfs/diskfs.h: Add diskfs_get_source.
* libdiskfs/fsys-get-source.c: New file.
* libdiskfs/get-source.c: Likewise.
libnetfs: add fsys_get_source

Add a user overridable function netfs_get_source with a default
implementation returning EOPNOTSUPP. Add a server function for
fsys-get-source.

* libnetfs/Makefile: Add fsys-get-source.c and get-source.c
* libnetfs/netfs.h: Add netfs_get_source.
* libnetfs/fsys-get-source.c: New file.
* libnetfs/get-source.c: Likewise.
libtrivfs: add fsys_get_source

* libtrivfs/Makefile: Add fsys-get-source.c and get-source.c
* libtrivfs/trivfs.h: Add trivfs_get_source.
* libtrivfs/fsys-get-source.c: New file.
* libtrivfs/get-source.c: Likewise.
trans/symlink.c: add fsys_get_source

Create a server function returning EOPNOTSUPP.

* trans/symlink.c (S_fsys_get_source): New function.