Commit Graph

201 Commits

Author SHA1 Message Date
Roland McGrath
2d0876e86b 1999-11-18 Roland McGrath <roland@baalperazim.frob.com>
* hurd/report-wait.c (_S_msg_report_wait): Fix typo:
	&_hurd_itimer_thread not &_hurd_msgport_thread.
1999-11-18 06:17:19 +00:00
Roland McGrath
267ff95b79 1999-11-18 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdsig.c (_hurdsig_init): If __hurd_threadvar_stack_mask is
	nonzero, use cthread_fork to create the signal thread.
	* hurd/msgportdemux.c (_hurd_msgport_receive): Initialize
	_hurd_msgport_thread here (to self).
	* sysdeps/mach/hurd/fork.c (__fork): When __hurd_sigthread_stack_end
	is zero, instead compute child signal thread's starting SP from parent
	signal thread's current SP and the threadvar_stack variables.
	* hurd/Versions (GLIBC_2.1.3): Add cthread_fork, cthread_detach.
	These are now referenced weakly by _hurdsig_init.
1999-11-18 06:17:13 +00:00
Roland McGrath
f1699640b1 1999-10-04 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdlookup.c (__hurd_directory_name_split): New function.
	(__directory_name_split): New function.
	* hurd/hurd.h: Declare them.
	* sysdeps/mach/hurd/rmdir.c: Use __directory_name_split instead of
	__file_name_split, so we ignore trailing slashes properly.
	* sysdeps/mach/hurd/rename.c: Likewise.
1999-11-13 23:42:45 +00:00
Roland McGrath
3379cb15a3 1999-11-09 Roland McGrath <roland@baalperazim.frob.com>
* hurd/report-wait.c (describe_port): Return char * and use __stpcpy
	to return the location of the null byte written into the string.
	(describe_number): Likewise.
	(describe_number): Remove assert, not always used with #.
	If FLAVOR is null, don't use it.
	(describe_number): Take signed argument and print a - if negative.
	(_S_msg_report_wait): Report system call number for system calls that
	aren't mach_msg.  Soup up reporting for mach_msg: If destination port
	matches SS->intr_port, bracket port description with [...] to indicate
	a Hurd interruptible RPC; if destination port is null, examine the
	receive port and report that state; if receive port is also null,
	check for timeout and report its value.
	* sysdeps/mach/hurd/i386/intr-msg.h (MSG_EXAMINE): Return int that is
	zero iff we managed to examine the stack; take new args RCV_NAME,
	SEND_NAME, OPTION, and TIMEOUT to fill in with mach_msg args.
	* hurd/report-wait.c (describe_port): Recognize MACH_PORT_NULL and
	MACH_PORT_DEAD specially.
1999-11-13 23:42:36 +00:00
Roland McGrath
7b2f2a7d7d 1999-11-13 Roland McGrath <roland@baalperazim.frob.com>
* hurd/Versions (GLIBC_2.1.3): Define, adding directory_name_split and
	hurd_directory_name_split.
	* Versions.def (libc): Add GLIBC_2.1.3.
1999-11-13 23:41:54 +00:00
Roland McGrath
86785541a7 1999-10-01 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdfchdir.c (_hurd_change_directory_port_from_fd): Rewrite
	without HURD_DPORT_USE to clean up warnings.
	* hurd/dtable.c (get_dtable_port): Likewise.
	* hurd/hurdioctl.c (rectty_dtable): Renamed to install_ctty.
	(install_ctty): Do the changing of the cttyid port cell here, inside
	the critical section while we holding the dtable lock.
	(_hurd_setcttyid, tiocsctty, tiocnotty): Use that instead of changing
	the port cell and calling rectty_dtable.
	(_hurd_locked_install_cttyid): New function, split out of install_ctty.
	(install_ctty): Use it inside a critical section, with the lock held.
	* sysdeps/mach/hurd/setsid.c (__setsid): Use
	_hurd_locked_install_cttyid to effect the cttyid and dtable changes
	after proc_setsid, having held the dtable lock throughout.
	* hurd/dtable.c (ctty_new_pgrp): With the dtable lock held, check the
	cttyid port for null and bail out early if so.  The dtable lock
	serializes us after any cttyid change and its associated dtable update.
1999-10-01 20:02:44 +00:00
Roland McGrath
3e78f0910e 1999-10-01 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdfchdir.c (_hurd_change_directory_port_from_fd): Rewrite
	without HURD_DPORT_USE to clean up warnings.
	* hurd/dtable.c (get_dtable_port): Likewise.
1999-10-01 20:02:34 +00:00
Roland McGrath
7eed8c34e9 1999-10-01 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdioctl.c (rectty_dtable): Renamed to install_ctty.
	(install_ctty): Do the changing of the cttyid port cell here, inside
	the critical section while we holding the dtable lock.
	(_hurd_setcttyid, tiocsctty, tiocnotty): Use that instead of changing
	the port cell and calling rectty_dtable.
	(_hurd_locked_install_cttyid): New function, split out of install_ctty.
	(install_ctty): Use it inside a critical section, with the lock held.
	* sysdeps/mach/hurd/setsid.c (__setsid): Use
	_hurd_locked_install_cttyid to effect the cttyid and dtable changes
	after proc_setsid, having held the dtable lock throughout.
	* hurd/dtable.c (ctty_new_pgrp): With the dtable lock held, check the
	cttyid port for null and bail out early if so.  The dtable lock
	serializes us after any cttyid change and its associated dtable update.
1999-10-01 20:02:29 +00:00
Roland McGrath
92ca8f5f56 1999-09-17 Roland McGrath <roland@baalperazim.frob.com>
* hurd/port2fd.c (_hurd_port2fd): Never change CTTYID port.
1999-09-17 08:40:17 +00:00
Roland McGrath
0135043713 add missing #include <unistd.h> 1999-09-05 08:50:43 +00:00
Roland McGrath
98347408ff 1999-09-05 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdprio.c (_hurd_priority_which_map): If WHO is zero default
	it to getpid () for PRIO_PROCESS, geteuid () for PRIO_USER.
1999-09-05 08:42:46 +00:00
Roland McGrath
fe68c72be5 1999-08-23 Mark Kettenis <kettenis@gnu.org>
* hurd/hurdsig.c (_hurd_internal_post_signal): Add missing else.
1999-08-23 21:03:22 +00:00
Roland McGrath
a0308b1212 1999-08-22 Mark Kettenis <kettenis@gnu.org>
* hurd/new-fd.c (_hurd_new_fd): Initialize fcntl flags.
	* hurd/port2fd.c (_hurd_port2fd): Reset the fcntl flags when
	installing PORT in the descriptor cell.
1999-08-22 22:18:46 +00:00
Roland McGrath
8595b3b943 1999-08-19 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/i386/intr-msg.h (INTR_MSG_TRAP): Mark OPTION and
	TIMEOUT as outputs of the asm to indicate that the signal thread
	might mutate them.
	* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Short circuit to plain
	mach_msg if only sending or only receiving (i.e., not an RPC).  When
	making an RPC that might get interrupted, save OPTION and the portion
	of the message buffer that gets clobbered by an EINTR reply message,
	and properly restore them before attempting to retry the request
	message send.
1999-08-20 03:45:14 +00:00
Roland McGrath
cb6f921e11 1999-07-31 Roland McGrath <roland@baalperazim.frob.com>
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Fix msgt_size member
	initializer in CHECK: a bit size, not the type code repeated!
1999-08-01 02:43:44 +00:00
Roland McGrath
72afff15ed 1999-07-26 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdprio.c (_hurd_priority_which_map): Initialize PIDS.
	Fix from Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>.
1999-07-26 23:27:02 +00:00
Roland McGrath
b47cac74e3 1999-07-19 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdsig.c (_hurd_internal_post_signal): If a
	hurd_signal_preemptor matches but its `preemptor' field is null, use
	its `handler' field directly.  This is to comply with behavior
	documented in <hurd/sigpreempt.h>.
1999-07-20 21:07:55 +00:00
Roland McGrath
ba39129c14 1999-06-25 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurd.h, hurd/hurd/fd.h, hurd/hurd/port.h, hurd/hurd/signal.h,
	hurd/hurd/threadvar.h, hurd/hurd/userlink.h: Instead of
	_EXTERN_INLINE, use a macro specific to each file,
	_HURD_FD_H_EXTERN_INLINE and the like.
	* hurd/Makefile (inline-headers): New variable.
	(routines): Remove hurdinline.  Add $(inlines).
	(inlines): New variable.
	($(inlines:%=$(objpfx)%.c)): New static pattern rule to generate them.
	(generated): Append those here.
	* hurd/hurdinline.c: File removed.
1999-07-11 17:02:11 +00:00
Roland McGrath
5f827f92a5 1999-06-25 Roland McGrath <roland@baalperazim.frob.com>
* hurd.h, hurd/hurd/fd.h, hurd/hurd/port.h, hurd/hurd/signal.h,
	hurd/hurd/threadvar.h, hurd/hurd/userlink.h: Instead of
	_EXTERN_INLINE, use a macro specific to each file,
	_HURD_FD_H_EXTERN_INLINE and the like.
	* hurd/Makefile (inline-headers): New variable.
	(routines): Remove hurdinline.  Add $(inlines).
	(inlines): New variable.
	($(inlines:%=$(objpfx)%.c)): New static pattern rule to generate them.
	(generated): Append those here.
	* hurd/hurdinline.c: File removed.
1999-06-25 14:48:20 +00:00
Roland McGrath
622ccdb562 1999-06-25 Roland McGrath <roland@baalperazim.frob.com>
* hurd.h, hurd/fd.h, hurd/port.h, hurd/signal.h, hurd/threadvar.h,
	hurd/userlink.h: Instead of _EXTERN_INLINE, use a macro specific to
	each file, _HURD_FD_H_EXTERN_INLINE and the like.
	* hurd/Makefile (inline-headers): New variable.
	(routines): Remove hurdinline.  Add $(inlines).
	(inlines): New variable.
	($(inlines:%=$(objpfx)%.c)): New static pattern rule to generate them.
	(generated): Append those here.
	* hurd/hurdinline.c: File removed.
1999-06-25 14:46:27 +00:00
Roland McGrath
91fae3b292 1999-06-13 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdsock.c (_hurd_socket_server): Fix fencepost error in last
	change.
1999-06-13 13:56:47 +00:00
Roland McGrath
6b113ae7dd 1999-06-11 Mark Kettenis <kettenis@gnu.org>
* hurd/hurdsock.c (max_domain): Initialize to `-1'.
	(_hurd_socket_server): Fix off-by-one error in setting `max_domain'.
1999-06-11 16:42:51 +00:00
Roland McGrath
043032f443 1999-05-23 Roland McGrath <roland@baalperazim.frob.com>
* hurd/set-host.c (_hurd_set_host_config): Use mode 0644, not 0600. 
Do proper error return.
1999-05-23 19:18:19 +00:00
Roland McGrath
dcc7b756c2 1999-05-09 Mark Kettenis <kettenis@gnu.org>
* hurd/get-host.c (_hurd_get_host_config): Return an empty value 
if the file is empty.
1999-05-09 10:40:36 +00:00
Roland McGrath
deb8346419 1999-04-30 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdinit.c (_hurd_new_proc_init): Don't do initial SIGTRAP if 
EXEC_SIGTRAP was set in the incoming exec flags--that indicates the 
exec server simulated a SIGTRAP before we even started up, so gdb is 
already happy.
1999-04-30 13:52:59 +00:00
Roland McGrath
b6bebf51da 1999-04-27 Roland McGrath <roland@baalperazim.frob.com>
* hurd/get-host.c: Include <hurd/lookup.h>.
1999-04-28 11:09:53 +00:00
Roland McGrath
20d138126f 1999-04-27 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdexec.c (_hurd_exec): If SIGKILL present in _hurdsig_traced 
set, pass EXEC_SIGTRAP flag in exec RPC.
1999-04-27 01:26:54 +00:00
Roland McGrath
1d721dae86 1999-04-26 Roland McGrath <roland@baalperazim.frob.com>
* hurd/get-host.c (_hurd_get_host_config): If ENOENT opening file, 
return success with empty value.
1999-04-26 13:37:43 +00:00
Roland McGrath
18579100fa 1999-04-05 Roland McGrath <roland@baalperazim.frob.com>
* hurd/STATUS: File removed.  Moved items that are still relevant into
	TODO list in hurd source.

1999-03-26  Mark Kettenis  <kettenis@gnu.org>

	* sysdeps/mach/hurd/bits/time.h: New file.
	* sysdeps/mach/hurd/getrusage.c: New file.
	* sysdeps/mach/hurd/clk_tck.c: New file.
	* sysdeps/mach/hurd/Versions (libc) [GLIBC_2.1.1]: Add __libc_clk_tck.
	* sysdeps/mach/hurd/Makefile [$(subdir) = posix]
	(sysdep_routines): Add clk_tck.
	* sysdeps/mach/hurd/times.c: Removed, since getrusage is now
	implemented.
1999-04-05 20:43:11 +00:00
Roland McGrath
8ea6a7aa50 1999-03-14 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdlookup.c (__hurd_file_name_lookup_retry): Under O_NOFOLLOW, 
check for root-owned symlinks and reject them too.
1999-03-14 12:59:57 +00:00
Roland McGrath
1d88de3d42 1999-03-09 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdexec.c (_hurd_exec): Add missing `else' in last change.
1999-03-09 09:21:54 +00:00
Roland McGrath
1d67062e53 1999-03-09 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/ioctl.c (__ioctl): Move the marshalling of the
	arguments into the request message buffer inside `send_rpc'
	subfunction.  We must repeat the marshalling when retrying the RPC
	after a SIGTTOU delivery.

	* hurd/ctty-input.c (_hurd_ctty_input): Use early short-circuit code
	path when there is no ctty port.
	* hurd/ctty-output.c (_hurd_ctty_output): Likewise.
	Move sigstate check inside loop so we recheck after handling a signal.
1999-03-08 21:02:22 +00:00
Roland McGrath
8c4b8cbc65 1999-03-08 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdexec.c (_hurd_exec): Handle ARGV or ENVP parameters being 
null, in which case send an empty string.
1999-03-08 12:41:21 +00:00
Roland McGrath
01f0b26d59 1999-03-04 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdlookup.c (__hurd_file_name_lookup): Comment fix.
1999-03-04 10:15:17 +00:00
Roland McGrath
791cfdb726 1999-03-03 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/bits/fcntl.h 
[__USE_GNU] (O_NOFOLLOW, O_DIRECTORY): New macros. 
* hurd/hurdlookup.c (__hurd_file_name_lookup): If O_NOFOLLOW is set, 
set O_NOTRANS as well. 
(__hurd_file_name_lookup_retry): At successful end of lookup, 
if O_NOFOLLOW set, io_stat the resultant port and fail with ENOENT if 
it is a translated node not owned by root. 
(__hurd_file_name_lookup): If O_DIRECTORY is set, put a trailing slash 
on the file name passed to LOOKUP.
1999-03-03 00:31:05 +00:00
Roland McGrath
813de3b38e 1999-02-28 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurd-raise.c (_hurd_raise_signal): Send "poll request"
	msg_sig_post RPC (with SIGNO=0), rather than generating signal (again)
	with the RPC.
1999-02-28 09:46:20 +00:00
Roland McGrath
e8f51d56d4 1999-02-27 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/getsysstats.c (__get_nprocs_conf, __get_nprocs,
	__get_phys_pages): Cast &HBI to silence warning.

	* hurd/Makefile (routines): Add hurdchdir and hurdfchdir.
	* hurd/hurdchdir.c: New file.
	* hurd/hurdfchdir.c: New file.
	* sysdeps/mach/hurd/chroot.c: Call
	_hurd_change_directory_port_from_name to do the work.
	* sysdeps/mach/hurd/chdir.c: Likewise.
	* sysdeps/mach/hurd/fchdir.c: Call
	_hurd_change_directory_port_from_fd to do the work.
	* hurd/fchroot.c: Likewise.
	* hurd/hurd.h: Declare them.
1999-02-27 20:06:34 +00:00
Roland McGrath
c3aba1be90 1999-02-27 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdselect.c (_hurd_select): When bailing for bogus fd, don't 
try to _hurd_port_free a lower-numbered descriptor that was not in any 
fd_set.
1999-02-27 13:27:03 +00:00
Roland McGrath
0d3eb016d6 1998-12-05 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/pselect.c: New file.

	* sysdeps/mach/hurd/poll.c: New file.

	* hurd/Makefile (routines): Add hurdselect.
	* hurd/hurdselect.c: New file.
	(_hurd_select): New function, guts taken from ...
	* sysdeps/mach/hurd/select.c (__select): ... here.
	Now work by just calling _hurd_select.
	* hurd/hurd/fd.h: Declare _hurd_select.

1998-12-05  Roland McGrath  <roland@baalperazim.frob.com>

	* time/strptime.c: Fix unterminated comment in last change.

	* argp/argp.h: Add __restrict.
1998-12-06 00:44:12 +00:00
Roland McGrath
aab217f3ee 1998-12-04 Mark Kettenis <kettenis@phys.uva.nl>
Provide backwards binary compatibility for the Hurd.
	* hurd/geteuids.c [PIC && DO_VERSIONING]: Make __getuids a weak
	alias for geteuids.
	* hurd/Versions [GLIBC_2.0]: Add __getuids,
	__hurd_file_name_lookup and _hurd_umask.
	[GLIBC_2.1]: Add _hurd_proc_init.
	* hurd/Makefile [versioning] (routines): Add compat-20.
	(shared-only-routines): Likewise.
	* hurd/hurdinit.c (_hurd_new_proc_init): Renamed from
	_hurd_proc_init.  Use it as the default _hurd_proc_init version
	for GLIBC_2.1.
	* hurd/compat-20.c: New file.
	* mach/Versions [GLIBC_2.0]: Add __vm_allocate.
1998-12-04 13:47:40 +00:00
Roland McGrath
9efbaa50e8 1998-12-03 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/Versions [GLIBC_2.1]: Add _hurd_proc_init. 
* hurd/Versions: Move geteuids and seteuids from GLIBC_2.0 to 
GLIBC_2.1.
1998-12-03 23:55:13 +00:00
Roland McGrath
42ee0538b8 1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
	__spin_lock_init,  __mutex_lock, __mutex_trylock,
	__mutex_unlock.
	Remove get_priviliged_ports.  Moved to hurd/Versions.

	* hurd/Versions [libc, GLIBC_2.0]: Add _end.  This makes the Hurd
	brk implementation see the end of the data segment of the program
	instead of the shared library.
	Add __hurd_errno_location.  This inline function is used in user
	programs.
	Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
	_hurd_fd_get, _hurd_port_free, _hurd_port_get,
	_hurd_port_locked_get.  These inline functions are used by macros
	used in mail.local in the Hurd distribution.
	Add get_privileged_ports.  Moved here from mach/Versions.
	Remove __hurd_file_name_lookup,	__hurd_file_name_lookup_retry,
	__hurd_file_name_split, __hurd_file_name_path_lookup.  These are
	not used outside libc.

1998-11-30  Mark Kettenis  <kettenis@phys.uva.nl>

	* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
	of "".
1998-11-30 18:45:57 +00:00
Roland McGrath
6747b8fcbf 1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Really include set-hooks.h with <> instead 
of "".
1998-11-30 18:42:25 +00:00
Roland McGrath
f69139ec74 1998-09-12 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/hurdstartup.c: Do not include hurdmalloc.h; _hurd_startup
	does not use any of malloc/realloc/free anymore.  Include
	set-hooks.h with <> instead of "".
1998-11-29 16:07:30 +00:00
Roland McGrath
2d6d072823 1998-11-28 Roland McGrath <roland@baalperazim.frob.com>
* hurd/setuids.c: Renamed to ... 
* hurd/seteuids.c: this. 
(setuids): Renamed to seteuids. 
* hurd/getuids.c: Renamed to ... 
* hurd/geteuids.c: this. 
(__getuids): Renamed to geteuids, no aliases. 
* hurd/hurd.h (geteuids, seteuids): Declare them. 
* hurd/Versions: Replace getuids; __getuids with geteuids; seteuids. 
* hurd/Makefile (routines): Updated.
1998-11-29 10:10:47 +00:00
Roland McGrath
159d483605 * hurd/hurdsig.c (_hurdsig_init): Add assertion that no pending,
unblocked signals are set in the startup masks.
1998-11-11 11:28:20 +00:00
Roland McGrath
62495816a5 1998-11-11 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdsig.c (_hurdsig_init): Take new args, INTARRAY and 
INTARRAYSIZE.  Initialize main thread's sigstate from INIT_SIG* ints. 
* hurd/hurd/signal.h: Update _hurdsig_init decl. 
* hurd/hurdinit.c (_hurd_proc_init): Take new args, INTARRAY and 
INTARRAYSIZE, pass them down to _hurdsig_init. 
* hurd/hurd.h: Update _hurd_proc_init decl.
1998-11-11 09:56:51 +00:00
Roland McGrath
cc2c908005 1998-10-26 Roland McGrath <roland@baalperazim.frob.com>
* hurd/Versions: Add _hurd_dtable, _hurd_dtablesize, 
_hurd_dtable_lock, _hurd_intern_fd.
1998-10-26 00:03:17 +00:00
Roland McGrath
3c06881689 1998-10-24 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/dl-sysdep.c (__getcwd): New weak function.

	* mach/Versions, hurd/Versions: Add numerous symbols.
	Remove libmachuser and libhurduser sections, punt
	versioning for those libraries for now.

	* misc/Versions: Add reboot here; it exists on all platforms.
	* sysdeps/unix/sysv/linux/Versions: Remove reboot here.
1998-10-24 01:36:01 +00:00
Roland McGrath
7d25696a35 1998-10-19 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurd/threadvar.h (enum __hurd_threadvar_index): Add
	_HURD_THREADVAR_DL_ERROR.

	* hurd/Makefile (user-interfaces): Add login, password.

	* sysdeps/mach/hurd/Makefile (+cflags): Append -Wno-parentheses.
1998-10-19 00:45:33 +00:00