Commit Graph

205 Commits

Author SHA1 Message Date
Roland McGrath
86c75cc3de 2000-02-02 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/readlink.c (__readlink): Don't clobber original
	LEN value with io_read result; save it and compare them just in case
	the server bogusly returns more than we asked for.
	* sysdeps/mach/hurd/recv.c (recv): Likewise for socket_recv.
	* sysdeps/mach/hurd/recvfrom.c (recvfrom): Likewise.
	* hurd/fd-read.c (_hurd_fd_read): Likewise for io_read.
	Initialize NREAD before the RPC.  I think this must only have failed
	to bomb before because all the servers always return ool data(?).
2000-02-03 01:21:52 +00:00
Roland McGrath
77f85f58a6 2000-02-02 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdlookup.c (CHECK_ELOOP): New macro does SYMLOOP_MAX check;
	deallocate *RESULT before returning ELOOP.
	Don't conditionalize on SYMLOOP_MAX, we always better have one.
	Move the check after case of empty retryname, which should not do it.
	Use CHECK_ELOOP for absolute symlinks and other FS_RETRY_MAGICAL cases.
2000-02-02 21:36:46 +00:00
Roland McGrath
8312fb7e4f 2000-01-28 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdselect.c (_hurd_select): Don't allocate D as a
	variable-sized automatic.  Instead, use alloca after capping
	number of elements (NFDS) to a reasonable upper bound.
2000-01-28 23:23:52 +00:00
Roland McGrath
0e0adb69e7 2000-01-27 Roland McGrath <roland@baalperazim.frob.com>
* hurd/set-host.c (_hurd_set_host_config): Pass O_WRITE in flags to
	dir_mkfile, so we will be permitted to do the io_write!
2000-01-27 19:58:38 +00:00
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