From 8f0c527e13b836a44fedbf6abc84e1901e2cc10d Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 4 May 1996 09:46:57 +0000 Subject: Sat May 4 05:44:25 1996 Roland McGrath * hurd/hurd-raise.c (_hurd_raise_signal): Pass sigcode in msg_sig_post rpc. * hurd/hurdmsg.c (_S_msg_set_environment): Use argz.h functions instead of _hurd_split_args. (_S_msg_*_exec_flags): Functions removed. (_S_msg_startup_dosync): Stub removed. Sat May 4 02:11:55 1996 Roland McGrath * sysdeps/mach/hurd/ptrace.c: Set _hurdsig_traced instead of EXEC_TRACED bit in _hurd_exec_flags. Pass sigcode arg in msg_sig_post_untraced rpc. * sysdeps/mach/hurd/access.c: Don't pass io port in auth_user_authenticate rpc. * posix/sched.h: Fix typos. * sysdeps/mach/hurd/fork.c: Use new critical section lock. Clear _hurdsig_traced instead of EXEC_TRACED. * sysdeps/stub/nanosleep.c (nanosleep): Fix typo. * wcsmbs/wcstol.c: Find strtol.c in ../stdlib. * wcsmbs/wcstof.c: Find strtod.c in ../stdlib. * wcsmbs/wcstod.c: Likewise. * wcsmbs/wcstold.c: Likewise. * wcsmbs/wcwidth.h: Find cname-lookup.h in ../wctype. * string/envz.c (envz_entry): Use const. (envz_get, envz_remove): Likewise. (envz_entry): Return char *, not const char *. * string/envz.h: Fix decl. * string/argz-create.c: Use const in prototype. * string/argz-next.c: Likewise. * sysdeps/mach/hurd/sigprocmask.c: Pass sigcode arg to msg_sig_post. * sysdeps/mach/hurd/i386/sigreturn.c: Likewise. * sysdeps/mach/hurd/sigsuspend.c: Likewise. * sysdeps/mach/hurd/kill.c: Likewise. * hurd/hurdexec.c (_hurd_exec): Use new critical section lock. * hurd/catch-exc.c (_S_catch_exception_raise): Likewise. * hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Likewise. * hurd/thread-cancel.c (hurd_thread_cancel, hurd_check_cancel): Likewise. * sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Likewise. * sysdeps/mach/hurd/sigaction.c: Likewise. * sysdeps/mach/hurd/errnos.awk: Don't use ARGV in comment; it can change meaninglessly. * hurd/hurd/signal.h (struct hurd_sigstate): Replace critical section flag with a spin lock. (_hurd_critical_section_lock): Use spin_try_lock on that to see if we get it. No need to take SS->lock at all. (_hurd_critical_section_unlock): Unlock SS->critical_section_lock instead of clearing the old flag member. * hurd/hurdsig.c (_hurd_internal_post_signal): Use spin_lock_locked to test the critical section state. * hurd/hurdinit.c (_hurd_init): Set _hurdsig_traced from the intarray. * hurd/hurdkill.c (_hurd_sig_post): Pass 0 sigcode in msg_sig_post. * hurd/hurdsig.c (_hurd_internal_post_signal): Test _hurdsig_traced instead of testing (_hurd_exec_flags & EXEC_TRACED). (_S_msg_sig_post): Take sigcode arg and pass it through. (_S_msg_sig_post_untraced): Likewise. (reauth_proc): Don't pass proc port in auth_user_authenticate. * hurd/setauth.c (_hurd_setauth): Don't pass object ports in auth_user_authenticate RPCs, just the one-off rendezvous port. * hurd/dtable.c (reauth_dtable): Likewise. * hurd/hurdlookup.c (__hurd_file_name_lookup_retry): Likewise. * hurd/hurdexec.c (_hurd_exec): Pass 0 flags to file_exec. Pass sigcode arg to msg_sig_post. * string/argz.h (argz_create): Use const in prototype. * hurd/hurdinit.c (_hurd_proc_init): Test _hurdsig_traced instead of testing (_hurd_exec_flags & EXEC_TRACED). Pass sigcode arg to msg_sig_post. * hurd/hurd.h: Declare _hurdsig_traced. * string/argz.h (__argz_next): Cast ENTRY before returning it. * hurd/hurd/signal.h (_hurd_critical_section_unlock): Pass sigcode arg to msg_sig_post. * hurd/path-lookup.c: New file. * hurd/Makefile (routines): Add path-lookup. * hurd/hurd/lookup.h: Declare file_name_path_scan, hurd_file_name_path_lookup. * hurd/hurd.h: Declare file_name_path_lookup. * sysdeps/mach/hurd/select.c: The io_select rpc no longer has a TAG_ID argument. Instead, use a separate reply port for each RPC and put them all in a port set to wait for slow replies. --- string/argz-create.c | 5 +++-- string/argz-next.c | 2 +- string/argz.h | 62 ++++++++++++++++++++++++++-------------------------- string/envz.c | 12 +++++----- string/envz.h | 4 ++-- 5 files changed, 43 insertions(+), 42 deletions(-) (limited to 'string') diff --git a/string/argz-create.c b/string/argz-create.c index fab3222..2eea911 100644 --- a/string/argz-create.c +++ b/string/argz-create.c @@ -26,11 +26,12 @@ ARGZ, and the total length in LEN. If a memory allocation error occurs, ENOMEM is returned, otherwise 0. */ error_t -__argz_create (char **argv, char **argz, size_t *len) +__argz_create (char *const argv[], char **argz, size_t *len) { int argc; size_t tlen = 0; - char *p, **ap; + char *const *ap; + char *p; for (argc = 0; argv[argc] != NULL; ++argc) tlen += strlen (argv[argc]); diff --git a/string/argz-next.c b/string/argz-next.c index 6149c7e..416b982 100644 --- a/string/argz-next.c +++ b/string/argz-next.c @@ -28,7 +28,7 @@ __argz_next (char *argz, size_t argz_len, const char *entry) if (entry < argz + argz_len) entry = strchr (entry, '\0') + 1; - return entry >= argz + argz_len ? NULL : entry; + return entry >= argz + argz_len ? NULL : (char *) entry; } else if (argz_len > 0) diff --git a/string/argz.h b/string/argz.h index 733d06c..c2a3139 100644 --- a/string/argz.h +++ b/string/argz.h @@ -32,47 +32,47 @@ __BEGIN_DECLS /* Make a '\0' separated arg vector from a unix argv vector, returning it in ARGZ, and the total length in LEN. If a memory allocation error occurs, ENOMEM is returned, otherwise 0. The result can be destroyed using free. */ -error_t __argz_create __P ((char **__argv, char **__argz, size_t *__len)); -error_t argz_create __P ((char **__argv, char **__argz, size_t *__len)); +error_t __argz_create __P ((char *const argv[], char **argz, size_t *len)); +error_t argz_create __P ((char *const *argv[], char **argz, size_t *len)); /* Make a '\0' separated arg vector from a SEP separated list in STRING, returning it in ARGZ, and the total length in LEN. If a memory allocation error occurs, ENOMEM is returned, otherwise 0. The result can be destroyed using free. */ -error_t __argz_create_sep __P ((__const char *__string, int __sep, - char **__argz, size_t *__len)); -error_t argz_create_sep __P ((__const char *__string, int __sep, - char **__argz, size_t *__len)); +error_t __argz_create_sep __P ((__const char *string, int sep, + char **argz, size_t *len)); +error_t argz_create_sep __P ((__const char *string, int sep, + char **argz, size_t *len)); /* Returns the number of strings in ARGZ. */ -size_t __argz_count __P ((__const char *__argz, size_t __len)); -size_t argz_count __P ((__const char *__argz, size_t __len)); +size_t __argz_count __P ((__const char *argz, size_t len)); +size_t argz_count __P ((__const char *argz, size_t len)); /* Puts pointers to each string in ARGZ into ARGV, which must be large enough to hold them all. */ -void __argz_extract __P ((__const char *__argz, size_t __len, char **__argv)); -void argz_extract __P ((__const char *__argz, size_t __len, char **__argv)); +void __argz_extract __P ((__const char *argz, size_t len, char **argv)); +void argz_extract __P ((__const char *argz, size_t len, char **argv)); /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's except the last into the character SEP. */ -void __argz_stringify __P ((char *__argz, size_t __len, int __sep)); -void argz_stringify __P ((char *__argz, size_t __len, int __sep)); +void __argz_stringify __P ((char *argz, size_t len, int sep)); +void argz_stringify __P ((char *argz, size_t len, int sep)); /* Append BUF, of length BUF_LEN to the argz vector in ARGZ & ARGZ_LEN. */ -error_t __argz_append __P ((char **__argz, size_t *__argz_len, - __const char *__buf, size_t __buf_len)); -error_t argz_append __P ((char **__argz, size_t *__argz_len, - __const char *__buf, size_t __buf_len)); +error_t __argz_append __P ((char **argz, size_t *argz_len, + __const char *buf, size_t buf_len)); +error_t argz_append __P ((char **argz, size_t *argz_len, + __const char *buf, size_t buf_len)); /* Append STR to the argz vector in ARGZ & ARGZ_LEN. */ -error_t __argz_add __P ((char **__argz, size_t *__argz_len, - __const char *__str)); -error_t argz_add __P ((char **__argz, size_t *__argz_len, - __const char *__str)); +error_t __argz_add __P ((char **argz, size_t *argz_len, + __const char *str)); +error_t argz_add __P ((char **argz, size_t *argz_len, + __const char *str)); /* Delete ENTRY from ARGZ & ARGZ_LEN, if it appears there. */ -void __argz_delete __P ((char **__argz, size_t *__argz_len, char *__entry)); -void argz_delete __P ((char **__argz, size_t *__argz_len, char *__entry)); +void __argz_delete __P ((char **argz, size_t *argz_len, char *entry)); +void argz_delete __P ((char **argz, size_t *argz_len, char *entry)); /* Insert ENTRY into ARGZ & ARGZ_LEN before BEFORE, which should be an existing entry in ARGZ; if BEFORE is NULL, ENTRY is appended to the end. @@ -80,10 +80,10 @@ void argz_delete __P ((char **__argz, size_t *__argz_len, char *__entry)); ARGZ, ENTRY) will insert ENTRY at the beginning of ARGZ. If BEFORE is not in ARGZ, EINVAL is returned, else if memory can't be allocated for the new ARGZ, ENOMEM is returned, else 0. */ -error_t __argz_insert __P ((char **__argz, size_t *__argz_len, - char *__before, __const char *__entry)); -error_t argz_insert __P ((char **__argz, size_t *__argz_len, - char *__before, __const char *__entry)); +error_t __argz_insert __P ((char **argz, size_t *argz_len, + char *before, __const char *entry)); +error_t argz_insert __P ((char **argz, size_t *argz_len, + char *before, __const char *entry)); /* Returns the next entry in ARGZ & ARGZ_LEN after ENTRY, or NULL if there are no more. If entry is NULL, then the first entry is returned. This @@ -99,10 +99,10 @@ error_t argz_insert __P ((char **__argz, size_t *__argz_len, for (entry = argz; entry; entry = argz_next (argz, argz_len, entry)) ...; */ -extern char *__argz_next __P ((char *__argz, size_t __argz_len, - __const char *__entry)); -extern char *argz_next __P ((char *__argz, size_t __argz_len, - __const char *__entry)); +extern char *__argz_next __P ((char *argz, size_t __argz_len, + __const char *entry)); +extern char *argz_next __P ((char *argz, size_t __argz_len, + __const char *entry)); #if defined (__OPTIMIZE__) && __GNUC__ >= 2 extern inline char * @@ -113,7 +113,7 @@ __argz_next (char *argz, size_t argz_len, const char *entry) if (entry < argz + argz_len) entry = strchr (entry, '\0') + 1; - return entry >= argz + argz_len ? NULL : entry; + return entry >= argz + argz_len ? NULL : (char *) entry; } else if (argz_len > 0) diff --git a/string/envz.c b/string/envz.c index e751ecc..447b9e0 100644 --- a/string/envz.c +++ b/string/envz.c @@ -29,13 +29,13 @@ /* Returns a pointer to the entry in ENVZ for NAME, or 0 if there is none. If NAME contains the separator character, only the portion before it is used in the comparison. */ -const char * +char * envz_entry (const char *envz, size_t envz_len, const char *name) { while (envz_len) { - char *p = name; - char *entry = envz; /* Start of this entry. */ + const char *p = name; + const char *entry = envz; /* Start of this entry. */ /* See how far NAME and ENTRY match. */ while (envz_len && *p == *envz && *p && *p != SEP) @@ -43,7 +43,7 @@ envz_entry (const char *envz, size_t envz_len, const char *name) if ((*envz == '\0' || *envz == SEP) && (*p == '\0' || *p == SEP)) /* Bingo! */ - return entry; + return (char *) entry; /* No match, skip to the next entry. */ while (envz_len && *envz) @@ -60,7 +60,7 @@ envz_entry (const char *envz, size_t envz_len, const char *name) const char * envz_get (const char *envz, size_t envz_len, const char *name) { - char *entry = envz_entry (envz, envz_len, name); + const char *entry = envz_entry (envz, envz_len, name); if (entry) { while (*entry && *entry != SEP) @@ -75,7 +75,7 @@ envz_get (const char *envz, size_t envz_len, const char *name) /* Remove the entry for NAME from ENVZ & ENVZ_LEN, if any. */ void -envz_remove (char **envz, size_t *envz_len, char *name) +envz_remove (char **envz, size_t *envz_len, const char *name) { char *entry = envz_entry (*envz, *envz_len, name); if (entry) diff --git a/string/envz.h b/string/envz.h index dad2d28..bb907d7 100644 --- a/string/envz.h +++ b/string/envz.h @@ -28,8 +28,8 @@ #include /* Returns a pointer to the entry in ENVZ for NAME, or 0 if there is none. */ -const char *envz_entry __P ((__const char *__envz, size_t __envz_len, - __const char *__name)); +char *envz_entry __P ((__const char *__envz, size_t __envz_len, + __const char *__name)); /* Returns a pointer to the value portion of the entry in ENVZ for NAME, or 0 if there is none. */ -- cgit v1.1