| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
* proc/wait.c (S_proc_mark_cont): Set p_status to __W_CONTINUED.
|
|
|
|
|
| |
* proc/wait.c (S_proc_waitid): When options contains WNOWAIT, do not set
p_waited or complete child death.
|
|
|
|
| |
* hurd/version.h (HURD_INTERFACE_VERSION): Bump to 20201227.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
proc_wait assumes that the caller always wants WEXITED, but waitid()
does not. The new proc_waitid RPC requires the caller to specify at
least one of WEXITED, WSTOPPED, or WCONTINUED.
* hurd/process.defs (proc_waitid): New RPC.
* hurd/process_reply.defs (proc_waitid): New RPC.
* hurd/process_request.defs (proc_waitid): New RPC.
* proc/proc.h (struct proc): Add p_continued field.
* proc/wait.c (WCONTINUED, WEXITED): Define if not already defined.
(S_proc_wait): Rename implementation to S_proc_waitid, and modify to
stop assuming WEXITED. Add support for WCONTINUED.
(S_proc_wait): Reimplement by just calling S_proc_waitid with an
additional WEXITED.
(proc_mark_stop): Clear p_continued.
(proc_mark_cont): Set p_continued, clear p_waited, wake any waiting
parent.
|
|
|
|
|
| |
* proc/wait.c (S_proc_mark_cont): When parent has not set nostopcld,
send a SIGCHLD with CLD_CONTINUED.
|
|
|
|
|
|
|
|
| |
* proc/stubs.c (send_signal): Add a sigcode argument.
* proc/proc.h (send_signal): Declare the sigcode argument.
* proc/pgrp.c (leave_pgrp): Specify a null sigcode.
* proc/wait.c (alert_parent): Use CLD_EXITED for SIGCHLD on exit.
(S_proc_mark_stop): Use CLD_STOPPED for SIGCHLD on stop.
|
| |
|
|
|
|
|
|
|
|
| |
This will allow to relieve constraints in callers, e.g. dir_lookup("") would
otherwise produce a warning with gcc-11 since char[1024] would mean that
dir_lookup would read all 1024 characters while it is not.
* hurd/hurd_types.h (const_string_t): New type.
|
|
|
|
| |
* sutils/MAKEDEV.sh (cd*): Set MASTER to @/dev/disk:.
|
|
|
|
|
|
|
|
|
| |
When deadling with multiple levels of symlinks, we really need double
buffering between the current path and the symlink target, and thus cannot
reuse pathbuf.
* libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Always use alloca for
pathbuf.
|
|
|
|
|
|
|
|
|
|
| |
This is used by parted to reload the partition table. Since we do not
actually implement partition tables, we can just ignore it.
* rumpdisk/block-rump.c (BLKRRPART): New macro.
(rumpdisk_device_set_status): New function.
(rump_block_emulation_ops): Set device_set_status field to
rumpdisk_device_set_status.
|
|
|
|
|
| |
* storeio/dev.c (dev_buf_fill): When store returns less bytes than the
block size, assume an EIO.
|
|
|
|
|
|
|
|
|
|
|
| |
* libps/Makefile (SRCS): Add ../utils/msgids.c.
(../utils/msgids-CPPFLAGS): Add DATADIR macro.
* libps/spec.c: Include "../utils/msgids.h".
(get_rpc_name): Implement with msgid_info.
* utils/msgids.c (parse_opt): Move end code to ...
(msgids_scan_std): ... new function.
* utils/msgids.h (msgids_scan_std): New prototype.
* utils/ps.c (main): Call msgids_scan_std.
|
|
|
|
|
| |
* libshouldbeinlibc/assert-backtrace.c (__assert_fail_base_backtrace):
If returned backtrace is smaller than skip we cannot print anything.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* acpi/acpifs.c (create_dir_entry): Fix terminating entry->name string.
diff --git a/eth-multiplexer/vdev.c b/eth-multiplexer/vdev.c
index 367623d9..c76cfbfd 100644
--- a/eth-multiplexer/vdev.c
+++ b/eth-multiplexer/vdev.c
@@ -139,7 +139,8 @@ add_vdev (char *name, size_t size)
vdev->dev_port = ports_get_right (vdev);
ports_port_deref (vdev);
- strncpy (vdev->name, name, IFNAMSIZ);
+ strncpy (vdev->name, name, IFNAMSIZ-1);
+ vdev->name[IFNAMSIZ-1] = '\0';
vdev->if_header_size = ETH_HLEN;
vdev->if_mtu = ETH_MTU;
vdev->if_header_format = HDR_ETHERNET;
|
|
|
|
| |
* eth-multiplexer/vdev.c (add_vdev): Fix terminating vdev->name string.
|
|
|
|
|
| |
* libfshelp-tests/test-fcntl.c (parse_args): Do not call error() with a
NULL pointer.
|
|
|
|
|
| |
* libfshelp-tests/test-lockf.c (parse_args): Do not call error() with a
NULL pointer.
|
|
|
|
| |
* libfshelp-tests/test-lockf.c (main): Fix format for off_t.
|
|
|
|
|
| |
* libfshelp-tests/test-flock.c (parse_args): Do not call error() with a
NULL pointer.
|
|
|
|
| |
* libfshelp-tests/race.c: Include <stdlib.h>
|
|
|
|
|
| |
* sutils/clookup.c (file_name_lookup_carefully): Make head a non-const
char *.
|
|
|
|
| |
* trans/crash.c (template_make_file_name): Fix format for time_t.
|
|
|
|
| |
* mach-defpager/default_pager.h (panic): Add noreturn function attribute.
|
|
|
|
| |
* pflocal/sock.c: Include <unistd.h>.
|
|
|
|
|
| |
* proc/stubs.c (send_signal): Add missing warning in union inside
mach_msg_header_t.
|
|
|
|
| |
* libtrivfs/make-node.c (init_node): Remove unused empty function.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The commit [1] updated rlock.h and fshelp.h to use
FSHELP_DEFINE_EXTERN_INLINE but it's never defined
because FSHELP_EXTERN_INLINE is used in
libfshelp/extern-inline.c.
Update this file to use define FSHELP_DEFINE_EXTERN_INLINE.
[1] ca3d36201329f0e21b995d831ce9f6f03b6b985e
* libfshelp/extern-inline.c: define FSHELP_DEFINE_EXTERN_INLINE.
* libfshelp/fshelp.h: define FSHELP_EXTERN_INLINE __extern_inline
if FSHELP_DEFINE_EXTERN_INLINE is not defined.
* libfshelp/rlock.h: Likewise
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Samuel Thibault <samuel.thibault@gnu.org>
Message-Id: <20201120230347.2432672-1-romain.naour@gmail.com>
|
|
|
|
|
|
|
|
| |
* console-client/trans.c (netfs_get_dirents): Fix counting the start
node. Return 0 when there are no entries left, instead of trying to mmap
zero bytes.
(console_create_consnode): Set inode number, other entries get ignored
by glibc's readdir().
|
|
|
|
|
|
|
| |
to keep coherent with other storeio translators, grub scripts, etc.
* rumpdisk/block-rump.c (translate_name): Prepend /dev/ to disk name.
(is_disk_device): Do not match heading /dev/.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By default we do not want rumpdisk to step over the kernel drivers.
* rumpdisk/block-rump.c: Include <device/device.h>.
(disabled): New variable.
(dev_to_port): Rename to rumpdisk_dev_to_port.
(device_init): Rename to rumpdisk_init. Exit if the kernel runs SATA
drivers.
(device_close): Rename to rumpdisk_device_close.
(device_dealloc): Rename to rumpdisk_device_dealloc.
(device_shutdown): Rename to rumpdisk_device_shutdown. Do not shutdown
when disabled.
(device_open): Rename to rumpdisk_device_open. Return D_NO_SUCH_DEVICE
when disabled.
(device_write): Rename to rumpdisk_device_write.
(device_read): Rename to rumpdisk_device_read.
(device_get_status): Rename to rumpdisk_device_get_status.
(rump_block_emulation_ops): Update refs accordingly.
|
|
|
|
|
| |
* libmachdev/trivfs_server.c (trivfs_S_fsys_getpriv): Move the
just-copied send rights instead of copying them again.
|
| |
|
|
|
|
| |
* libmachdev/trivfs_server.c: Include <mach/i386/mach_i386.h>.
|
|
|
|
|
| |
* libmachdev/ds_routines.c (machdev_is_master_device): Remove duplicate
declaration.
|
|
|
|
|
|
|
|
|
| |
trivfs happens to set the payload for our control port, and we are not using
payload translation for mach_i386, so we need to tell mig how to get back to
the port name.
* libmachdev/Makefile (mach_i386-MIGSFLAGS): Set
-DMACH_PAYLOAD_TO_PORT=ports_payload_get_name.
|
|
|
|
|
|
|
| |
* sutils/MAKEDEV.sh (rumpdisk): Set up /dev/rumpdisk and /dev/disk that
points to it.
(netdde): Point /dev/net to /dev/netdde.
(eth*): Use /dev/net instead of /dev/netdde.
|
|
|
|
|
| |
* sutils/MAKEDEV.sh: Add -M option to set the master device node. Add
support for wd* devices through rumpdisk.
|
|
|
|
|
|
| |
dash's expandarg always calls expandmeta which calls glob64, which stats the
parameters. This is dangerous for MAKEDEV since it triggers the translator,
which may be strictly unwanted when filling an installed system.
|
|
|
|
|
|
|
|
|
|
| |
* rumpdisk/block-rump.c (struct block_data): Make taken field an integer
instead of a boolean.
(device_open): When search_bd succeeds, set a new reference and return a
new port right. Separate out io_return_t err, int fd, and int ret to avoid
confusions. Simplify the error handling path.
(device_close): Decrement reference and close rump disk only when
reaching zero. Also destroy our port.
|
|
|
|
|
|
|
|
|
|
|
|
| |
bootstrap translators may not wish to appear in the FS, and the name of
the translator does not have to match the path where it is getting
installed.
* libmachdev/machdev.h (machdev_trivfs_init): Add path parameter.
* libmachdev/trivfs_server.c (machdev_trivfs_init): Add path parameter,
set devnode only if it is not NULL.
(trivfs_S_fsys_init): Only call install_as_translator when devnode is not NULL.
* /rumpdisk/main.c (main): Add path parameter.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*/libmachdev/trivfs_server.c (machdev_ctl): Rename to control_port.
(trivfs_S_fsys_init): Fix accordingly.
(control): New variable.
(bootstrapped, underlying, devnode): New variables.
(install_as_translator): New function.
(trivfs_S_fsys_init): When bootstrapping, call install_as_translator.
(machdev_trivfs_init): Create one port of the control class.
(trivfs_S_fsys_getpriv): Use ports_get_send_right on the control port
instead of creating another one.
(resume_bootstrap_server): Use ports_get_send_right on the control port
instead of creating another one.
(machdev_trivfs_init): When bootstrapping, Use our control port as fsys.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* doc/hurd.texi: Index pthread.h instead of cthreads.h
* libports/Makefile (SRCS): Drop stubs.c.
* libports/stubs.c: Remove file.
* mach-defpager/default_pager.c (default_pager): Drop disabled cthreads
calls.
* pfinet/kmem_cache.c: Fix comment.
* proc/stubs.c: Fix comments.
|
|
|
|
|
| |
* pflocal/sock.c (sock_create): Set uid to getpid () and gid to
getgid ().
|
|
|
|
|
|
|
|
|
|
|
| |
* pflocal/sock.h (struct sock): Add uid and gid fields.
* pflocal/sock.c (sock_create): Set uid and gid to 0.
* pflocal/mig-mutate.h (SOCKET_IMPORTS): Import ../libtrivfs/mig-decls.h.
(PF_INTRAN, PF_INTRAN_PAYLOAD, PF_DESTRUCTOR): New macros.
* pflocal/pf.c: Include hurd/trivfs.h.
(S_socket_create): Update parameters. Set sock's uid and gid fields
according to pf->user.
* pflocal/io.c (S_io_stat): Set st_uid and st_gid according to pf.
|
|
|
|
|
| |
* config.make.in (VERSIONING): Remove.
* configure.ac: Do not set VERSIONING.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libthreads is most probably completely broken, and not the long-term
road anyway.
* config.make.in (VERSIONING): Remove.
* configure.ac: Test for pfinet assembly compatibility instead of
libthreads assembly compatibility. Do not set VERSIONING.
* libthreads: Remove directory.
* Makefile (lib-subdirs): Remove libthreads.
* doc/hurd.texi (Threads Library): Rename references to libthreads into
libpthread.
* release/rfloppy.copy: Do not objcopy lib/libthreads.so.
* release/tool-Makefile (rfloppy-solib): Remove libthreads.
|
|
|
|
|
|
| |
TESTED by booting a QEMU passthrough disk via rumpdisk.static
Message-Id: <20201109070906.20796-1-damien@zamaudio.com>
|
|
|
|
|
|
|
|
|
| |
Like Linux does, to avoid writing inodes when just reading files already in
the cache.
* libdiskfs/init-init.c (_diskfs_relatime): Set to 1.
* libdiskfs/opts-std-runtime.c (set_opts): Always _diskfs_relatime from
h->relatime.
|