summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-09-27* ChangeLog: Don't refer to serverboot/ChangeLog; it is no more.Thomas Schwinge
Fixup for commit a8744157214a302d84c8959b1ae99abe3ae2d7d2.
2013-09-26Update mailing listsSamuel Thibault
* README: Update mailing lists.
2013-09-24Drop dead linksSamuel Thibault
* doc/hurd.texi (BSD Unix FS): Remove link to dropped section.
2013-09-24Fix missing renamesSamuel Thibault
* pflocal/sock.c (sock_connect, sock_shutdown): Rename SOCK_CONNECTED to PFLOCAL_SOCK_CONNECTED.
2013-09-24Add --without-daemon option to configureSamuel Thibault
* configure.ac (--without-daemon): Add option to disable libdaemon pkgconfig test.
2013-09-21Fix spurious port deallocationSamuel Thibault
* utils/storeinfo.c (parse_opt): Do not deallocate `file` port, `store_free` does it already.
2013-09-21include: make /hurd/proc PID 3Justus Winter
Using PID 0 is problematic for various reasons. Make /hurd/proc run as PID 3 instead. * include/pids.h: Make /hurd/proc PID 3.
2013-09-21proc: do not hand out PID 0Justus Winter
Using PID 0 causes various problems. This makes genpid skip PID 0. * proc/mgt.c (genpid): Start PIDs at 1.
2013-09-21Fix sscanf format for c99Samuel Thibault
* utils/rpctrace.c (parse_msgid_list): Use %ms instead of %as in sscanf format.
2013-09-21Fix gcc warningSamuel Thibault
* console-client/pc-mouse.c (input_loop): Return NULL.
2013-09-21Fix gcc warningSamuel Thibault
* console-client/xkb/kstoucs.c (find_ucs): Return 0 by default.
2013-09-21Fix gcc warningSamuel Thibault
* console-client/pc-kbd.c (gnumach_v1_input_next) [XKB_SUPPORT]: Do not define `up` and `sc` variables.
2013-09-21Rename SOCK_* into PFLOCAL_SOCK_*Samuel Thibault
To avoid conflicting with glibc's SOCK_* * pflocal/io.c, pflocal/sock.c, pflocal/sock.h, pflocal/socket.c: Rename SOCK_CONNECTED into PFLOCAL_SOCK_CONNECTED, SOCK_NONBLOCK into PFLOCAL_SOCK_NONBLOCK, SOCK_SHUTDOWN_READ into PFLOCAL_SOCK_SHUTDOWN_READ, SOCK_SHUTDOWN_WRITE into PFLOCAL_SOCK_SHUTDOWN_WRITE.
2013-09-21Fix gcc warningSamuel Thibault
* pflocal/io.c (copy_time): Make `to_nsec` parameter a long * instead of an unsigned long *.
2013-09-21Properly return errorSamuel Thibault
* isofs/pager.c (pager_read_page): Return error returned by `store_read`, if any.
2013-09-21Fix gcc warningSamuel Thibault
* isofs/lookup.c (dirscanblock): Cast entry->name into const char * before passing to isonamematch.
2013-09-21Fix gcc warningSamuel Thibault
* isofs/inode.c (read_disknode): Cast dr->date into char* before calling `isodate_915`.
2013-09-21Fix test for block compressionSamuel Thibault
* ext2fs/dir.c (dirscanblock): Test ds->stat against LOOKING and COMPRESS, instead of ds->type.
2013-09-21Fix gcc warningSamuel Thibault
* ext2fs/dir.c (dirscanblock): Test ds->type against LOOKUP instead of LOOKING. They happened to have the same value.
2013-09-21Fix setting modem control linesSamuel Thibault
* term/hurdio.c (hurdio_mdmctl): Pass `newbits` intead of `oldbits` to `tioctl_tiocmods`.
2013-09-21Fix gcc warningSamuel Thibault
* term/users.c (trivfs_S_io_read): Add parentheses to make expression evaluation priority clear.
2013-09-21Fix S_tioctl_tiocsetd returning errorsSamuel Thibault
* term/users.c (S_tioctl_tiocsetd): Properly return `err`.
2013-09-21Fix test for term open modeSamuel Thibault
* term/users.c (S_term_open_ctty): Properly test for `openmodes` containing at least O_READ or O_WRITE.
2013-09-21Fix gcc warningSamuel Thibault
* exec/hostarch.c (elf_machine_matches_host): Cast `&hostinfo` into host_info_t instead of natural_t *.
2013-09-21Fix gcc warningSamuel Thibault
* libfshelp/fshelp.h (fshelp_set_options): Make `argp` pointer const. * libfshelp/set-options.c (fshelp_set_options): Likewise. * doc/hurd.texi (fshelp_set_options): Likewise.
2013-09-21Fix gcc warningSamuel Thibault
* libpipe/pipe.c: Include <stdlib.h>
2013-09-21Fix ENOMEM handling in *_make_peropenSamuel Thibault
* libdiskfs/peropen-make.c (diskfs_make_peropen): Move `strdup` before port reference modifications, to fix abortion. * libnetfs/make-peropen.c (netfs_make_peropen): Check for `malloc` failure. Move `strdup` before port reference modifications, to fix abortion.
2013-09-21Fix gcc warning:Samuel Thibault
* libps/write.c (noise_write): Make `t` parameter a char * instead of unsigned char *.
2013-09-21Fix gcc warningSamuel Thibault
* libtrivfs/io-restrict-auth.c (listmember): Use uid_t type instead of int. (trivfs_S_io_restrict_auth): Make `i` variable an unsigned int, like the `num` field it is compared with
2013-09-19hurd: add _reply suffix to the routines in fsys_reply.defsJustus Winter
* hurd/fsys_reply.defs: Add _reply suffix.
2013-09-19hurd: add _reply suffix to the routines in process_reply.defsJustus Winter
* hurd/process_reply.defs: Add _reply suffix.
2013-09-19sutils: set up /dev/null using /bin/nullpriv in MAKEDEV.shJustus Winter
This patch makes MAKEDEV.sh use the /bin/nullpriv wrapper so that the storeio translator serving /dev/zero is started without any unix privileges. * sutils/MAKEDEV.sh (mkdev): Use /bin/nullpriv for /dev/zero.
2013-09-19daemons: make sure / is writable before setting up pflocalJustus Winter
runsystem.sh checks whether /servers/socket/1 exists and creates it using settrans -c if it does not. But at this point in the boot the root filesystem is normally not writable. This patch fixes this. * daemons/runsystem.sh: Make sure / is writable before attempting to set up pflocal.
2013-09-19Fix cursor sizeSamuel Thibault
The VGA card might have a bogus cursor end value, so better always write a value in there. * console-client/vga-dynafont.c (dynafont_set_cursor): Always pass height - 1 as end parameter for vga_set_cursor_size.
2013-09-17Remove UFS supportSamuel Thibault
It has been unused/untested/unmaintained for a decade now, and its 4-clause BSD licence poses problem. * configure.ac (default_static): Remove ufs. * Makefile (prog-subdirs): Remove ufs, ufs-fsck and ufs-utils. * NEWS, TODO: doc/hurd.texi, doc/navigating: Remove UFS notes. * ufs: Remove directory * ufs-fsck: Remove directory * ufs-utils: Remove directory * bsdfsck: Remove directory
2013-09-16Add match-options to utils sourcesJustus Winter
* utils/Makefile (SRCS): Add match-options.c
2013-09-16Use fsys_get_children from libcSamuel Thibault
* trans/Makefile (OBJS): Remove fsysUser.o.
2013-09-16Add missing includeSamuel Thibault
* libfshelp/translator-list.c: Include <libgen.h> to get `dirname' prototype.
2013-09-16Large store support for ext2fsRichard Braun
This is a revised version of the large store patch for ext2fs, written by Ognyan Kulev. It provides support for stores larger than 2 GiB. * ext2fs/balloc.c: Use the new disk_cache_block_ref and disk_cache_block_deref functions to access blocks from the disk cache. * ext2fs/ext2fs.c (main): Update initialization call to pokel_init, and call map_hypermetadata instead of get_hypermetadata. * ext2fs/ext2fs.h: Include <hurd/store.h> and <hurd/ihash.h>. (DISK_CACHE_BLOCKS): New macro. (DC_INCORE): Likewise. (DC_UNTOUCHED): Likewise. (DC_FIXED): Likewise. (DC_DONT_REUSE): Likewise. (DC_NO_BLOCK): Likewise. (DISK_CACHE_LAST_READ_XOR) [!NDEBUG]: Likewise. (struct disk_cache_info): New structure. (disk_cache): New external variable. (disk_cache_size): Likewise. (disk_cache_blocks): Likewise. (disk_cache_bptr): Likewise. (disk_cache_info): Likewise. (disk_cache_lock): Likewise. (disk_cache_reassociation): Likewise. (disk_cache_block_ref): New declaration. (disk_cache_block_ref_ptr): Likewise. (disk_cache_block_deref): Likewise. (disk_cache_block_is_ref): Likewise. (map_hypermetadata): Likewise. (trunc_block): Cast to off_t. (round_block): Likewise. (boffs): Likewise. (bptr_index): New macro. (boffs_ptr): Rewrite as an inline function to make it look up a block from the disk cache. (bptr_offs): Likewise. (dino): Remove function, replaced with ... (dino_ref): ... this one, which adds a reference to the inode block. (dino_deref): New inline function. (record_global_poke): Make sure block is referenced. (record_indir_poke): Likewise. (sync_global_ptr): Remove block reference, and adjust call to pager_sync_some. (sync_global): Add debug call to print wait parameter. * ext2fs/getblk.c: Use the new disk_cache_block_ref and disk_cache_block_deref functions to access blocks from the disk cache. * ext2fs/hyper.c (get_hypermetadata): Read the superblock from the store now that it's not directly mapped in memory. Move the initialization of zeroblock here from ... (map_hypermetadata): ... here. Also, set the superblock pointer. (diskfs_set_hypermetadata): Add a reference to the superblock. (diskfs_readonly_changed): Update call to mprotect. * ext2fs/ialloc.c: Use the new disk_cache_block_ref, disk_cache_block_ref_ptr and disk_cache_block_deref functions to access blocks from the disk cache. * ext2fs/inode.c: Update calls that used the disk image to use the disk cache, and use the new reference handling functions where appropriate. * ext2fs/pager.c: Include <unistd.h> and "../libpager/priv.h". (disk_image): Remove global variable. (disk_pager_read_page): Update cache information. (disk_pager_write_page): Likewise. (disk_pager_notify_evict): New function. (pager_notify_evict): Call disk_pager_notify_evict appropriately. (disk_cache): New global variable. (disk_cache_size): Likewise. (disk_cache_blocks): Likewise. (disk_cache_bptr): Likewise. (disk_cache_info): Likewise. (disk_cache_hint): Likewise. (disk_cache_lock): Likewise. (disk_cache_reassociation): Likewise. (disk_cache_init): New function. (disk_cache_return_unused): Likewise. (disk_cache_block_ref): Likewise. (disk_cache_block_ref_ptr): Likewise. (disk_cache_block_deref): Likewise. (disk_cache_block_is_ref): Likewise. (create_disk_pager): Update initialization of the disk pager. * ext2fs/pokel.c (pokel_add): Drop block references with disk_cache_block_deref. (_pokel_exec): Likewise. * ext2fs/truncate.c (trunc_indirect): Use the new disk_cache_block_ref and disk_cache_block_deref functions to access blocks from the disk cache.
2013-09-16Handle notification on page evictionRichard Braun
If requested by the user, make libpager call pager_notify_evict when a page is flushed out by the kernel. Based on work by Ognyan Kulev. * console/pager.c (pager_notify_evict): New function. (user_pager_create): Update call to pager_create. * ext2fs/pager.c: (pager_notify_evict): New function. (create_disk_pager): Update call to diskfs_start_disk_pager. (diskfs_get_filemap): Update call to pager_create. * fatfs/pager.c: (pager_notify_evict): New function. (create_fat_pager): Update call to diskfs_start_disk_pager. (diskfs_get_filemap): Update call to pager_create. * isofs/pager.c: (pager_notify_evict): New function. (create_disk_pager): Update call to diskfs_start_disk_pager. (diskfs_get_filemap): Update call to pager_create. * libdiskfs/disk-pager.c (diskfs_start_disk_pager): Update definition and call to pager_create. * libdiskfs/diskfs-pager.h (diskfs_start_disk_pager): Update declaration. * libpager/data-request.c (_pager_seqnos_memory_object_data_request): Take pager's `notify_on_evict' member into account when calling memory_object_data_supply. * libpager/data-return.c (_pager_do_write_request): Handle user notification on page flush. * libpager/pager-create.c (pager_create): Update definition and set pager's `notify_on_evict' member. * libpager/pager.h (pager_create): Update declaration. (pager_notify_evict): New declaration. * libpager/priv.h (struct pager): New `notify_on_evict' member. * storeio/pager.c: (pager_notify_evict): New function. (dev_get_memory_object): Update call to pager_create. * tmpfs/pager-stubs.c (pager_notify_evict): New function. * ufs/pager.c (pager_notify_evict): New function. (create_disk_pager): Update call to diskfs_start_disk_pager. (diskfs_get_filemap): Update call to pager_create.
2013-09-15exec: remove support for transparently ungziping executablesJustus Winter
Remove support for transparently ungziping executables from the exec server. The code in question makes the exec server unnecessarily complex and since the exec server is an essential process, crashing it makes /hurd/init crash the whole system. Since the gzip code is not thread-safe, all access to it is serialized, so there is a trivial way for one user to delay another users gzipped executables for some unspecified time. This can be accomplished by padding any program with easily compressed data, zipping it and executing it. Using such a program as an passive translator and then triggering its execution by the filesystem translator also stalls any requests to that filesystem (observed using the libdiskfs-based ext2fs). Since compressed executables cannot be mapped into the memory, they have to be uncompressed into allocated memory first. This is slower and any user with access to the exec server can make it allocate arbitrary amounts of memory. If the Hurd had proper memory accounting, this would probably be a way around it. So the compression support in exec seemingly creates various issues for little value, at least with the abundance of nonvolatile memory available today. * exec/Makefile: Remove gzip related files. * exec/exec.c: Remove anything #ifdef GZIPped. * exec/unzip.c: Move to libstore. * exec/crypt.h: Likewise. * exec/gzip.h: Likewise. * exec/inflate.c: Likewise. * exec/tailor.h: Likewise. * exec/util.c: Likewise. * libstore/Makefile: Remove the vpath magic for looking up the zip stuff.
2013-09-15exec: remove support for transparently unbzip2ing executablesJustus Winter
Remove support for transparently unbzip2ing executables from the exec server. The code in question makes the exec server unnecessarily complex and since the exec server is an essential process, crashing it makes /hurd/init crash the whole system. Since the bzip2 code is not thread-safe, all access to it is serialized, so there is a trivial way for one user to delay another users bzip2ed executables for some unspecified time. This can be accomplished by padding any program with easily compressed data, zipping it and executing it. Using such a program as an passive translator and then triggering its execution by the filesystem translator also stalls any requests to that filesystem (observed using the libdiskfs-based ext2fs). Since compressed executables cannot be mapped into the memory, they have to be uncompressed into allocated memory first. This is slower and any user with access to the exec server can make it allocate arbitrary amounts of memory. If the Hurd had proper memory accounting, this would probably be a way around it. So the compression support in exec seemingly creates various issues for little value, at least with the abundance of nonvolatile memory available today. * exec/Makefile: Remove bzip2 related files. * exec/exec.c: Remove anything #ifdef BZIP2ed. * exec/do-bunzip2.c: Move to libstore.
2013-09-15trans: add mtab translatorJustus Winter
The mtab translator provides an mtab file that is dynamically created on demand. It is populated with information about active translators bound below the given path that is accumulated by traversing the translator tree. It can also be invoked as normal program that prints the requested information to stdout. * trans/mtab.c: New file. * trans/Makefile: Build mtab.
2013-09-15hurd: add fsys_get_sourceJustus Winter
Return information about the source of the receiving filesystem. If the concept of a source is applicable, SOURCE should refer to the source of the receiving translator and should be a description considered appropriate in the context of the translator. For example for the case of block device based filesystems, SOURCE should be the file name of the underlying block device. * hurd/fsys.defs: Add fsys_get_source. * hurd/fsys_reply.defs: Add fsys_get_source.
2013-09-15trans/symlink.c: add fsys_get_sourceJustus Winter
Create a server function returning EOPNOTSUPP. * trans/symlink.c (S_fsys_get_source): New function.
2013-09-15libtrivfs: add fsys_get_sourceJustus Winter
* 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.
2013-09-15libnetfs: add fsys_get_sourceJustus Winter
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.
2013-09-15libdiskfs: add fsys_get_sourceJustus Winter
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.
2013-09-15hurd: add fsys_get_childrenJustus Winter
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.
2013-09-15trans/symlink.c: add fsys_get_childrenJustus Winter
Create a server function returning EOPNOTSUPP. * trans/symlink.c (S_fsys_get_children): New function.