aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* hurd: add IIOCTL_IMPORTSJustus Winter2014-02-271-0/+4
| | | | * hurd/iioctl.defs: Add IIOCTL_IMPORTS.
* libtrivfs: improve the mig mutator functionsJustus Winter2014-02-257-59/+39
| | | | | | | | | | | | | | | | Previously, the mig mutator functions were in migsupport.c, preventing them from being inlined into the mig-generated server functions. Put them in mig-decls.h instead. Rename mutations.h to mig-mutate.h. This is the naming convention used for pflocal. * libtrivfs/fsmutations.h: Rename to mig-mutate.h, adopt imports. * libtrivfs/Makefile: Adopt accordingly. * libtrivfs/migsupport.c: Rename to mig-decls.h. * libtrivfs/trivfs.h: Move dynamic classes/buckets declarations to mig-decls.h, remove superfluous imports. * exec/execmutations.h: Fix import. * pfinet/mig-mutate.h: Likewise. * trans/Makefile: Likewise.
* pfinet: improve the mig mutator functionsJustus Winter2014-02-256-41/+62
| | | | | | | | | | | | | | | Previously, the mig mutator functions were in misc.c, preventing them from being inlined into the mig-generated server functions. Put them in mig-decls.h instead. Rename mutations.h to mig-mutate.h. This is the naming convention used for pflocal. * pfinet/mutations.h: Rename to mig-mutate.h, adopt imports. * pfinet/Makefile: Adopt accordingly. * pfinet/mig-decls.h: New file. * pfinet/misc.c: Move mutator functions to mig-decls.h. * pfinet/pfinet.h: Move type declarations to mig-decls.h, remove mutator declarations. * pfinet/iioctl-ops.c: Include mig-decls.h.
* libdiskfs: fix receiver lookups in fsys server functionsJustus Winter2014-02-259-48/+51
| | | | | | | | | | | | | | * libdiskfs/diskfs.h (struct diskfs_control): New declaration. (diskfs_begin_using_control_port): New declaration and function. (diskfs_end_using_control_port): Likewise. * libdiskfs/fsmutations.h: Add translation functions. * libdiskfs/priv.h (control_t): New type declaration for mig. * libdiskfs/boot-start.c: Fix receiver lookups. * libdiskfs/fsys-getfile.c: Likewise. * libdiskfs/fsys-getroot.c: Likewise. * libdiskfs/fsys-goaway.c: Likewise. * libdiskfs/fsys-options.c: Likewise. * libdiskfs/fsys-syncfs.c: Likewise.
* libnetfs: fix receiver lookups in fsys server functionsJustus Winter2014-02-259-29/+36
| | | | | | | | | | | | * mutations.h: Add translation functions. * netfs.h (struct netfs_control): New declaration. * priv.h: Define translation functions. * fsys-get-options.c: Fix receiver lookups. * fsys-getroot.c: Likewise. * fsys-goaway.c: Likewise. * fsys-set-options.c: Likewise. * fsys-syncfs.c: Likewise. * fsysstubs.c: Likewise.
* New RPCs, fix buildJustus Winter2014-02-251-1/+1
|
* trans/mtab: do not map unknown source strings to "none"Justus Winter2014-02-251-1/+1
| | | | | | | | | Previously, map_device_to_path mapped unknown device strings to "none". Return a copy of the original source string instead so that e.g. nfs mount point points are properly handled. * trans/mtab.c (map_device_to_path): Do not map unknown source strings to "none".
* tmpfs: set diskfs_disk_name to "none"Justus Winter2014-02-251-1/+1
| | | | | | | | By default diskfs_disk_name is returned as the source of libdiskfs-based translators. Hurds fstab allows multiple entries with the mnt_fsname being "none". * tmpfs/tmpfs.c (diskfs_disk_name): Set to "none".
* trans/mtab: ignore translators that do not implement file_get_sourceJustus Winter2014-02-251-13/+6
| | | | | | | | | | | | | | Previously, the mtab translator would guess the source of a filesystem translator from its last argument. This made all kinds of non-filesystem translators appear in /proc/mounts, causing severe problems due to umount --all removing vital passive translator records. Fix this by ignoring all translators that do not explicitly implement file_get_source. * trans/mtab.c (mtab_populate): Ignore translators that do not implement file_get_source.
* nfs: implement netfs_get_sourceJustus Winter2014-02-251-0/+14
| | | | | | | Implement netfs_get_source so that nfs translators show up in /proc/mounts. * nfs/main.c (netfs_get_source): New function.
* hurd: fix the get-children and get-source proceduresJustus Winter2014-02-2519-91/+85
| | | | | | | | | | | | | | | | | | | | | | | * hurd/fs.defs: Add file_get_children and file_get_source. * hurd/fsys.defs: Remove fsys_get_children and fsys_get_source. * libdiskfs/fsys-get-children.c: Rename and adapt accordingly. * libdiskfs/fsys-get-source.c: Likewise. * libnetfs/fsys-get-children.c: Likewise. * libnetfs/fsys-get-source.c: Likewise. * libtrivfs/fsys-get-children.c: Likewise. * libtrivfs/fsys-get-source.c: Likewise. * libdiskfs/diskfs.h: Adapt prototype and comment. * libnetfs/netfs.h: Likewise. * libtrivfs/trivfs.h: Likewise. * libdiskfs/get-source.c: Adapt default implementation, provide diskfs_disk_name by default. * libnetfs/netfs.h: Adapt default implementation. * libtrivfs/get-source.c: Likewise. * libdiskfs/Makefile: Adapt accordingly. * libnetfs/Makefile: Likewise. * libtrivfs/Makefile: Likewise. * trans/symlink.c: Likewise. * trans/mtab.c: Likewise.
* mach-defpager: improve the default_pager_demux_object functionJustus Winter2014-02-251-10/+20
| | | | | | | | | | Handle multiple request types as recommended by the Mach Server Writer's Guide section 4, subsection "Handling Multiple Request Types". This avoids initializing the reply message in every X_server function. * mach-defpager/default_pager.c (default_pager_demux_object): Improve the demuxer function.
* mach-defpager: add function mig_reply_setupJustus Winter2014-02-251-0/+31
| | | | | | | Currently, mig_reply_setup is not provided by libmachuser or the glibc. Provide it locally. * mach-defpager/default_pager.c (mig_reply_setup): New function.
* mach-defpager: fix definition of seqnos_memory_object_data_unlockJustus Winter2014-02-251-3/+3
| | | | | * mach-defpager/default_pager.c (seqnos_memory_object_data_unlock): Fix function arguments.
* libpager: improve the pager_demuxer functionJustus Winter2014-02-251-11/+11
| | | | | | | | | | Handle multiple request types as recommended by the Mach Server Writer's Guide section 4, subsection "Handling Multiple Request Types". This avoids initializing the reply message in every X_server function. The reply message has already been properly initialized in libports, so there is no need to call mig_reply_setup. * libpager/demuxer.c (pager_demuxer): Improve the demuxer function.
* utils/umount: do not remove passive translator recordsJustus Winter2014-02-251-2/+2
| | | | | | | | Passive translator records are a Hurd concept. Therefore, the umount compatibility program should not remove them. * utils/umount.c (passive_flags): Unset FS_TRANS_SET. (doc): Adjust accordingly.
* Fix fakeroot and remap parsing corner casesSamuel Thibault2014-02-252-14/+5
| | | | | | | | | | Fix case when $PWD contains spaces. Pass directly arguments to command, to directly avoid escaping issues. Based on suggestion by Ivan Shmakov <oneingray@gmail.com> * utils/fakeroot.sh (TARGET): Do not define. (sh): Rather pass PWD and commandline as parameters. * utils/remap.sh: Likewise.
* exec: provide a meaningful name for new tasksJustus Winter2014-02-231-6/+21
| | | | | | | The name will be used in error messages printed by the kernel. This makes attributing the errors to processes possible. * exec/exec.c (do_exec): Set the name of the new task.
* pfinet: set a non-zero ports management timeoutRichard Braun2014-02-221-1/+1
| | | | | * pfinet/main.c (main): Call ports_manage_port_operations_multithread with non-zero timeouts.
* libports: work around bugs in server terminationRichard Braun2014-02-221-0/+6
| | | | | | | | | | | Most servers use ports_manage_port_operations_multithread to process requests and terminate when it returns. Since many of them don't detach before shutting down, a client may receive an error if its request arrived while the server is shutting down. Prevent those spurious errors by forcing ports_manage_port_operations_multithread not to return. * libports/manage-multithread.c (ports_manage_port_operations_multithread): Force global_timeout to 0.
* libstore: fixed some pointer-sign related warningsIgnazio Sgalmuzzo2014-02-191-2/+2
| | | | libstore/do-bunzip2.c: fixed type modifier, avoiding cast
* Add missing copyright noticeSamuel Thibault2014-02-181-0/+21
|
* libstore: replaced gz decompression code with libzIgnazio Sgalmuzzo2014-02-1812-1766/+70
| | | | | | | | | | | | | | | | | Note: dropped .zip support configure.ac: added check for libz ext2fs/Makefile: linked libz fatfs/Makefile: linked libz isofs/Makefile: linked libz libstore/Makefile: linked libz libstore/do-gunzip.c: new decompression function using libz calls. libstore/gunzip.c: removed no longer needed code replaced by do_gunzip() libstore/gzip.h: deleted, no longer needed libstore/inflate.c: deleted: no longer needed libstore/tailor.h: deleted: no longer needed libstore/unzip.c: deleted: no longer needed libstore/util.c: removed no longer needed code.
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault2014-02-181-1/+1
|\
| * libdiskfs: fix typoJustus Winter2014-02-141-1/+1
| | | | | | | | * libdiskfs/boot-start.c (diskfs_S_fsys_init): Fix typo.
* | Add missing copyright noticeSamuel Thibault2014-02-181-0/+21
|/
* Add --font-width option to force 8/9 pixel font widthSamuel Thibault2014-02-135-11/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This permits to choose between 720x400 or 640x400 textmode without changing the font. * console-client/vga-hw.h (VGA_ATTR_MODE_ADDR, VGA_ATTR_MODE_LGE, VGA_ATTR_ENABLE_ADDR): New macros. * console-client/vga-support.c (vga_state): Add `attr_mode' field. (vga_init): Save attribute mode subregister content. Re-enable the screen after that. (vga_fini): Restore attribute mode subregister content. Re-enable the screen after that. (vga_set_font_width): When the font width is set to 9, enable VGA LGE to properly handle box-drawing unicode characters. Re-nable the screen after that. (vga_exchange_palette_attributes): Use VGA_ATTR_ENABLE_ADDR macro instead of harcoded 0x20. * console-client/vga-dynafont.h (dynafont_new): Add `width' parameter. * console-client/vga-dynafont.c (dynafont): Add `width' field. (dynafont_new): Add `width' parameter, stored in `width' field of `df', but using the font bbox as default value. Use it to decide whether to use VGA LGE or not. (dynafont_activate): Use `width' field of `df' instead of the font bbox to configure the VGA glyph width. * console-client/vga.c (vga_display_font_width): New variable. (vga_display): New `df_width' field. (argp_option): New `font-width' option. (parse_opt): Handle `font-width' option. (vga_display_init): Copy `vga_display_font_width' to `disp'. (vga_display_start): Pass `df_width' to `dynafont_new'.
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault2014-02-122-2/+2
|\
| * fatfs: add bz2 to OTHERLIBSJustus Winter2014-02-101-1/+1
| | | | | | | | * fatfs/Makefile (OTHERLIBS): Add bz2.
| * isofs: add bz2 to OTHERLIBSJustus Winter2014-02-101-1/+1
| | | | | | | | * isofs/Makefile (OTHERLIBS): Add bz2.
* | Fix typosSamuel Thibault2014-02-121-2/+2
|/
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault2014-02-091-1/+10
|\
| * trans/fakeroot: fix cached node retrieval on lookupRichard Braun2014-02-071-1/+10
| | | | | | | | | | | | | | | | | | | | When a client finds a node from the hash table, it could happen that another thread is still holding one reference on it before the current thread has acquired its own. Simply checking for a non zero refcount isn't enough, the new client must atomically acquire its own reference. * trans/fakeroot.c (netfs_S_dir_lookup): Find and acquire node reference while holding netfs_node_refcnt_lock.
* | Replaced bz2 decompression code with libbz2Ignazio Sgalmuzzo2014-02-094-1719/+42
|/ | | | | | | configure.ac: added check for libbz2 libstore/Makefile: linked libbz2 ext2fs/Makefile: linked libbz2 do-bunzip2.c: rewritten do_bunzip2 using libbz2 calls. Removed no longer needed functions.
* trans/fakeroot: fix netfs_S_dir_lookupRichard Braun2014-02-061-1/+1
| | | | * trans/fakeroot.c (netfs_S_dir_lookup): Fix node dereference.
* trans/fakeroot: rework node cachingRichard Braun2014-02-051-62/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of the FAKE_REFERENCE flag, rework node caching so that nodes are retained only if their attributes are actually changed. In addition, don't remove unreferenced nodes from the hash table at protid release, since their reference counter is unstable. Do it on node destruction, once the reference counter has reached 0. This means lookups can return nodes not referenced (other than by the hash table), a condition for which a check is added. By never acquiring a reference on such nodes, their counter is guaranteed to remain stable once unreferenced. * trans/fakeroot.c (FAKE_REFERENCE): Remove macro. (FAKE_DEFAULT): New macro. (set_default_attributes): New function. (set_faked_attribute): Likewise. (netfs_node_norefs): Remove node from hash table, properly taking care of all the locks involved. (fakeroot_netfs_release_protid): Remove node handling code, merely call netfs_release_protid. (netfs_S_dir_lookup): Handle unreferenced nodes, call set_default_attributes on node creation, remove call to netfs_attempt_chown. (netfs_attempt_chown): Call set_faked_attribute instead of accessing faked flags directly. (netfs_attempt_chauthor): Likewise. (netfs_attempt_chmod): Likewise. (main): Likewise.
* trans/fakeroot: fix chmodRichard Braun2014-02-051-10/+4
| | | | | | | | Unconditionally relay chmod requests instead of filtering those that don't change the executable bit. * trans/fakeroot.c (netfs_attempt_chmod): Unconditionally call file_chmod with an unaltered mode.
* Revert "trans: fix locking issue in fakeroot"Richard Braun2014-02-051-1/+1
| | | | | | | | | This reverts commit 672005782e57e049c7c8f4d6d0b2a80c0df512b4. That change is apparently not needed and introduced a deadlock. * trans/fakeroot.c (netfs_attempt_mkfile): Unlock directory node before creating new node.
* trans/fakeroot: fix right leakRichard Braun2014-02-051-0/+2
| | | | | * trans/fakeroot.c (netfs_S_dir_lookup): Deallocate rights to intermediate file systems.
* daemons/getty: always print a newline before the bannerJustus Winter2014-02-051-1/+2
| | | | | * daemons/getty.c (load_banner): Drop first newline from default banner. (print_banner): Print a newline.
* exec: connect std{in,out,err} to the mach consoleJustus Winter2014-02-021-2/+15
| | | | | * exec/main.c (S_exec_init): Get the device master port and connect std{in,out,err} to the mach console.
* daemons/getty: display /etc/issue if availableJustus Winter2014-01-311-7/+79
| | | | | | | | | | Previously, a banner was hardcoded in Hurds getty. Load /etc/issue instead. Fall back to a hardcoded version if that fails. Expand common \char sequences. If no /etc/issue is provided, the old behavior is retained. * daemons/getty.c (load_banner): New function. (print_banner): Expand \char sequences.
* Fix crash on fsysopts when pfinet has no IPv6Samuel Thibault2014-01-301-3/+2
| | | | | * pfinet/options.c (add_dev_opts): Use a for loop over `idev->addr_list' instead of a while loop which assumes that it is not empty.
* pfinet: really deallocate device portSamuel Thibault2014-01-291-0/+1
| | | | | * pfinet/ethernet.c (ethernet_close): Call mach_port_deallocate on device port.
* Also re-open Ethernet device on EMIG_SERVER_DIEDSamuel Thibault2014-01-281-1/+1
| | | | | * pfinet/ethernet.c (ethernet_xmit): Also call ethernet_close then ethernet_open on EMIG_SERVER_DIED error.
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault2014-01-2823-180/+235
|\
| * libnetfs: fix file locking on peropen releaseRichard Braun2014-01-261-0/+5
| | | | | | | | | | * libnetfs/release-peropen.c (netfs_release_peropen): Release the lock on the underlying node if the peropen status indicates it's not unlocked.
| * proc: fix the receiver lookup in S_proc_exception_raiseJustus Winter2014-01-203-6/+51
| | | | | | | | | | | | * proc/mgt.c (S_proc_exception_raise): Update accordingly. * proc/mig-decls.h: New file. * proc/proc_exc.defs: Add translation functions.
| * utils: include the mig-generated server headers in fakeauth.cJustus Winter2014-01-201-4/+2
| | | | | | | | | | | | | | | | | | GNU MIG recently gained support for emitting x_server_routine declarations in the generated server header file. Using this declaration, the x_server_routine functions can be inlined into the demuxer function. * utils/fakeauth.c: Include the mig-generated server headers.
| * auth: include the mig-generated server headers in auth.cJustus Winter2014-01-201-6/+4
| | | | | | | | | | | | | | | | | | GNU MIG recently gained support for emitting x_server_routine declarations in the generated server header file. Using this declaration, the x_server_routine functions can be inlined into the demuxer function. * auth/auth.c: Include the mig-generated server headers.