Thu Aug  8 01:41:43 1996  Ulrich Drepper  <drepper@cygnus.com>

	* elf/Makefile: Undo change of Tue Aug  6 14:27:11 1996.
	* elf/dl-support: Add definition of `_dl_sysdep_read_whole_file'.

Thu Aug  8 01:15:59 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/fpu_control.h (_FPU_DEFAULT, _FPU_IEEE): Set
	to 0x137f to allow long double operations.

Sun Aug  4 13:12:05 1996  Richard Henderson  <rth@tamu.edu>

	Bug Fixes:

	* nss/nsswitch.c (_res): Remove redundant variable definition.
	The real one is in resolve/res_init.c, and having both prevents
	using -fno-common when building the shared library.
	* sunrpc/rpc_prot.c (_null_auth): Same.  Original is in rpc_common.c.

	* sysdeps/unix/sysv/linux/alpha/brk.S: When PIC, define __curbrk as
	a .bss object not a COMMON symbol.

	* sysdeps/alpha/bsd-_setjmp.S, sysdeps/alpha/bsd-setjmp.S: Must load
	$gp before referencing __sigsetjmp symbol.  Retain LITUSE for same.

	Optimizations:

	* sysdeps/alpha/strlen.S: Rearrange first-word setup and thense the
	main loop for better dual-issue on EV5.  Rearrange binary search to
	pipeline better and trim one instruction.

	Cosmetic Changes:

	* time/localtime.c (localtime_r): Move lock declaration back next to
	the comment where it was before the 960724 change.

	* INSTALL, manual/maint.texi: alpha-gnu-linux -> alpha-ANYTHING-linux.
	The second word is supposed to be the hardware manufacturer.

	* sysdeps/alpha/_mcount.S: Retain LITUSE for __mcount.
	* sysdeps/alpha/setjmp.S: Retain LITUSE for __sigsetjmp_aux.

	* sysdeps/alpha/divrem.h: More local labels, retain LITUSE for _mcount.

	* sysdeps/alpha/alphaev5/add_n.S, sysdeps/alpha/alphaev5/lshift.S,
	sysdeps/alpha/alphaev5/rshift.S, sysdeps/alpha/alphaev5/sub_n.S:
	Same cleanups as with EV4 GMP stuff.

Tue Jul 25 03:30:56 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/unix/sysv/linux/Makefile [misc] (sysdep_routines): Add clone.
	* sysdeps/unix/sysv/linux/alpha/clone.S: New file.
	* sysdeps/unix/sysv/linux/i386/clone.S: New file.

Sun Aug  4 00:12:41 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/gnu/types.h: Declare __fd_mask as
	`unsigned long'.

	* misc/sys/select.h: Declare fd_mask as alias of __fd_mask.

Sat Aug  3 16:20:02 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add entry for
 	Mikasa.

	* socket/sys/socket.h (send, __send, sendto): Declare buffer
 	pointer as __const.

	* string/tester.c (main): Test stpncpy.

	* sysdeps/generic/stpncpy.c (__stpncpy): Fix so it works without
 	segfault when called with an N that is not a multiple of four and
 	src[N-1]=='\0'.

	* misc/syslog.c (LogType): New variable.
	(openlog): If connect() with SOCK_DGRAM fails with EPROTOTYPE,
 	try again with SOCK_STREAM (the Linux syslogd uses a socket of the
 	latter type).
	(vsyslog): When LogType==SOCK_STREAM, also send ASCII NUL
 	terminator as a record-delimiter.  If __send(LogFile) fails,
	call closelog() so logfile gets re-opened next time.

Wed Aug  7 15:15:14 1996  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-open (_dl_open): Add cast to avoid warning.

	* manual/memory.texi: Improve some examples to give readers better
	advice: Use `stpcpy' instead of `strcat' if possible.
	* manual/string.texi: Document `strtok_r' and `strtok'.

	* sunrpc/Makefile: Move `+gccwarn' definition before inclusion
	of Makeconfig.
	[$(cross-compiling)=no]: Change test before making librpcsvc
	to this from $(cross-compile).
	Reported by Andreas Schwab.

Tue Aug  6 14:27:11 1996  Ulrich Drepper  <drepper@cygnus.com>

	* elf/Makefile (routines): Move dl-sysdep to here...
	(rtld-routines): ...from here.  This should make static linking
	work again.

	* locale/setlocale.c: Add local variable `lock' and add code to
	`setlocale' to avoid simultaneous changing of global data.

	* catgets/catgets.c (catopen): Use `__strdup' instead of `strdup'.
	* catgets/open_catalog (__open_catalog): Use `__stpcpy', `__open',
	`__fstat', `__read', `__mmap', `__munmap' and `__close' instead
	of unprotected names.
This commit is contained in:
Ulrich Drepper 1996-08-07 23:50:59 +00:00
parent 80776ab80d
commit 233963756b
86 changed files with 1400 additions and 552 deletions

111
ChangeLog
View file

@ -1,3 +1,114 @@
Thu Aug 8 01:41:43 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile: Undo change of Tue Aug 6 14:27:11 1996.
* elf/dl-support: Add definition of `_dl_sysdep_read_whole_file'.
Thu Aug 8 01:15:59 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/fpu_control.h (_FPU_DEFAULT, _FPU_IEEE): Set
to 0x137f to allow long double operations.
Sun Aug 4 13:12:05 1996 Richard Henderson <rth@tamu.edu>
Bug Fixes:
* nss/nsswitch.c (_res): Remove redundant variable definition.
The real one is in resolve/res_init.c, and having both prevents
using -fno-common when building the shared library.
* sunrpc/rpc_prot.c (_null_auth): Same. Original is in rpc_common.c.
* sysdeps/unix/sysv/linux/alpha/brk.S: When PIC, define __curbrk as
a .bss object not a COMMON symbol.
* sysdeps/alpha/bsd-_setjmp.S, sysdeps/alpha/bsd-setjmp.S: Must load
$gp before referencing __sigsetjmp symbol. Retain LITUSE for same.
Optimizations:
* sysdeps/alpha/strlen.S: Rearrange first-word setup and thense the
main loop for better dual-issue on EV5. Rearrange binary search to
pipeline better and trim one instruction.
Cosmetic Changes:
* time/localtime.c (localtime_r): Move lock declaration back next to
the comment where it was before the 960724 change.
* INSTALL, manual/maint.texi: alpha-gnu-linux -> alpha-ANYTHING-linux.
The second word is supposed to be the hardware manufacturer.
* sysdeps/alpha/_mcount.S: Retain LITUSE for __mcount.
* sysdeps/alpha/setjmp.S: Retain LITUSE for __sigsetjmp_aux.
* sysdeps/alpha/divrem.h: More local labels, retain LITUSE for _mcount.
* sysdeps/alpha/alphaev5/add_n.S, sysdeps/alpha/alphaev5/lshift.S,
sysdeps/alpha/alphaev5/rshift.S, sysdeps/alpha/alphaev5/sub_n.S:
Same cleanups as with EV4 GMP stuff.
Tue Jul 25 03:30:56 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/unix/sysv/linux/Makefile [misc] (sysdep_routines): Add clone.
* sysdeps/unix/sysv/linux/alpha/clone.S: New file.
* sysdeps/unix/sysv/linux/i386/clone.S: New file.
Sun Aug 4 00:12:41 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/gnu/types.h: Declare __fd_mask as
`unsigned long'.
* misc/sys/select.h: Declare fd_mask as alias of __fd_mask.
Sat Aug 3 16:20:02 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add entry for
Mikasa.
* socket/sys/socket.h (send, __send, sendto): Declare buffer
pointer as __const.
* string/tester.c (main): Test stpncpy.
* sysdeps/generic/stpncpy.c (__stpncpy): Fix so it works without
segfault when called with an N that is not a multiple of four and
src[N-1]=='\0'.
* misc/syslog.c (LogType): New variable.
(openlog): If connect() with SOCK_DGRAM fails with EPROTOTYPE,
try again with SOCK_STREAM (the Linux syslogd uses a socket of the
latter type).
(vsyslog): When LogType==SOCK_STREAM, also send ASCII NUL
terminator as a record-delimiter. If __send(LogFile) fails,
call closelog() so logfile gets re-opened next time.
Wed Aug 7 15:15:14 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-open (_dl_open): Add cast to avoid warning.
* manual/memory.texi: Improve some examples to give readers better
advice: Use `stpcpy' instead of `strcat' if possible.
* manual/string.texi: Document `strtok_r' and `strtok'.
* sunrpc/Makefile: Move `+gccwarn' definition before inclusion
of Makeconfig.
[$(cross-compiling)=no]: Change test before making librpcsvc
to this from $(cross-compile).
Reported by Andreas Schwab.
Tue Aug 6 14:27:11 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile (routines): Move dl-sysdep to here...
(rtld-routines): ...from here. This should make static linking
work again.
* locale/setlocale.c: Add local variable `lock' and add code to
`setlocale' to avoid simultaneous changing of global data.
* catgets/catgets.c (catopen): Use `__strdup' instead of `strdup'.
* catgets/open_catalog (__open_catalog): Use `__stpcpy', `__open',
`__fstat', `__read', `__mmap', `__munmap' and `__close' instead
of unprotected names.
Tue Aug 6 01:13:56 1996 Ulrich Drepper <drepper@cygnus.com>
Clean name space according to ISO C, ISO C/Amd 1, and POSIX.1.

View file

@ -66,6 +66,17 @@ useless_function (void)
}
asm ("\nEOF.end\n");
/* Find out how much alignment is produced by the compiler. */
asm ("align=`awk '$1==\".align\" { if ($2>max) max=$2; } END { print max; }' \
<<\\EOF.align");
void
useless_function2 (void (*foo) (void))
{
if (foo)
(*foo) ();
}
asm ("\nEOF.align\n`\n");
/* Append the .init prologue to crti.s-new. */
asm ("cat >> crti.s-new <<\\EOF.crti.init");
@ -88,6 +99,7 @@ _init (void)
to crtn.s-new, followed by the function epilogue. */
asm ("\n\
EOF.crti.init\n\
test -n \"$align\" && echo .align $align >> crti.s-new\n\
test -n \"$need_end\" && echo .end _init >> crti.s-new\n\
fgrep .init crti.s-new >>crtn.s-new\n\
fgrep -v .end >> crtn.s-new <<\\EOF.crtn.init");
@ -99,6 +111,11 @@ asm ("\nEOF.crtn.init\
\n\
cat >> crti.s-new <<\\EOF.crti.fini");
/* Global variable which says whether we have a statically or dynamically
linked program. If > 0, static, for < 0 dynamic, == 0 means yet to
be determined (see init-first.c). */
int __libc_is_static = 0;
SECTION (".fini")
void
_fini (void)
@ -107,6 +124,7 @@ _fini (void)
Then fetch the .section directive just written and append that
to crtn.s-new, followed by the function epilogue. */
asm ("\nEOF.crti.fini\n\
test -n \"$align\" && echo .align $align >> crti.s-new\n\
test -n \"$need_end\" && echo .end _fini >> crti.s-new\n\
cat > /dev/null <<\\EOF.fini.skip");

View file

@ -101,16 +101,19 @@ typedef struct __dirstream DIR;
/* Open a directory stream on NAME.
Return a DIR stream on the directory, or NULL if it could not be opened. */
extern DIR *__opendir __P ((__const char *__name));
extern DIR *opendir __P ((__const char *__name));
/* Close the directory stream DIRP.
Return 0 if successful, -1 if not. */
extern int __closedir __P ((DIR * __dirp));
extern int closedir __P ((DIR * __dirp));
/* Read a directory entry from DIRP.
Return a pointer to a `struct dirent' describing the entry,
or NULL for EOF or error. The storage returned may be overwritten
by a later readdir call on the same DIR stream. */
extern struct dirent *__readdir __P ((DIR * __dirp));
extern struct dirent *readdir __P ((DIR * __dirp));
/* Rewind DIRP to the beginning of the directory. */

View file

@ -85,6 +85,33 @@ extern struct group *getgrgid __P ((__gid_t __gid));
/* Search for an entry with a matching group name. */
extern struct group *getgrnam __P ((__const char *__name));
#ifdef __USE_REENTRANT
/* Reasonable value for the buffer sized used in the reentrant
functions below. But better use `sysconf'. */
#define NSS_BUFLEN_GROUP 1024
/* Reentrant versions of some of the functions above.
PLEASE NOTE: these functions are not yet standardized. The interface
may change in later versions of this library. */
#if defined(__USE_SVID) || defined(__USE_MISC) || defined (__USE_BSD)
extern struct group *getgrent_r __P ((struct group *__resultbuf,
char *buffer, int __buflen));
#endif
/* Search for an entry with a matching group ID. */
extern struct group *getgrgid_r __P ((__gid_t __gid,
struct group *__resultbuf,
char *buffer, int __buflen));
/* Search for an entry with a matching group name. */
extern struct group *getgrnam_r __P ((__const char *__name,
struct group *__resultbuf,
char *buffer, int __buflen));
#endif /* reentrant */
#ifdef __USE_BSD

View file

@ -52,8 +52,8 @@ extern int fcntl __P ((int __fd, int __cmd, ...));
/* Open FILE and return a new file descriptor for it, or -1 on error.
OFLAG determines the type of access used. If O_CREAT is on OFLAG,
the third argument is taken as a `mode_t', the mode of the created file. */
extern int __open __P ((__const char *__file, int __oflag,...));
extern int open __P ((__const char *__file, int __oflag,...));
extern int __open __P ((__const char *__file, int __oflag, ...));
extern int open __P ((__const char *__file, int __oflag, ...));
/* Create and open FILE, with mode MODE.
This takes an `int' MODE argument because that is

View file

@ -1,4 +1,4 @@
/*
/*
Copyright (C) 1993 Free Software Foundation
This file is part of the GNU IO Library. This library is free
@ -77,7 +77,7 @@ DEFUN(_IO_file_doallocate, (fp),
to get called by any program that does buffered I/O. */
if (_IO_cleanup_registration_needed)
(*_IO_cleanup_registration_needed)();
if (fp->_fileno < 0 || _IO_SYSSTAT (fp, &st) < 0)
{
couldbetty = 0;
@ -100,7 +100,7 @@ DEFUN(_IO_file_doallocate, (fp),
if (p == NULL)
return EOF;
_IO_setb(fp, p, p+size, 1);
if (couldbetty && isatty(fp->_fileno))
if (couldbetty && __isatty (fp->_fileno))
fp->_flags |= _IO_LINE_BUF;
return 1;
}

View file

@ -1,4 +1,4 @@
/*
/*
Copyright (C) 1993, 1995 Free Software Foundation
This file is part of the GNU IO Library. This library is free
@ -70,14 +70,14 @@ extern int errno;
(The pointers save_gptr() and save_egptr() are the values
of gptr() and egptr() at the time putback mode was entered.)
The OS position corresponds to that of save_egptr().
LINE BUFFERED OUTPUT:
During line buffered output, pbase()==base() && epptr()==base().
However, ptr() may be anywhere between base() and ebuf().
This forces a call to filebuf::overflow(int C) on every put.
If there is more space in the buffer, and C is not a '\n',
then C is inserted, and pptr() incremented.
UNBUFFERED STREAMS:
If a filebuf is unbuffered(), the _shortbuf[1] is used as the buffer.
*/
@ -172,7 +172,7 @@ DEFUN(_IO_file_fopen, (fp, filename, mode),
omode = O_RDWR;
read_write &= _IO_IS_APPENDING;
}
fdesc = open(filename, omode|oflags, oprot);
fdesc = __open (filename, omode|oflags, oprot);
if (fdesc < 0)
return NULL;
fp->_fileno = fdesc;
@ -230,7 +230,7 @@ DEFUN(_IO_do_write, (fp, data, to_do),
unpredictable. */
fp->_offset = _IO_pos_BAD;
else if (fp->_IO_read_end != fp->_IO_write_base)
{
{
_IO_pos_t new_pos
= _IO_SYSSEEK(fp, fp->_IO_write_base - fp->_IO_read_end, 1);
if (new_pos == _IO_pos_BAD)
@ -339,7 +339,7 @@ DEFUN(_IO_file_sync, (fp),
/* char* ptr = cur_ptr(); */
if (fp->_IO_write_ptr > fp->_IO_write_base)
if (_IO_do_flush(fp)) return EOF;
delta = fp->_IO_read_ptr - fp->_IO_read_end;
delta = fp->_IO_read_ptr - fp->_IO_read_end;
if (delta != 0)
{
#ifdef TODO
@ -641,7 +641,7 @@ DEFUN(_IO_file_xsputn, (f, data, n),
if (_IO_do_write(f, s, count) == EOF)
return n - to_do;
to_do = dont_write;
/* Now write out the remainder. Normally, this will fit in the
buffer, but it's somewhat messier for line-buffered files,
so we let _IO_default_xsputn handle the general case. */
@ -706,7 +706,7 @@ DEFUN(_IO_file_xsgetn, (fp, data, n),
else
fp->_flags |= _IO_ERR_SEEN, count = 0;
}
s += count;
more -= count;
}

View file

@ -221,7 +221,6 @@ setdata (int category, const struct locale_data *data)
char *
setlocale (int category, const char *locale)
{
char *locpath_var;
char *locale_path;
size_t locale_path_len;
char *composite;
@ -245,12 +244,15 @@ setlocale (int category, const char *locale)
locale_path = NULL;
locale_path_len = 0;
locpath_var = getenv ("LOCPATH");
if (locpath_var != NULL && locpath_var[0] != '\0'
&& __getuid () == __geteuid () && __getgid () == __getegid ())
if (__argz_create_sep (locpath_var, ':',
&locale_path, &locale_path_len) != 0)
return NULL;
if (!__libc_enable_secure)
{
char *locpath_var = getenv ("LOCPATH");
if (locpath_var != NULL && locpath_var[0] != '\0')
if (__argz_create_sep (locpath_var, ':',
&locale_path, &locale_path_len) != 0)
return NULL;
}
if (__argz_append (&locale_path, &locale_path_len,
LOCALE_PATH, sizeof (LOCALE_PATH)) != 0)

View file

@ -27,5 +27,5 @@ extern struct utmp_data __utmp_data;
void
endutent (void)
{
endutent_r (&__utmp_data);
__endutent_r (&__utmp_data);
}

View file

@ -22,7 +22,7 @@ Boston, MA 02111-1307, USA. */
void
endutent_r (struct utmp_data *utmp_data)
__endutent_r (struct utmp_data *utmp_data)
{
if (utmp_data->ut_fd != -1)
{
@ -30,3 +30,4 @@ endutent_r (struct utmp_data *utmp_data)
utmp_data->ut_fd = -1;
}
}
weak_alias (__endutent_r, endutent_r)

View file

@ -29,7 +29,7 @@ getutent (void)
{
struct utmp *result;
if (getutent_r (&result, &__utmp_data) < 0)
if (__getutent_r (&result, &__utmp_data) < 0)
return NULL;
return result;

View file

@ -22,7 +22,7 @@ Boston, MA 02111-1307, USA. */
int
getutent_r (struct utmp **utmp, struct utmp_data *utmp_data)
__getutent_r (struct utmp **utmp, struct utmp_data *utmp_data)
{
/* Open utmp file if not already done. */
if (utmp_data->ut_fd == -1)
@ -48,3 +48,4 @@ getutent_r (struct utmp **utmp, struct utmp_data *utmp_data)
return 0;
}
weak_alias (__getutent_r, getutent_r)

View file

@ -29,7 +29,7 @@ getutid (const struct utmp *id)
{
struct utmp *result;
if (getutid_r (id, &result, &__utmp_data) < 0)
if (__getutid_r (id, &result, &__utmp_data) < 0)
return NULL;
return (struct utmp *) result;

View file

@ -26,8 +26,8 @@ Boston, MA 02111-1307, USA. */
/* For implementing this function we don't use the getutent_r function
because we can avoid the reposition on every new entry this way. */
int
getutid_r (const struct utmp *id, struct utmp **utmp,
struct utmp_data *utmp_data)
__getutid_r (const struct utmp *id, struct utmp **utmp,
struct utmp_data *utmp_data)
{
#if (_HAVE_UT_ID - 0) && (_HAVE_UT_TYPE - 0)
/* Test whether ID has any of the legal types. */
@ -114,3 +114,4 @@ getutid_r (const struct utmp *id, struct utmp **utmp,
return -1;
#endif
}
weak_alias (__getutid_r, getutid_r)

View file

@ -29,7 +29,7 @@ getutline (const struct utmp *line)
{
struct utmp *result;
if (getutline_r (line, &result, &__utmp_data) < 0)
if (__getutline_r (line, &result, &__utmp_data) < 0)
return NULL;
return (struct utmp *) result;

View file

@ -26,13 +26,13 @@ Boston, MA 02111-1307, USA. */
/* For implementing this function we don't use the getutent_r function
because we can avoid the reposition on every new entry this way. */
int
getutline_r (const struct utmp *line, struct utmp **utmp,
struct utmp_data *utmp_data)
__getutline_r (const struct utmp *line, struct utmp **utmp,
struct utmp_data *utmp_data)
{
/* Open utmp file if not already done. */
if (utmp_data->ut_fd == -1)
{
setutent_r (utmp_data);
__setutent_r (utmp_data);
if (utmp_data->ut_fd == -1)
return -1;
}
@ -71,3 +71,4 @@ getutline_r (const struct utmp *line, struct utmp **utmp,
return 0;
}
weak_alias (__getutline_r, getutline_r)

View file

@ -27,7 +27,7 @@ extern struct utmp_data __utmp_data;
struct utmp *
pututline (const struct utmp *utmp)
{
if (pututline_r (utmp, &__utmp_data) < 0)
if (__pututline_r (utmp, &__utmp_data) < 0)
return NULL;
return (struct utmp *) utmp;

View file

@ -31,7 +31,7 @@ Boston, MA 02111-1307, USA. */
which write the new value. */
int
pututline_r (const struct utmp *id, struct utmp_data *utmp_data)
__pututline_r (const struct utmp *id, struct utmp_data *utmp_data)
{
struct stat st;
int result = 0;
@ -136,3 +136,4 @@ pututline_r (const struct utmp *id, struct utmp_data *utmp_data)
return result;
}
weak_alias (__pututline_r, pututline_r)

View file

@ -27,5 +27,5 @@ struct utmp_data __utmp_data = { ut_fd: -1 };
void
setutent (void)
{
setutent_r (&__utmp_data);
__setutent_r (&__utmp_data);
}

View file

@ -31,7 +31,7 @@ static const char *utmp_file_name = (const char *) default_utmp_name;
void
setutent_r (struct utmp_data *utmp_data)
__setutent_r (struct utmp_data *utmp_data)
{
/* Before the UTMP_DATA is used before the first time the UT_FD
field must be set to -1. */
@ -56,12 +56,13 @@ setutent_r (struct utmp_data *utmp_data)
utmp_data->ubuf.ut_type = UT_UNKNOWN;
#endif
}
weak_alias (__setutent_r, setutent_r)
int
utmpname (const char *file)
__utmpname (const char *file)
{
char *fname = strdup (file);
char *fname = __strdup (file);
if (fname == NULL)
return 0;
@ -72,3 +73,4 @@ utmpname (const char *file)
return 1;
}
weak_alias (__utmpname, utmpname)

View file

@ -86,19 +86,30 @@ struct utmp_data
/* Reentrant versions of the file for handling utmp files. */
extern int __getutent_r __P ((struct utmp **__utmp,
struct utmp_data *__utmp_data));
extern int getutent_r __P ((struct utmp **__utmp,
struct utmp_data *__utmp_data));
extern void __setutent_r __P ((struct utmp_data *__utmp_data));
extern void setutent_r __P ((struct utmp_data *__utmp_data));
extern void __endutent_r __P ((struct utmp_data *__utmp_data));
extern void endutent_r __P ((struct utmp_data *__utmp_data));
extern int __getutid_r __P ((__const struct utmp *__id, struct utmp **__utmp,
struct utmp_data *__utmp_data));
extern int getutid_r __P ((__const struct utmp *__id, struct utmp **__utmp,
struct utmp_data *__utmp_data));
extern int __getutline_r __P ((__const struct utmp *__line,
struct utmp **__utmp,
struct utmp_data *__utmp_data));
extern int getutline_r __P ((__const struct utmp *__line, struct utmp **__utmp,
struct utmp_data *__utmp_data));
extern int __pututline_r __P ((__const struct utmp *__utmp_ptr,
struct utmp_data *__utmp_data));
extern int pututline_r __P ((__const struct utmp *__utmp_ptr,
struct utmp_data *__utmp_data));

View file

@ -114,6 +114,7 @@ struct exception
double retval;
};
extern int __matherr __P ((struct exception *));
extern int matherr __P ((struct exception *));
#define X_TLOSS 1.41484755040568800000e+16

View file

@ -88,7 +88,7 @@ private_strerror (errnum)
extern int sys_nerr;
if (errnum > 0 && errnum <= sys_nerr)
return sys_errlist[errnum];
return _(sys_errlist[errnum]);
return _("Unknown system error");
}
#define strerror private_strerror

View file

@ -34,7 +34,9 @@
*/
#ifndef _FSTAB_H_
#define _FSTAB_H_
#define _FSTAB_H_ 1
#include <features.h>
/*
* File system table, see fstab(5).
@ -66,14 +68,15 @@ struct fstab {
int fs_passno; /* pass number on parallel dump */
};
#include <sys/cdefs.h>
__BEGIN_DECLS
struct fstab *getfsent __P((void));
struct fstab *getfsspec __P((const char *));
struct fstab *getfsfile __P((const char *));
int setfsent __P((void));
void endfsent __P((void));
extern struct fstab *getfsent __P ((void));
extern struct fstab *getfsspec __P ((__const char *__name));
extern struct fstab *getfsfile __P ((__const char *__name));
extern int setfsent __P ((void));
extern void endfsent __P ((void));
__END_DECLS
#endif /* !_FSTAB_H_ */

View file

@ -34,7 +34,9 @@
*/
#ifndef _TTYENT_H_
#define _TTYENT_H_
#define _TTYENT_H_ 1
#include <features.h>
#define _PATH_TTYS "/etc/ttys"
@ -54,14 +56,13 @@ struct ttyent {
char *ty_comment; /* comment field */
};
#include <sys/cdefs.h>
__BEGIN_DECLS
struct ttyent *getttyent __P ((void));
struct ttyent *getttynam __P ((__const char *));
int setttyent __P ((void));
int endttyent __P ((void));
extern struct ttyent *getttyent __P ((void));
extern struct ttyent *getttynam __P ((__const char *__tty));
extern int setttyent __P ((void));
extern int endttyent __P ((void));
__END_DECLS

View file

@ -46,6 +46,8 @@ Boston, MA 02111-1307, USA. */
#define REENTRANT_NAME APPEND_R (FUNCTION_NAME)
#define APPEND_R(name) APPEND_R1 (name)
#define APPEND_R1(name) name##_r
#define INTERNAL(name) INTERNAL1 (name)
#define INTERNAL1(name) __##name
/* Sometimes we need to store error codes in the `h_errno' variable. */
#ifdef NEED_H_ERRNO
@ -58,8 +60,9 @@ Boston, MA 02111-1307, USA. */
/* Prototype for reentrant version we use here. */
extern LOOKUP_TYPE *REENTRANT_NAME (ADD_PARAMS, LOOKUP_TYPE *result,
char *buffer, int buflen H_ERRNO_PARM);
extern LOOKUP_TYPE *INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *result,
char *buffer, int buflen
H_ERRNO_PARM);
LOOKUP_TYPE *
FUNCTION_NAME (ADD_PARAMS)
@ -67,5 +70,6 @@ FUNCTION_NAME (ADD_PARAMS)
static LOOKUP_TYPE result;
static char buffer[BUFLEN];
return REENTRANT_NAME (ADD_VARIABLES, &result, buffer, BUFLEN H_ERRNO_VAR);
return INTERNAL (REENTRANT_NAME) (ADD_VARIABLES, &result, buffer,
BUFLEN H_ERRNO_VAR);
}

View file

@ -47,6 +47,8 @@ Boston, MA 02111-1307, USA. */
#define REENTRANT_NAME APPEND_R (FUNCTION_NAME)
#define APPEND_R(name) APPEND_R1 (name)
#define APPEND_R1(name) name##_r
#define INTERNAL(name) INTERNAL1 (name)
#define INTERNAL1(name) __##name
#define FUNCTION_NAME_STRING STRINGIZE (FUNCTION_NAME)
#define REENTRANT_NAME_STRING STRINGIZE (REENTRANT_NAME)
@ -81,8 +83,8 @@ extern int DB_LOOKUP_FCT (service_user **nip, const char *name, void **fctp);
LOOKUP_TYPE *
REENTRANT_NAME (ADD_PARAMS, LOOKUP_TYPE *result, char *buffer, int buflen
H_ERRNO_PARM)
INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *result, char *buffer,
int buflen H_ERRNO_PARM)
{
static service_user *startp = NULL;
static lookup_function start_fct;
@ -128,3 +130,6 @@ REENTRANT_NAME (ADD_PARAMS, LOOKUP_TYPE *result, char *buffer, int buflen
return status == NSS_STATUS_SUCCESS ? result : NULL;
}
#define do_weak_alias(n1, n2) weak_alias ((n1), (n2))
do_weak_alias (INTERNAL (REENTRANT_NAME), REENTRANT_NAME)

View file

@ -38,6 +38,8 @@ Boston, MA 02111-1307, USA. */
#define REENTRANT_GETNAME APPEND_R (GETFUNC_NAME)
#define APPEND_R(name) APPEND_R1 (name)
#define APPEND_R1(name) name##_r
#define INTERNAL(name) INTERNAL1 (name)
#define INTERNAL1(name) __##name
/* Sometimes we need to store error codes in the `h_errno' variable. */
#ifdef NEED_H_ERRNO
@ -49,8 +51,8 @@ Boston, MA 02111-1307, USA. */
#endif
/* Prototype of the reentrant version. */
LOOKUP_TYPE *REENTRANT_GETNAME (LOOKUP_TYPE *result, char *buffer,
int buflen H_ERRNO_PARM);
LOOKUP_TYPE *INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *result, char *buffer,
int buflen H_ERRNO_PARM);
LOOKUP_TYPE *
@ -59,5 +61,5 @@ GETFUNC_NAME (void)
static char buffer[BUFLEN];
static LOOKUP_TYPE result;
return REENTRANT_GETNAME (&result, buffer, BUFLEN H_ERRNO_VAR);
return INTERNAL (REENTRANT_GETNAME) (&result, buffer, BUFLEN H_ERRNO_VAR);
}

View file

@ -50,6 +50,8 @@ Boston, MA 02111-1307, USA. */
#define REENTRANT_GETNAME APPEND_R (GETFUNC_NAME)
#define APPEND_R(name) APPEND_R1 (name)
#define APPEND_R1(name) name##_r
#define INTERNAL(name) INTERNAL1 (name)
#define INTERNAL1(name) __##name
#define SETFUNC_NAME_STRING STRINGIZE (SETFUNC_NAME)
#define GETFUNC_NAME_STRING STRINGIZE (REENTRANT_GETNAME)
@ -186,7 +188,8 @@ ENDFUNC_NAME (void)
LOOKUP_TYPE *
REENTRANT_GETNAME (LOOKUP_TYPE *result, char *buffer, int buflen H_ERRNO_PARM)
INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *result, char *buffer, int buflen
H_ERRNO_PARM)
{
get_function fct;
int no_more;
@ -221,3 +224,5 @@ REENTRANT_GETNAME (LOOKUP_TYPE *result, char *buffer, int buflen H_ERRNO_PARM)
return status == NSS_STATUS_SUCCESS ? result : NULL;
}
#define do_weak_alias(n1, n2) weak_alias (n1, n2)
do_weak_alias (INTERNAL (REENTRANT_GETNAME), REENTRANT_GETNAME)

View file

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU C Library 1.10.1\n"
"PO-Revision-Date: 1996-05-26 22:59 KST\n"
"PO-Revision-Date: 1996-08-02 18:58 MET DST\n"
"Last-Translator: Bang Jun Young <bangjy@nownuri.nowcom.co.kr>\n"
"Language-Team: Korean <ko@li.org>\n"
"MIME-Version: 1.0\n"
@ -1049,11 +1049,11 @@ msgstr "rcmd:
#: sunrpc/svc_simple.c:83
msgid "registerrpc: out of memory\n"
msgstr "registerrpc: 메모리 부족"
msgstr "registerrpc: 메모리 부족\n"
#: inet/rcmd.c:158
msgid "select: protocol failure in circuit setup\n"
msgstr "select: 회로 설정중 규약이 불이행됨"
msgstr "select: 회로 설정중 규약이 불이행됨\n"
#: inet/rcmd.c:176
msgid "socket: protocol failure in circuit setup.\n"
@ -1061,7 +1061,7 @@ msgstr "socket: ȸ
#: sunrpc/svc_tcp.c:199 svc_tcp.c:204
msgid "svc_tcp: makefd_xprt: out of memory\n"
msgstr "svc_tcp: makefc_xprt: 메모리 부족"
msgstr "svc_tcp: makefc_xprt: 메모리 부족\n"
#: sunrpc/svc_tcp.c:147
msgid "svctcp_.c - cannot getsockname or listen"
@ -1110,4 +1110,3 @@ msgstr "
#: sunrpc/rpc_parse.c:370
msgid "voids allowed only inside union and program definitions"
msgstr "void는 오직 공용체와 프로그램 정의 내에서만 허용됩니다"

View file

@ -83,6 +83,22 @@ static struct conf vars[] =
{ "_POSIX_PII_OSI_CLTS", _SC_PII_OSI_CLTS, SYSCONF },
{ "_POSIX_PII_OSI_M", _SC_PII_OSI_M, SYSCONF },
{ "_T_IOV_MAX", _SC_T_IOV_MAX, SYSCONF },
{ "_POSIX_THREADS", _SC_THREADS, SYSCONF },
{ "_POSIX_THREAD_SAFE_FUNCTIONS", _SC_THREAD_SAFE_FUNCTIONS, SYSCONF },
{ "NSS_BUFLEN_GROUP", _SC_GETGR_R_SIZE_MAX, SYSCONF },
{ "NSS_BUFLEN_PASSWD", _SC_GETPW_R_SIZE_MAX, SYSCONF },
{ "LOGNAME_MAX", _SC_LOGIN_NAME_MAX, SYSCONF },
{ "TTY_NAME_MAX", _SC_TTY_NAME_MAX, SYSCONF },
{ "PTHREAD_DESTRUCTOR_ITERATIONS", _SC_THREAD_DESTRUCTOR_ITERATIONS, SYSCONF },
{ "PTHREAD_KEYS_MAX", _SC_THREAD_KEYS_MAX, SYSCONF },
{ "PTHREAD_STACK_MIN", _SC_THREAD_STACK_MIN, SYSCONF },
{ "PTHREAD_THREADS_MAX", _SC_THREAD_THREADS_MAX, SYSCONF },
{ "_POSIX_THREAD_ATTR_STACKADDR", _SC_THREAD_ATTR_STACKADDR, SYSCONF },
{ "_POSIX_THREAD_ATTR_STACKSIZE", _SC_THREAD_ATTR_STACKSIZE, SYSCONF },
{ "_POSIX_THREAD_PRIORITY_SCHEDULING", _SC_THREAD_PRIORITY_SCHEDULING, SYSCONF },
{ "_POSIX_THREAD_PRIO_INHERIT", _SC_THREAD_PRIO_INHERIT, SYSCONF },
{ "_POSIX_THREAD_PRIO_PROTECT", _SC_THREAD_PRIO_PROTECT, SYSCONF },
{ "_POSIX_THREAD_PROCESS_SHARED", _SC_THREAD_PROCESS_SHARED, SYSCONF },
/* POSIX.2 */
{ "BC_BASE_MAX", _SC_BC_BASE_MAX, SYSCONF },
{ "BC_DIM_MAX", _SC_BC_DIM_MAX, SYSCONF },

View file

@ -81,6 +81,12 @@ Cambridge, MA 02139, USA. */
/* Maximum number of elements in an `iovec' array. */
#define _POSIX_UIO_MAXIOV 16
/* Maximum number of characters in a tty name. */
#define _POSIX_TTY_NAME_MAX 9
/* Maximum length of login name. */
#define _POSIX_LOGIN_NAME_MAX 9
/* Get the implementation-specific values for the above. */
#include <local_lim.h>

View file

@ -503,6 +503,7 @@ extern char *ttyname __P ((int __fd));
#ifdef __USE_REENTRANT
/* Store at most BUFLEN characters of the pathname of the terminal FD is
open on in BUF. Return 0 on success, -1 otherwise. */
extern int __ttyname_r __P ((int __fd, char *__buf, int __buflen));
extern int ttyname_r __P ((int __fd, char *__buf, int __buflen));
#endif

View file

@ -92,6 +92,39 @@ extern struct passwd *getpwuid __P ((__uid_t __uid));
/* Search for an entry with a matching username. */
extern struct passwd *getpwnam __P ((__const char *__name));
#ifdef __USE_REENTRANT
/* Reasonable value for the buffer sized used in the reentrant
functions below. But better use `sysconf'. */
#define NSS_BUFLEN_PASSWD 1024
/* Reentrant versions of some of the functions above.
PLEASE NOTE: these functions are not yet standardized. The interface
may change in later versions of this library. */
#if defined(__USE_SVID) || defined(__USE_MISC)
extern struct passwd *__getpwent_r __P ((struct passwd *__resultbuf,
char *__buffer, int __buflen));
extern struct passwd *getpwent_r __P ((struct passwd *__resultbuf,
char *__buffer, int __buflen));
#endif
extern struct passwd *__getpwuid_r __P ((__uid_t __uid,
struct passwd *__resultbuf,
char *__buffer, int __buflen));
extern struct passwd *getpwuid_r __P ((__uid_t __uid,
struct passwd *__resultbuf,
char *__buffer, int __buflen));
extern struct passwd *__getpwnam_r __P ((__const char *__name,
struct passwd *__resultbuf,
char *__buffer, int __buflen));
extern struct passwd *getpwnam_r __P ((__const char *__name,
struct passwd *__resultbuf,
char *__buffer, int __buflen));
#endif /* reentrant */
__END_DECLS

View file

@ -1,72 +1,35 @@
/*
* ++Copyright++ 1980, 1983, 1988, 1993
* -
* Copyright (c) 1980, 1983, 1988, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* -
* Portions Copyright (c) 1993 by Digital Equipment Corporation.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies, and that
* the name of Digital Equipment Corporation not be used in advertising or
* publicity pertaining to distribution of the document or software without
* specific, written prior permission.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
* CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
* -
* --Copyright--
*/
/* Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/*
* @(#)netdb.h 8.1 (Berkeley) 6/2/93
* $Id$
*/
The GNU C Library is free software; you can redistribute it
and/or modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
#ifndef _NETDB_H_
#define _NETDB_H_
The GNU C Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Library General Public License for more details.
#include <sys/param.h>
#if (!defined(BSD)) || (BSD < 199306)
# include <sys/bitypes.h>
#endif
#include <sys/cdefs.h>
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place -
Suite 330, Boston, MA 02111-1307, USA. */
/* All data returned by the network data base library are supplied in
host order and returned in network order (suitable for use in
system calls). */
#ifndef _NETDB_H
#define _NETDB_H 1
#include <features.h>
/* This is necessary to make this include file properly replace the
Sun version. */
#include <rpc/netdb.h>
/* Absolute file name for network data base files. */
#define _PATH_HEQUIV "/etc/hosts.equiv"
#define _PATH_HOSTS "/etc/hosts"
#define _PATH_NETWORKS "/etc/networks"
@ -74,98 +37,284 @@
#define _PATH_PROTOCOLS "/etc/protocols"
#define _PATH_SERVICES "/etc/services"
extern int h_errno;
/*
* Structures returned by network data base library. All addresses are
* supplied in host order, and returned in network order (suitable for
* use in system calls).
*/
struct hostent {
char *h_name; /* official name of host */
char **h_aliases; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
char **h_addr_list; /* list of addresses from name server */
#define h_addr h_addr_list[0] /* address, for backward compatiblity */
};
/*
* Assumption here is that a network number
* fits in an unsigned long -- probably a poor one.
*/
struct netent {
char *n_name; /* official name of net */
char **n_aliases; /* alias list */
int n_addrtype; /* net address type */
unsigned long n_net; /* network # */
};
struct servent {
char *s_name; /* official service name */
char **s_aliases; /* alias list */
int s_port; /* port # */
char *s_proto; /* protocol to use */
};
struct protoent {
char *p_name; /* official protocol name */
char **p_aliases; /* alias list */
int p_proto; /* protocol # */
};
/*
* Error return codes from gethostbyname() and gethostbyaddr()
* (left in extern int h_errno).
*/
#define NETDB_INTERNAL -1 /* see errno */
#define NETDB_SUCCESS 0 /* no problem */
#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */
#define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */
#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
#define NO_DATA 4 /* Valid name, no data record of requested type */
#define NO_ADDRESS NO_DATA /* no address, look for MX record */
__BEGIN_DECLS
void endhostent __P((void));
void endnetent __P((void));
void endprotoent __P((void));
void endservent __P((void));
struct hostent *gethostbyaddr __P((const char *, int, int));
struct hostent *gethostbyname __P((const char *));
struct hostent *gethostbyname2 __P((const char *, int));
struct hostent *gethostent __P((void));
struct netent *getnetbyaddr __P((unsigned long, int));
struct netent *getnetbyname __P((const char *));
struct netent *getnetent __P((void));
struct protoent *getprotobyname __P((const char *));
struct protoent *getprotobynumber __P((int));
struct protoent *getprotoent __P((void));
struct servent *getservbyname __P((const char *, const char *));
struct servent *getservbyport __P((int, const char *));
struct servent *getservent __P((void));
void herror __P((const char *));
const char *hstrerror __P((int));
void sethostent __P((int));
/* void sethostfile __P((const char *)); */
void setnetent __P((int));
void setprotoent __P((int));
void setservent __P((int));
/* Error status for non-reentrant lookup functions. */
extern int h_errno;
/* Possible values left in `h_errno'. */
#define NETDB_INTERNAL -1 /* See errno. */
#define NETDB_SUCCESS 0 /* No problem. */
#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found. */
#define TRY_AGAIN 2 /* Non-Authoritive Host not found,
or SERVERFAIL. */
#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED,
NOTIMP. */
#define NO_DATA 4 /* Valid name, no data record of requested
type. */
#define NO_ADDRESS NO_DATA /* No address, look for MX record. */
/* Print error indicated by `h_errno' variable on standard error. STR
if non-null is printed before the error string. */
extern void herror __P ((__const char *__str));
/* Return string associated with error ERR_NUM. */
extern __const char *hstrerror __P ((int __err_num));
/* Description of data base entry for a single host. */
struct hostent
{
char *h_name; /* Official name of host. */
char **h_aliases; /* Alias list. */
int h_addrtype; /* Host address type. */
int h_length; /* Length of address. */
char **h_addr_list; /* List of addresses from name server. */
#define h_addr h_addr_list[0] /* Address, for backward compatiblity. */
};
/* Open host data base files and mark them as staying open even after
a later search if STAY_OPEN is non-zero. */
extern void sethostent __P ((int __stay_open));
/* Close host data base files and clear `stay open' flag. */
extern void endhostent __P ((void));
/* Get next entry from host data base file. Open data base if
necessary. */
extern struct hostent *gethostent __P ((void));
/* Return entry from host data base which address match ADDR with
length LEN and type TYPE. */
extern struct hostent *gethostbyaddr __P ((__const char *__addr, int __len,
int __type));
/* Return entry from host data base for host with NAME. */
extern struct hostent *gethostbyname __P ((__const char *__name));
/* Return entry from host data base for host with NAME. AF must be
set to the address type which as `AF_INET' for IPv4 or `AF_INET6'
for IPv6. */
extern struct hostent *gethostbyname2 __P ((__const char *__name, int __af));
#ifdef __USE_REENTRANT
/* Reentrant versions of the functions above. The additional
arguments specify a buffer of BUFLEN starting at BUF. The last
argument is a pointer to a variable which gets the value which
would be stored in the global variable `herrno' by the
non-reentrant functions. */
extern struct hostent *__gethostent_r __P ((struct hostent *__result_buf,
char *__buf, int __buf_len,
int *__h_errnop));
extern struct hostent *gethostent_r __P ((struct hostent *__result_buf,
char *__buf, int __buf_len,
int *__h_errnop));
extern struct hostent *__gethostbyaddr_r __P ((__const char *__addr, int __len,
int __type,
struct hostent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
extern struct hostent *gethostbyaddr_r __P ((__const char *__addr, int __len,
int __type,
struct hostent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
extern struct hostent *__gethostbyname_r __P ((__const char *__name,
struct hostent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
extern struct hostent *gethostbyname_r __P ((__const char *__name,
struct hostent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
extern struct hostent *__gethostbyname2_r __P ((__const char *__name, int __af,
struct hostent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
extern struct hostent *gethostbyname2_r __P ((__const char *__name, int __af,
struct hostent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
#endif /* reentrant */
/* Description of data base entry for a single network. NOTE: here a
poor assumption is made. The network number is expected to fit
into an unsigned long int variable. */
struct netent
{
char *n_name; /* Official name of network. */
char **n_aliases; /* Alias list. */
int n_addrtype; /* Net address type. */
unsigned long int n_net; /* Network number. */
};
/* Open network data base files and mark them as staying open even
after a later search if STAY_OPEN is non-zero. */
extern void setnetent __P ((int __stay_open));
/* Close network data base files and clear `stay open' flag. */
extern void endnetent __P ((void));
/* Get next entry from network data base file. Open data base if
necessary. */
extern struct netent *getnetent __P ((void));
/* Return entry from network data base which address match NET and
type TYPE. */
extern struct netent *getnetbyaddr __P ((unsigned long int __net,
int __type));
/* Return entry from network data base for network with NAME. */
extern struct netent *getnetbyname __P ((__const char *__name));
#ifdef __USE_REENTRANT
/* Reentrant versions of the functions above. The additional
arguments specify a buffer of BUFLEN starting at BUF. The last
argument is a pointer to a variable which gets the value which
would be stored in the global variable `herrno' by the
non-reentrant functions. */
extern struct netent *__getnetent_r __P ((struct netent *__result_buf,
char *__buf, int __buf_len,
int *__h_errnop));
extern struct netent *getnetent_r __P ((struct netent *__result_buf,
char *__buf, int __buf_len,
int *__h_errnop));
extern struct netent *__getnetbyaddr_r __P ((unsigned long int __net,
int __type,
struct netent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
extern struct netent *getnetbyaddr_r __P ((unsigned long int __net,
int __type,
struct netent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
extern struct netent *__getnetbyname_r __P ((__const char *__name,
struct netent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
extern struct netent *getnetbyname_r __P ((__const char *__name,
struct netent *__result_buf,
char *__buf, int __buflen,
int *__h_errnop));
#endif /* reentrant */
/* Description of data base entry for a single service. */
struct servent
{
char *s_name; /* Official service name. */
char **s_aliases; /* Alias list. */
int s_port; /* Port number. */
char *s_proto; /* Protocol to use. */
};
/* Open service data base files and mark them as staying open even
after a later search if STAY_OPEN is non-zero. */
extern void setservent __P ((int __stay_open));
/* Close service data base files and clear `stay open' flag. */
extern void endservent __P ((void));
/* Get next entry from service data base file. Open data base if
necessary. */
extern struct servent *getservent __P ((void));
/* Return entry from network data base for network with NAME and
protocol PROTO. */
extern struct servent *getservbyname __P ((__const char *__name,
__const char *__proto));
/* Return entry from service data base which matches port PORT and
protocol PROTO. */
extern struct servent *getservbyport __P ((int __port, __const char *__proto));
#ifdef __USE_REENTRANT
/* Reentrant versions of the functions above. The additional
arguments specify a buffer of BUFLEN starting at BUF. */
extern struct servent *__getservent_r __P ((struct servent *__result_buf,
char *__buf, int __buf_len));
extern struct servent *getservent_r __P ((struct servent *__result_buf,
char *__buf, int __buf_len));
extern struct servent *__getservbyname_r __P ((__const char *__name,
__const char *__proto,
struct servent *__result_buf,
char *__buf, int __buflen));
extern struct servent *getservbyname_r __P ((__const char *__name,
__const char *__proto,
struct servent *__result_buf,
char *__buf, int __buflen));
extern struct servent *__getservbyport_r __P ((int __port,
__const char *__proto,
struct servent *__result_buf,
char *__buf, int __buflen));
extern struct servent *getservbyport_r __P ((int __port, __const char *__proto,
struct servent *__result_buf,
char *__buf, int __buflen));
#endif /* reentrant */
/* Description of data base entry for a single service. */
struct protoent
{
char *p_name; /* Official protocol name. */
char **p_aliases; /* Alias list. */
int p_proto; /* Protocol number. */
};
/* Open protocol data base files and mark them as staying open even
after a later search if STAY_OPEN is non-zero. */
extern void setprotoent __P ((int __stay_open));
/* Close protocol data base files and clear `stay open' flag. */
extern void endprotoent __P ((void));
/* Get next entry from protocol data base file. Open data base if
necessary. */
extern struct protoent *getprotoent __P ((void));
/* Return entry from protocol data base for network with NAME. */
extern struct protoent *getprotobyname __P ((__const char *__name));
/* Return entry from protocol data base which number is PROTO. */
extern struct protoent *getprotobynumber __P ((int __proto));
#ifdef __USE_REENTRANT
/* Reentrant versions of the functions above. The additional
arguments specify a buffer of BUFLEN starting at BUF. */
extern struct protoent *__getprotoent_r __P ((struct protoent *__result_buf,
char *__buf, int __buf_len));
extern struct protoent *getprotoent_r __P ((struct protoent *__result_buf,
char *__buf, int __buf_len));
extern struct protoent *__getprotobyname_r __P ((__const char *__name,
struct protoent *__result_buf,
char *__buf, int __buflen));
extern struct protoent *getprotobyname_r __P ((__const char *__name,
struct protoent *__result_buf,
char *__buf, int __buflen));
extern struct protoent *__getprotobynumber_r __P ((int __proto,
struct protoent *__res_buf,
char *__buf, int __buflen));
extern struct protoent *getprotobynumber_r __P ((int __proto,
struct protoent *__result_buf,
char *__buf, int __buflen));
#endif /* reentrant */
__END_DECLS
/* This is nec'y to make this include file properly replace the sun version. */
#ifdef __GNU_LIBRARY__
#include <rpc/netdb.h>
#else
#ifdef sun
struct rpcent {
char *r_name; /* name of server for this rpc program */
char **r_aliases; /* alias list */
int r_number; /* rpc program number */
};
struct rpcent *getrpcbyname(), *getrpcbynumber(), *getrpcent();
#endif /* sun */
#endif /* __GNU_LIBRARY__ */
#endif /* !_NETDB_H_ */
#endif /* netdb.h */

View file

@ -39,14 +39,16 @@ struct rlimit
/* Put the soft and hard limits for RESOURCE in *RLIMITS.
Returns 0 if successful, -1 if not (and sets errno). */
int getrlimit __P ((enum __rlimit_resource __resource,
struct rlimit * __rlimits));
extern int __getrlimit __P ((enum __rlimit_resource __resource,
struct rlimit *__rlimits));
extern int getrlimit __P ((enum __rlimit_resource __resource,
struct rlimit *__rlimits));
/* Set the soft and hard limits for RESOURCE to *RLIMITS.
Only the super-user can increase hard limits.
Return 0 if successful, -1 if not (and sets errno). */
int setrlimit __P ((enum __rlimit_resource __resource,
struct rlimit * __rlimits));
extern int setrlimit __P ((enum __rlimit_resource __resource,
struct rlimit *__rlimits));
/* Whose usage statistics do you want? */
@ -110,8 +112,8 @@ struct rusage
/* Return resource usage information on process indicated by WHO
and put it in *USAGE. Returns 0 for success, -1 for failure. */
int __getrusage __P ((enum __rusage_who __who, struct rusage * __usage));
int getrusage __P ((enum __rusage_who __who, struct rusage * __usage));
extern int __getrusage __P ((enum __rusage_who __who, struct rusage *__usage));
extern int getrusage __P ((enum __rusage_who __who, struct rusage *__usage));
/* Function depends on CMD:
1 = Return the limit on the size of a file, in units of 512 bytes.
@ -120,8 +122,8 @@ int getrusage __P ((enum __rusage_who __who, struct rusage * __usage));
3 = Return the maximum possible address of the data segment.
4 = Return the maximum number of files that the calling process can open.
Returns -1 on errors. */
long int __ulimit __P ((int __cmd, long int __newlimit));
long int ulimit __P ((int __cmd, long int __newlimit));
extern long int __ulimit __P ((int __cmd, long int __newlimit));
extern long int ulimit __P ((int __cmd, long int __newlimit));
/* Priority limits. */
@ -151,4 +153,4 @@ extern int setpriority __P ((enum __priority_which __which, int __who,
__END_DECLS
#endif /* resource.h */
#endif /* resource.h */

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <limits.h>
#include <printf.h>
@ -29,9 +28,10 @@ printf_function **__printf_function_table;
/* Register FUNC to be called to format SPEC specifiers. */
int
DEFUN(register_printf_function, (spec, converter, arginfo),
int spec AND printf_function converter AND
printf_arginfo_function arginfo)
__register_printf_function (spec, converter, arginfo)
int spec;
printf_function converter;
printf_arginfo_function arginfo;
{
if (spec < 0 || spec > (int) UCHAR_MAX)
{
@ -45,3 +45,4 @@ DEFUN(register_printf_function, (spec, converter, arginfo),
return 0;
}
weak_alias (__register_printf_function, register_printf_function)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -19,17 +19,25 @@ Cambridge, MA 02139, USA. */
#include <stdarg.h>
#include <stdio.h>
/* The function `vscanf' is not defined in ISO C. Therefore we must
use the protected form here. In stdio it is called `__vscanf' and
in libio `_IO_vscanf'. */
#ifdef USE_IN_LIBIO
# define VSCANF _IO_vscanf
#else
# define VSCANF __vscanf
#endif
/* Read formatted input from stdin according to the format string FORMAT. */
/* VARARGS1 */
int
scanf (format)
const char *format;
scanf (const char *format, ...)
{
va_list arg;
int done;
va_start (arg, format);
done = vscanf (format, arg);
done = VSCANF (format, arg);
va_end (arg);
return done;

View file

@ -737,15 +737,15 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
const wchar_t *s2 = (const wchar_t *) string; \
mbstate_t mbstate; \
\
len = wcsrtombs (NULL, &s2, 0, &mbstate); \
len = __wcsrtombs (NULL, &s2, 0, &mbstate); \
if (len == (size_t) -1) \
/* Illegal wide-character string. */ \
return -1; \
\
s2 = (const wchar_t *) string; \
string = alloca (len + 1); \
(void) wcsrtombs (string, &s2, prec != -1 ? prec : UINT_MAX, \
&mbstate); \
(void) __wcsrtombs (string, &s2, prec != -1 ? prec : UINT_MAX, \
&mbstate); \
} \
\
if ((width -= len) < 0) \

View file

@ -439,6 +439,7 @@ extern int vfscanf __P ((FILE *__s, __const char *__format,
__gnuc_va_list __arg));
/* Read formatted input from stdin into argument list ARG. */
extern int __vscanf __P ((__const char *__format, __gnuc_va_list __arg));
extern int vscanf __P ((__const char *__format, __gnuc_va_list __arg));
/* Read formatted input from S into argument list ARG. */

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#include <stdio.h>
@ -26,7 +25,8 @@ Cambridge, MA 02139, USA. */
/* Read formatted input from stdin according to the format
string in FORMAT, using the argument list in ARG. */
int
DEFUN(vscanf, (format, arg), CONST char *format AND va_list arg)
__vscanf (const char *format, va_list arg)
{
return vfscanf (stdin, format, arg);
}
weak_alias (__vscanf, vscanf)

View file

@ -36,7 +36,7 @@ mbstowcs (wchar_t *pwcs, const char *s, size_t n)
mbstate_t save_shift = __no_r_state;
size_t written;
written = mbsrtowcs (pwcs, &s, n, &__no_r_state);
written = __mbsrtowcs (pwcs, &s, n, &__no_r_state);
/* Restore the old shift state. */
__no_r_state = save_shift;

View file

@ -45,7 +45,7 @@ mbtowc (wchar_t *pwc, const char *s, size_t n)
if (s == NULL)
return 1;
result = mbrtowc (pwc, s, n, &__no_r_state);
result = __mbrtowc (pwc, s, n, &__no_r_state);
/* The `mbrtowc' functions tell us more than we need. Fold the -1
and -2 result into -1. */

View file

@ -36,7 +36,7 @@ wcstombs (char *s, const wchar_t *pwcs, size_t n)
mbstate_t save_shift = __no_r_state;
size_t written;
written = wcsrtombs (s, &pwcs, n, &__no_r_state);
written = __wcsrtombs (s, &pwcs, n, &__no_r_state);
/* Restore the old shift state. */
__no_r_state = save_shift;

View file

@ -41,5 +41,5 @@ wctomb (char *s, wchar_t wchar)
if (s == NULL)
return 1;
return wcrtomb (s, wchar, &__no_r_state);
return __wcrtomb (s, wchar, &__no_r_state);
}

View file

@ -1,7 +1,5 @@
/* Routines for dealing with '\0' separated arg vectors.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Written by Miles Bader <miles@gnu.ai.mit.edu>
This program is free software; you can redistribute it and/or
@ -19,8 +17,8 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef __ARGZ_H__
#define __ARGZ_H__ 1
#define __ARGZ_H__ 1
#include <features.h>
#include <errno.h> /* Define error_t. */
@ -32,47 +30,51 @@ __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 *const argv[], char **argz, size_t *len));
error_t argz_create __P ((char *const argv[], char **argz, size_t *len));
extern error_t __argz_create __P ((char *const __argv[], char **__argz,
size_t *__len));
extern 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));
extern error_t __argz_create_sep __P ((__const char *__string, int __sep,
char **__argz, size_t *__len));
extern 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));
extern size_t __argz_count __P ((__const char *__argz, size_t __len));
extern 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 ((char *argz, size_t len, char **argv));
void argz_extract __P ((char *argz, size_t len, char **argv));
extern void __argz_extract __P ((char *__argz, size_t __len, char **__argv));
extern void argz_extract __P ((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));
extern void __argz_stringify __P ((char *__argz, size_t __len, int __sep));
extern 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));
extern error_t __argz_append __P ((char **__argz, size_t *__argz_len,
__const char *__buf, size_t _buf_len));
extern 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));
extern error_t __argz_add __P ((char **__argz, size_t *__argz_len,
__const char *__str));
extern 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));
extern void __argz_delete __P ((char **__argz, size_t *__argz_len,
char *__entry));
extern 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 +82,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));
extern error_t __argz_insert __P ((char **__argz, size_t *__argz_len,
char *__before, __const char *__entry));
extern 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
@ -106,25 +108,25 @@ extern char *argz_next __P ((char *argz, size_t __argz_len,
#if defined (__OPTIMIZE__) && __GNUC__ >= 2
extern inline char *
__argz_next (char *argz, size_t argz_len, const char *entry)
__argz_next (char *__argz, size_t __argz_len, const char *__entry)
{
if (entry)
if (__entry)
{
if (entry < argz + argz_len)
entry = strchr (entry, '\0') + 1;
if (__entry < __argz + __argz_len)
__entry = strchr (__entry, '\0') + 1;
return entry >= argz + argz_len ? NULL : (char *) entry;
return __entry >= __argz + __argz_len ? NULL : (char *) __entry;
}
else
if (argz_len > 0)
return argz;
if (__argz_len > 0)
return __argz;
else
return 0;
}
extern inline char *
argz_next (char *argz, size_t argz_len, const char *entry)
argz_next (char *__argz, size_t __argz_len, const char *__entry)
{
return __argz_next (argz, argz_len, entry);
return __argz_next (__argz, __argz_len, __entry);
}
#endif /* optimizing GCC2 */

View file

@ -1,7 +1,5 @@
/* Routines for dealing with '\0' separated environment vectors
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Written by Miles Bader <miles@gnu.ai.mit.edu>
This program is free software; you can redistribute it and/or
@ -19,7 +17,9 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef __ENVZ_H__
#define __ENVZ_H__
#define __ENVZ_H__ 1
#include <features.h>
#include <errno.h>
@ -28,13 +28,13 @@
#include <argz.h>
/* Returns a pointer to the entry in ENVZ for NAME, or 0 if there is none. */
char *envz_entry __P ((__const char *__envz, size_t __envz_len,
__const char *__name));
extern 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. */
char *envz_get __P ((__const char *__envz, size_t __envz_len,
__const char *__name));
extern char *envz_get __P ((__const char *__envz, size_t __envz_len,
__const char *__name));
/* Adds an entry for NAME with value VALUE to ENVZ & ENVZ_LEN. If an entry
with the same name already exists in ENVZ, it is removed. If VALUE is
@ -42,17 +42,17 @@ char *envz_get __P ((__const char *__envz, size_t __envz_len,
return NULL, although envz_entry will still return an entry; this is handy
because when merging with another envz, the null entry can override an
entry in the other one. Null entries can be removed with envz_strip (). */
error_t envz_add __P ((char **__envz, size_t *__envz_len,
__const char *__name, __const char *__value));
extern error_t envz_add __P ((char **__envz, size_t *__envz_len,
__const char *__name, __const char *__value));
/* Adds each entry in ENVZ2 to ENVZ & ENVZ_LEN, as if with envz_add(). If
OVERRIDE is true, then values in ENVZ2 will supercede those with the same
name in ENV, otherwise not. */
error_t envz_merge __P ((char **__envz, size_t *__envz_len,
__const char *__envz2, size_t __envz2_len,
int __override));
extern error_t envz_merge __P ((char **__envz, size_t *__envz_len,
__const char *__envz2, size_t __envz2_len,
int __override));
/* Remove null entries. */
void envz_strip __P ((char **__envz, size_t *__envz_len));
extern void envz_strip __P ((char **__envz, size_t *__envz_len));
#endif /* __ENVZ_H__ */

View file

@ -93,17 +93,6 @@ enum xdr_op {
#define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
* BYTES_PER_XDR_UNIT)
/*
* A xdrproc_t exists for each data type which is to be encoded or decoded.
*
* The second argument to the xdrproc_t is a pointer to an opaque pointer.
* The opaque pointer generally points to a structure of the data type
* to be decoded. If this pointer is 0, then the type routines should
* allocate dynamic storage of the appropriate size and return it.
* bool_t (*xdrproc_t)(XDR *, caddr_t *);
*/
typedef bool_t (*xdrproc_t)();
/*
* The XDR handle.
* Contains operation which is being applied to the stream,
@ -128,6 +117,17 @@ typedef struct {
int x_handy; /* extra private word */
} XDR;
/*
* A xdrproc_t exists for each data type which is to be encoded or decoded.
*
* The second argument to the xdrproc_t is a pointer to an opaque pointer.
* The opaque pointer generally points to a structure of the data type
* to be decoded. If this pointer is 0, then the type routines should
* allocate dynamic storage of the appropriate size and return it.
* bool_t (*xdrproc_t)(XDR *, caddr_t *);
*/
typedef bool_t (*xdrproc_t) __P ((XDR *, void *, ...));
/*
* Operations defined on a XDR handle
*

View file

@ -21,175 +21,209 @@ Cambridge, MA 02139, USA. */
enum
{
_PC_LINK_MAX,
#define _PC_LINK_MAX _PC_LINK_MAX
#define _PC_LINK_MAX _PC_LINK_MAX
_PC_MAX_CANON,
#define _PC_MAX_CANON _PC_MAX_CANON
#define _PC_MAX_CANON _PC_MAX_CANON
_PC_MAX_INPUT,
#define _PC_MAX_INPUT _PC_MAX_INPUT
#define _PC_MAX_INPUT _PC_MAX_INPUT
_PC_NAME_MAX,
#define _PC_NAME_MAX _PC_NAME_MAX
#define _PC_NAME_MAX _PC_NAME_MAX
_PC_PATH_MAX,
#define _PC_PATH_MAX _PC_PATH_MAX
#define _PC_PATH_MAX _PC_PATH_MAX
_PC_PIPE_BUF,
#define _PC_PIPE_BUF _PC_PIPE_BUF
#define _PC_PIPE_BUF _PC_PIPE_BUF
_PC_CHOWN_RESTRICTED,
#define _PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED
#define _PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED
_PC_NO_TRUNC,
#define _PC_NO_TRUNC _PC_NO_TRUNC
#define _PC_NO_TRUNC _PC_NO_TRUNC
_PC_VDISABLE,
_PC_SYNC_IO,
#define _PC_SYNC_IO _PC_SYNC_IO
#define _PC_SYNC_IO _PC_SYNC_IO
_PC_ASYNC_IO,
#define _PC_ASYNC_IO _PC_ASYNC_IO
#define _PC_ASYNC_IO _PC_ASYNC_IO
_PC_PRIO_IO,
#define _PC_PRIO_IO _PC_PRIO_IO
#define _PC_PRIO_IO _PC_PRIO_IO
_PC_SOCK_MAXBUF
#define _PC_SOCK_MAXBUF _PC_SOCK_MAXBUF
#define _PC_SOCK_MAXBUF _PC_SOCK_MAXBUF
};
/* Values for the argument to `sysconf'. */
enum
{
_SC_ARG_MAX,
#define _SC_ARG_MAX _SC_ARG_MAX
#define _SC_ARG_MAX _SC_ARG_MAX
_SC_CHILD_MAX,
#define _SC_CHILD_MAX _SC_CHILD_MAX
#define _SC_CHILD_MAX _SC_CHILD_MAX
_SC_CLK_TCK,
#define _SC_CLK_TCK _SC_CLK_TCK
#define _SC_CLK_TCK _SC_CLK_TCK
_SC_NGROUPS_MAX,
#define _SC_NGROUPS_MAX _SC_NGROUPS_MAX
#define _SC_NGROUPS_MAX _SC_NGROUPS_MAX
_SC_OPEN_MAX,
#define _SC_OPEN_MAX _SC_OPEN_MAX
#define _SC_OPEN_MAX _SC_OPEN_MAX
_SC_STREAM_MAX,
#define _SC_STREAM_MAX _SC_STREAM_MAX
#define _SC_STREAM_MAX _SC_STREAM_MAX
_SC_TZNAME_MAX,
#define _SC_TZNAME_MAX _SC_TZNAME_MAX
#define _SC_TZNAME_MAX _SC_TZNAME_MAX
_SC_JOB_CONTROL,
#define _SC_JOB_CONTROL _SC_JOB_CONTROL
#define _SC_JOB_CONTROL _SC_JOB_CONTROL
_SC_SAVED_IDS,
#define _SC_SAVED_IDS _SC_SAVED_IDS
#define _SC_SAVED_IDS _SC_SAVED_IDS
_SC_REALTIME_SIGNALS,
#define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS
#define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS
_SC_PRIORITY_SCHEDULING,
#define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING
#define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING
_SC_TIMERS,
#define _SC_TIMERS _SC_TIMERS
#define _SC_TIMERS _SC_TIMERS
_SC_ASYNCHRONOUS_IO,
#define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO
#define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO
_SC_PRIORITIZED_IO,
#define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO
#define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO
_SC_SYNCHRONIZED_IO,
#define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO
#define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO
_SC_FSYNC,
#define _SC_FSYNC _SC_FSYNC
#define _SC_FSYNC _SC_FSYNC
_SC_MAPPED_FILES,
#define _SC_MAPPED_FILES _SC_MAPPED_FILES
#define _SC_MAPPED_FILES _SC_MAPPED_FILES
_SC_MEMLOCK,
#define _SC_MEMLOCK _SC_MEMLOCK
#define _SC_MEMLOCK _SC_MEMLOCK
_SC_MEMLOCK_RANGE,
#define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE
#define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE
_SC_MEMORY_PROTECTION,
#define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION
#define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION
_SC_MESSAGE_PASSING,
#define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING
#define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING
_SC_SEMAPHORES,
#define _SC_SEMAPHORES _SC_SEMAPHORES
#define _SC_SEMAPHORES _SC_SEMAPHORES
_SC_SHARED_MEMORY_OBJECTS,
#define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS
_SC_AIO_LISTIO_MAX,
#define _SC_AIO_LIST_MAX _SC_AIO_LIST_MAX
#define _SC_AIO_LIST_MAX _SC_AIO_LIST_MAX
_SC_AIO_MAX,
#define _SC_AIO_MAX _SC_AIO_MAX
#define _SC_AIO_MAX _SC_AIO_MAX
_SC_AIO_PRIO_DELTA_MAX,
#define _SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX
#define _SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX
_SC_DELAYTIMER_MAX,
#define _SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX
#define _SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX
_SC_MQ_OPEN_MAX,
#define _SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX
#define _SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX
_SC_MQ_PRIO_MAX,
#define _SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX
#define _SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX
_SC_VERSION,
#define _SC_VERSION _SC_VERSION
#define _SC_VERSION _SC_VERSION
_SC_PAGESIZE,
#define _SC_PAGESIZE _SC_PAGESIZE
#define _SC_PAGE_SIZE _SC_PAGESIZE
#define _SC_PAGESIZE _SC_PAGESIZE
#define _SC_PAGE_SIZE _SC_PAGESIZE
_SC_RTSIG_MAX,
#define _SC_RTSIG_MAX _SC_RTSIG_MAX
#define _SC_RTSIG_MAX _SC_RTSIG_MAX
_SC_SEM_NSEMS_MAX,
#define _SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX
#define _SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX
_SC_SEM_VALUE_MAX,
#define _SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX
#define _SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX
_SC_SIGQUEUE_MAX,
#define _SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX
#define _SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX
_SC_TIMER_MAX,
#define _SC_TIMER_MAX _SC_TIMER_MAX
#define _SC_TIMER_MAX _SC_TIMER_MAX
/* Values for the argument to `sysconf'
corresponding to _POSIX2_* symbols. */
_SC_BC_BASE_MAX,
#define _SC_BC_BASE_MAX _SC_BC_BASE_MAX
#define _SC_BC_BASE_MAX _SC_BC_BASE_MAX
_SC_BC_DIM_MAX,
#define _SC_BC_DIM_MAX _SC_BC_DIM_MAX
#define _SC_BC_DIM_MAX _SC_BC_DIM_MAX
_SC_BC_SCALE_MAX,
#define _SC_BC_SCALE_MAX _SC_BC_SCALE_MAX
#define _SC_BC_SCALE_MAX _SC_BC_SCALE_MAX
_SC_BC_STRING_MAX,
#define _SC_BC_STRING_MAX _SC_BC_STRING_MAX
#define _SC_BC_STRING_MAX _SC_BC_STRING_MAX
_SC_COLL_WEIGHTS_MAX,
#define _SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX
#define _SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX
_SC_EQUIV_CLASS_MAX,
#define _SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX
#define _SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX
_SC_EXPR_NEST_MAX,
#define _SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX
#define _SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX
_SC_LINE_MAX,
#define _SC_LINE_MAX _SC_LINE_MAX
#define _SC_LINE_MAX _SC_LINE_MAX
_SC_RE_DUP_MAX,
#define _SC_RE_DUP_MAX _SC_RE_DUP_MAX
#define _SC_RE_DUP_MAX _SC_RE_DUP_MAX
_SC_CHARCLASS_NAME_MAX,
#define _SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX
#define _SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX
_SC_2_VERSION,
#define _SC_2_VERSION _SC_2_VERSION
#define _SC_2_VERSION _SC_2_VERSION
_SC_2_C_BIND,
#define _SC_2_C_BIND _SC_2_C_BIND
#define _SC_2_C_BIND _SC_2_C_BIND
_SC_2_C_DEV,
#define _SC_2_C_DEV _SC_2_C_DEV
#define _SC_2_C_DEV _SC_2_C_DEV
_SC_2_FORT_DEV,
#define _SC_2_FORT_DEV _SC_2_FORT_DEV
#define _SC_2_FORT_DEV _SC_2_FORT_DEV
_SC_2_FORT_RUN,
#define _SC_2_FORT_RUN _SC_2_FORT_RUN
#define _SC_2_FORT_RUN _SC_2_FORT_RUN
_SC_2_SW_DEV,
#define _SC_2_SW_DEV _SC_2_SW_DEV
#define _SC_2_SW_DEV _SC_2_SW_DEV
_SC_2_LOCALEDEF,
#define _SC_2_LOCALEDEF _SC_2_LOCALEDEF
#define _SC_2_LOCALEDEF _SC_2_LOCALEDEF
_SC_PII,
#define _SC_PII _SC_PII
#define _SC_PII _SC_PII
_SC_PII_XTI,
#define _SC_PII_XTI _SC_PII_XTI
#define _SC_PII_XTI _SC_PII_XTI
_SC_PII_SOCKET,
#define _SC_PII_SOCKET _SC_PII_SOCKET
#define _SC_PII_SOCKET _SC_PII_SOCKET
_SC_PII_INTERNET,
#define _SC_PII_INTERNET _SC_PII_INTERNET
#define _SC_PII_INTERNET _SC_PII_INTERNET
_SC_PII_OSI,
#define _SC_PII_OSI _SC_PII_OSI
#define _SC_PII_OSI _SC_PII_OSI
_SC_POLL,
#define _SC_POLL _SC_POLL
#define _SC_POLL _SC_POLL
_SC_SELECT,
#define _SC_SELECT _SC_SELECT
#define _SC_SELECT _SC_SELECT
_SC_UIO_MAXIOV,
#define _SC_UIO_MAXIOV _SC_UIO_MAXIOV
#define _SC_UIO_MAXIOV _SC_UIO_MAXIOV
_SC_PII_INTERNET_STREAM,
#define _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM
#define _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM
_SC_PII_INTERNET_DGRAM,
#define _SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM
#define _SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM
_SC_PII_OSI_COTS,
#define _SC_PII_OSI_COTS _SC_PII_OSI_COTS
#define _SC_PII_OSI_COTS _SC_PII_OSI_COTS
_SC_PII_OSI_CLTS,
#define _SC_PII_OSI_CLTS _SC_PII_OSI_CLTS
#define _SC_PII_OSI_CLTS _SC_PII_OSI_CLTS
_SC_PII_OSI_M,
#define _SC_PII_OSI_M _SC_PII_OSI_M
_SC_T_IOV_MAX
#define _SC_T_IOV_MAX _SC_T_IOV_MAX
#define _SC_PII_OSI_M _SC_PII_OSI_M
_SC_T_IOV_MAX,
#define _SC_T_IOV_MAX _SC_T_IOV_MAX
/* Values according to POSIX 1003.1c (POSIX threads). */
_SC_THREADS,
#define _SC_THREADS _SC_THREADS
_SC_THREAD_SAFE_FUNCTIONS,
#define _SC_THREAD_SAFE_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS
_SC_GETGR_R_SIZE_MAX,
#define _SC_GETGR_R_SIZE_MAX _SC_GETGR_R_SIZE_MAX
_SC_GETPW_R_SIZE_MAX,
#define _SC_GETPW_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX
_SC_LOGIN_NAME_MAX,
#define _SC_LOGIN_NAME_MAX _SC_LOGIN_NAME_MAX
_SC_TTY_NAME_MAX,
#define _SC_TTY_NAME_MAX _SC_TTY_NAME_MAX
_SC_THREAD_DESTRUCTOR_ITERATIONS,
#define _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS
_SC_THREAD_KEYS_MAX,
#define _SC_THREAD_KEYS_MAX _SC_THREAD_KEYS_MAX
_SC_THREAD_STACK_MIN,
#define _SC_THREAD_STACK_MIN _SC_THREAD_STACK_MIN
_SC_THREAD_THREADS_MAX,
#define _SC_THREAD_THREADS_MAX _SC_THREAD_THREADS_MAX
_SC_THREAD_ATTR_STACKADDR,
#define _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKADDR
_SC_THREAD_ATTR_STACKSIZE,
#define _SC_THREAD_ATTR_STACKSIZE _SC_THREAD_ATTR_STACKSIZE
_SC_THREAD_PRIORITY_SCHEDULING,
#define _SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIORITY_SCHEDULING
_SC_THREAD_PRIO_INHERIT,
#define _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_INHERIT
_SC_THREAD_PRIO_PROTECT,
#define _SC_THREAD_PRIO_PROTECT _SC_THREAD_PRIO_PROTECT
_SC_THREAD_PROCESS_SHARED,
#define _SC_THREAD_PROCESS_SHARED _SC_THREAD_PROCESS_SHARED
};
#ifdef __USE_POSIX2

View file

@ -1,5 +1,5 @@
/* Bit values for resource limits. 4.4 BSD/generic GNU version.
Copyright (C) 1994 Free Software Foundation, Inc.
Copyright (C) 1994, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -27,26 +27,36 @@ enum __rlimit_resource
{
/* Per-process CPU limit, in seconds. */
RLIMIT_CPU,
#define RLIMIT_CPU RLIMIT_CPU
/* Largest file that can be created, in bytes. */
RLIMIT_FSIZE,
#define RLIMIT_FSIZE RLIMIT_FSIZE
/* Maximum size of data segment, in bytes. */
RLIMIT_DATA,
#define RLIMIT_DATA RLIMIT_DATA
/* Maximum size of stack segment, in bytes. */
RLIMIT_STACK,
#define RLIMIT_STACK RLIMIT_STACK
/* Largest core file that can be created, in bytes. */
RLIMIT_CORE,
#define RLIMIT_CORE RLIMIT_CORE
/* Largest resident set size, in bytes.
This affects swapping; processes that are exceeding their
resident set size will be more likely to have physical memory
taken from them. */
RLIMIT_RSS,
#define RLIMIT_RSS RLIMIT_RSS
/* Locked-in-memory address space. */
RLIMIT_MEMLOCK,
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
/* Number of processes. */
RLIMIT_NPROC,
#define RLIMIT_NPROC RLIMIT_NPROC
/* Number of open files. */
RLIMIT_OFILE,
RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing. */
#define RLIMIT_OFILE RLIMIT_OFILE
#define RLIMIT_NOFILE RLIMIT_NOFILE
RLIMIT_NLIMITS, /* Number of limit flavors. */
RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */

View file

@ -112,7 +112,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if(_LIB_VERSION == _SVID_) {
(void) WRITE2("acos: DOMAIN error\n", 19);
}
@ -129,7 +129,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if(_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if(_LIB_VERSION == _SVID_) {
(void) WRITE2("asin: DOMAIN error\n", 19);
}
@ -148,7 +148,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if(_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if(_LIB_VERSION == _SVID_) {
(void) WRITE2("atan2: DOMAIN error\n", 20);
}
@ -168,7 +168,7 @@ static double zero = 0.0; /* used as const */
exc.retval = HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -185,7 +185,7 @@ static double zero = 0.0; /* used as const */
exc.retval = HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -202,7 +202,7 @@ static double zero = 0.0; /* used as const */
exc.retval = HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -216,7 +216,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -232,7 +232,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("y0: DOMAIN error\n", 17);
}
@ -251,7 +251,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("y0: DOMAIN error\n", 17);
}
@ -270,7 +270,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("y1: DOMAIN error\n", 17);
}
@ -289,7 +289,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("y1: DOMAIN error\n", 17);
}
@ -308,7 +308,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("yn: DOMAIN error\n", 17);
}
@ -327,7 +327,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("yn: DOMAIN error\n", 17);
}
@ -347,7 +347,7 @@ static double zero = 0.0; /* used as const */
exc.retval = HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -364,7 +364,7 @@ static double zero = 0.0; /* used as const */
exc.retval = HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("lgamma: SING error\n", 19);
}
@ -383,7 +383,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("log: SING error\n", 16);
}
@ -402,7 +402,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("log: DOMAIN error\n", 18);
}
@ -422,7 +422,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("log10: SING error\n", 18);
}
@ -442,7 +442,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("log10: DOMAIN error\n", 20);
}
@ -458,7 +458,7 @@ static double zero = 0.0; /* used as const */
exc.name = type < 100 ? "pow" : (type < 200 ? "powf" : "powl");
exc.retval = zero;
if (_LIB_VERSION != _SVID_) exc.retval = 1.0;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
(void) WRITE2("pow(0,0): DOMAIN error\n", 23);
errno = EDOM;
}
@ -480,7 +480,7 @@ static double zero = 0.0; /* used as const */
}
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -493,7 +493,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -509,7 +509,7 @@ static double zero = 0.0; /* used as const */
exc.retval = -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("pow(0,neg): DOMAIN error\n", 25);
}
@ -528,7 +528,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero/zero; /* X/Open allow NaN */
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("neg**non-integral: DOMAIN error\n", 32);
}
@ -548,7 +548,7 @@ static double zero = 0.0; /* used as const */
exc.retval = ( (x>zero) ? HUGE_VAL : -HUGE_VAL);
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -565,7 +565,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero/zero;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("sqrt: DOMAIN error\n", 19);
}
@ -585,7 +585,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero/zero;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("fmod: DOMAIN error\n", 20);
}
@ -603,7 +603,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero/zero;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("remainder: DOMAIN error\n", 24);
}
@ -620,7 +620,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero/zero;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("acosh: DOMAIN error\n", 20);
}
@ -637,7 +637,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero/zero;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("atanh: DOMAIN error\n", 20);
}
@ -654,7 +654,7 @@ static double zero = 0.0; /* used as const */
exc.retval = x/zero; /* sign(x)*inf */
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("atanh: SING error\n", 18);
}
@ -671,7 +671,7 @@ static double zero = 0.0; /* used as const */
exc.retval = x > zero ? HUGE_VAL : -HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -685,7 +685,7 @@ static double zero = 0.0; /* used as const */
exc.retval = __copysign(zero,x);
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -698,7 +698,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2(exc.name, 2);
(void) WRITE2(": TLOSS error\n", 14);
@ -715,7 +715,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2(exc.name, 2);
(void) WRITE2(": TLOSS error\n", 14);
@ -732,7 +732,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2(exc.name, 2);
(void) WRITE2(": TLOSS error\n", 14);
@ -749,7 +749,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2(exc.name, 2);
(void) WRITE2(": TLOSS error\n", 14);
@ -766,7 +766,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2(exc.name, 2);
(void) WRITE2(": TLOSS error\n", 14);
@ -783,7 +783,7 @@ static double zero = 0.0; /* used as const */
exc.retval = zero;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2(exc.name, 2);
(void) WRITE2(": TLOSS error\n", 14);
@ -804,7 +804,7 @@ static double zero = 0.0; /* used as const */
exc.retval = HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = ERANGE;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = ERANGE;
}
break;
@ -821,7 +821,7 @@ static double zero = 0.0; /* used as const */
exc.retval = HUGE_VAL;
if (_LIB_VERSION == _POSIX_)
errno = EDOM;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
if (_LIB_VERSION == _SVID_) {
(void) WRITE2("gamma: SING error\n", 18);
}
@ -838,7 +838,7 @@ static double zero = 0.0; /* used as const */
exc.retval = x;
if (_LIB_VERSION == _IEEE_ ||
_LIB_VERSION == _POSIX_) exc.retval = 1.0;
else if (!matherr(&exc)) {
else if (!__matherr(&exc)) {
errno = EDOM;
}
break;

View file

@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <stddef.h>
#include <stdlib.h>
@ -29,7 +28,7 @@ Cambridge, MA 02139, USA. */
/* Close the directory stream DIRP.
Return 0 if successful, -1 if not. */
int
DEFUN(closedir, (dirp), DIR *dirp)
__closedir (DIR *dirp)
{
error_t err;
@ -59,4 +58,4 @@ DEFUN(closedir, (dirp), DIR *dirp)
return 0;
}
weak_alias (__closedir, closedir)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1994 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1993, 1994, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <sys/resource.h>
#include <errno.h>
#include <hurd.h>
@ -25,8 +24,7 @@ Cambridge, MA 02139, USA. */
/* Put the soft and hard limits for RESOURCE in *RLIMITS.
Returns 0 if successful, -1 if not (and sets errno). */
int
DEFUN(getrlimit, (resource, rlimits),
enum __rlimit_resource resource AND struct rlimit *rlimits)
__getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
{
struct rlimit lim;
@ -44,3 +42,4 @@ DEFUN(getrlimit, (resource, rlimits),
return 0;
}
weak_alias (__getrlimit, getrlimit)

View file

@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <limits.h>
#include <stddef.h>
@ -34,7 +33,7 @@ Cambridge, MA 02139, USA. */
/* Open a directory stream on NAME. */
DIR *
DEFUN(opendir, (name), CONST char *name)
__opendir (const char *name)
{
DIR *dirp;
int fd;
@ -70,3 +69,4 @@ DEFUN(opendir, (name), CONST char *name)
return dirp;
}
weak_alias (__opendir, opendir)

View file

@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <limits.h>
#include <stddef.h>
@ -31,7 +30,7 @@ Cambridge, MA 02139, USA. */
/* Read a directory entry from DIRP. */
struct dirent *
DEFUN(readdir, (dirp), DIR *dirp)
__readdir (DIR *dirp)
{
struct dirent *dp;
@ -104,3 +103,4 @@ DEFUN(readdir, (dirp), DIR *dirp)
return dp;
}
weak_alias (__readdir, readdir)

View file

@ -286,10 +286,10 @@ __getcwd (buf, size)
mount_point = dotdev != thisdev;
/* Search for the last directory. */
dirstream = opendir (dotp);
dirstream = __opendir (dotp);
if (dirstream == NULL)
goto lose;
while ((d = readdir (dirstream)) != NULL)
while ((d = __readdir (dirstream)) != NULL)
{
if (d->d_name[0] == '.' &&
(d->d_name[1] == '\0' ||
@ -304,7 +304,7 @@ __getcwd (buf, size)
if (__lstat (name, &st) < 0)
{
int save = errno;
(void) closedir (dirstream);
(void) __closedir (dirstream);
errno = save;
goto lose;
}
@ -315,7 +315,7 @@ __getcwd (buf, size)
if (d == NULL)
{
int save = errno;
(void) closedir (dirstream);
(void) __closedir (dirstream);
errno = save;
goto lose;
}
@ -336,7 +336,7 @@ __getcwd (buf, size)
buf = realloc (path, size);
if (buf == NULL)
{
(void) closedir (dirstream);
(void) __closedir (dirstream);
free (path);
errno = ENOMEM; /* closedir might have changed it. */
return NULL;
@ -348,7 +348,7 @@ __getcwd (buf, size)
pathp -= namlen;
(void) memcpy (pathp, d->d_name, namlen);
*--pathp = '/';
(void) closedir (dirstream);
(void) __closedir (dirstream);
}
thisdev = dotdev;

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1993, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,17 +16,21 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <limits.h>
#include <unistd.h>
extern long int EXFUN(__sysconf, (int));
#include <sys/resource.h>
/* Return the maximum number of file descriptors
the current process could possibly have. */
int
DEFUN_VOID(__getdtablesize)
__getdtablesize (void)
{
return __sysconf (_SC_OPEN_MAX);
struct rlimit ru;
/* This should even work if `getrlimit' is not implemented. POSIX.1
does not define this function but we will generate a stub which
returns -1. */
return __getrlimit (RLIMIT_NOFILE, &ru) < 0 ? OPEN_MAX : ru.rlim_cur;
}
weak_alias (__getdtablesize, getdtablesize)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1994, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1994, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,29 +16,28 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <signal.h>
/* Set the mask of blocked signals to MASK, returning the old mask. */
int
DEFUN(__sigsetmask, (mask), int mask)
__sigsetmask (int mask)
{
register int sig;
sigset_t set, oset;
if (__sigemptyset(&set) < 0)
if (__sigemptyset (&set) < 0)
return -1;
if (sizeof (mask) == sizeof (set))
*(int *) &set = mask;
else
for (sig = 1; sig < NSIG; ++sig)
if ((mask & sigmask(sig)) &&
__sigaddset(&set, sig) < 0)
__sigaddset (&set, sig) < 0)
return -1;
if (sigprocmask(SIG_SETMASK, &set, &oset) < 0)
if (__sigprocmask (SIG_SETMASK, &set, &oset) < 0)
return -1;
mask = 0;
@ -46,8 +45,8 @@ DEFUN(__sigsetmask, (mask), int mask)
mask = *(int *) &oset;
else
for (sig = 1; sig < NSIG; ++sig)
if (__sigismember(&oset, sig))
mask |= sigmask(sig);
if (__sigismember (&oset, sig))
mask |= sigmask (sig);
return mask;
}

View file

@ -18,10 +18,12 @@ Cambridge, MA 02139, USA. */
#include <errno.h>
#include <limits.h>
#include <unistd.h>
#include <grp.h>
#include <pwd.h>
#include <stddef.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
extern int __getdtablesize __P ((void));
extern size_t __getpagesize __P ((void));
@ -480,6 +482,119 @@ __sysconf (name)
#else
return -1;
#endif
/* POSIX 1003.1c (POSIX Threads). */
case _SC_THREADS:
#ifdef _POSIX_THREADS
return 1;
#else
return -1;
#endif
case _SC_THREAD_SAFE_FUNCTIONS:
#ifdef _POSIX_THREAD_SAFE_FUNCTIONS
return 1;
#else
return -1;
#endif
case _SC_GETGR_R_SIZE_MAX:
#ifdef NSS_BUFLEN_GROUP
return NSS_BUFLEN_GROUP;
#else
return -1;
#endif
case _SC_GETPW_R_SIZE_MAX:
#ifdef NSS_BUFLEN_PASSWD
return NSS_BUFLEN_PASSWD;
#else
return -1;
#endif
case _SC_LOGIN_NAME_MAX:
#ifdef _POSIX_LOGIN_NAME_MAX
return _POSIX_LOGIN_NAME_MAX;
#else
return -1;
#endif
case _SC_TTY_NAME_MAX:
#ifdef _POSIX_TTY_NAME_MAX
return _POSIX_TTY_NAME_MAX;
#else
return -1;
#endif
case _SC_THREAD_DESTRUCTOR_ITERATIONS:
#ifdef PTHREAD_DESTRUCTOR_ITERATIONS
return PTHREAD_DESTRUCTOR_ITERATIONS;
#else
return -1;
#endif
case _SC_THREAD_KEYS_MAX:
#ifdef PTHREAD_KEYS_MAX
return PTHREAD_KEYS_MAX;
#else
return -1;
#endif
case _SC_THREAD_STACK_MIN:
#ifdef PTHREAD_STACK_MIN
return PTHREAD_STACK_MIN;
#else
return -1;
#endif
case _SC_THREAD_THREADS_MAX:
#ifdef PTHREAD_THREADS_MAX
return PTHREAD_THREADS_MAX;
#else
return -1;
#endif
case _SC_THREAD_ATTR_STACKADDR:
#ifdef _POSIX_THREAD_ATTR_STACKADDR
return 1;
#else
return -1;
#endif
case _SC_THREAD_ATTR_STACKSIZE:
#ifdef _POSIX_THREAD_ATTR_STACKSIZE
return 1;
#else
return -1;
#endif
case _SC_THREAD_PRIORITY_SCHEDULING:
#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING
return 1;
#else
return -1;
#endif
case _SC_THREAD_PRIO_INHERIT:
#ifdef _POSIX_THREAD_PRIO_INHERIT
return 1;
#else
return -1;
#endif
case _SC_THREAD_PRIO_PROTECT:
#ifdef _POSIX_THREAD_PRIO_PROTECT
return 1;
#else
return -1;
#endif
case _SC_THREAD_PROCESS_SHARED:
#ifdef _POSIX_THREAD_PROCESS_SHARED
return 1;
#else
return -1;
#endif
}
}

View file

@ -33,7 +33,7 @@ Cambridge, MA 02139, USA. */
/* Store at most BUFLEN character of the pathname of the terminal FD is
open on in BUF. Return 0 on success, -1 otherwise. */
int
ttyname_r (fd, buf, buflen)
__ttyname_r (fd, buf, buflen)
int fd;
char *buf;
int buflen;
@ -89,3 +89,4 @@ ttyname_r (fd, buf, buflen)
errno = save;
return -1;
}
weak_alias (__ttyname_r, ttyname_r)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <stddef.h>
#include <dirent.h>
@ -25,11 +24,11 @@ Cambridge, MA 02139, USA. */
/* Close the directory stream DIRP.
Return 0 if successful, -1 if not. */
int
DEFUN(closedir, (dirp), DIR *dirp)
__closedir (DIR *dirp)
{
errno = ENOSYS;
return(-1);
return -1;
}
weak_alias (__closedir, closedir)
stub_warning (closedir)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,19 +16,17 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <sys/resource.h>
#include <errno.h>
/* Put the soft and hard limits for RESOURCE in *RLIMITS.
Returns 0 if successful, -1 if not (and sets errno). */
int
DEFUN(getrlimit, (resource, rlimits),
enum __rlimit_resource resource AND struct rlimit *rlimits)
__getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
{
errno = ENOSYS;
return -1;
}
weak_alias (__getrlimit, getrlimit)
stub_warning (getrlimit)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <stddef.h>
#include <dirent.h>
@ -24,11 +23,11 @@ Cambridge, MA 02139, USA. */
/* Open a directory stream on NAME. */
DIR *
DEFUN(opendir, (name), CONST char *name)
__opendir (const char *name)
{
errno = ENOSYS;
return(NULL);
return NULL;
}
weak_alias (__opendir, opendir)
stub_warning (opendir)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,18 +16,17 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <stddef.h>
#include <dirent.h>
/* Read a directory entry from DIRP. */
struct dirent *
DEFUN(readdir, (dirp), DIR *dirp)
__readdir (DIR *dirp)
{
errno = ENOSYS;
return(NULL);
return NULL;
}
weak_alias (__readdir, readdir)
stub_warning (readdir)

View file

@ -128,6 +128,23 @@ __sysconf (name)
case _SC_2_FORT_DEV:
case _SC_2_SW_DEV:
case _SC_THREADS:
case _SC_THREAD_SAFE_FUNCTIONS:
case _SC_GETGR_R_SIZE_MAX:
case _SC_GETPW_R_SIZE_MAX:
case _SC_LOGIN_NAME_MAX:
case _SC_TTY_NAME_MAX:
case _SC_THREAD_DESTRUCTOR_ITERATIONS:
case _SC_THREAD_KEYS_MAX:
case _SC_THREAD_STACK_MIN:
case _SC_THREAD_THREADS_MAX:
case _SC_THREAD_ATTR_STACKADDR:
case _SC_THREAD_ATTR_STACKSIZE:
case _SC_THREAD_PRIORITY_SCHEDULING:
case _SC_THREAD_PRIO_INHERIT:
case _SC_THREAD_PRIO_PROTECT:
case _SC_THREAD_PROCESS_SHARED:
break;
}

View file

@ -1,5 +1,5 @@
/* Bit values for resource limits. SunOS 4 version.
Copyright (C) 1994 Free Software Foundation, Inc.
Copyright (C) 1994, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -27,22 +27,30 @@ enum __rlimit_resource
{
/* Per-process CPU limit, in seconds. */
RLIMIT_CPU,
#define RLIMIT_CPU RLIMIT_CPU
/* Largest file that can be created, in bytes. */
RLIMIT_FSIZE,
#define RLIMIT_FSIZE RLIMIT_FSIZE
/* Maximum size of data segment, in bytes. */
RLIMIT_DATA,
#define RLIMIT_DATA RLIMIT_DATA
/* Maximum size of stack segment, in bytes. */
RLIMIT_STACK,
#define RLIMIT_STACK RLIMIT_STACK
/* Largest core file that can be created, in bytes. */
RLIMIT_CORE,
#define RLIMIT_CORE RLIMIT_CORE
/* Largest resident set size, in bytes.
This affects swapping; processes that are exceeding their
resident set size will be more likely to have physical memory
taken from them. */
RLIMIT_RSS,
#define RLIMIT_RSS RLIMIT_RSS
/* Number of open files. */
RLIMIT_NOFILE,
RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */
#defin RLIMIT_NOFILE RLIMIT_NOFILE
#defin RLIMIT_OFILE RLIMIT_OFILE
RLIM_NLIMITS
};

View file

@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <stddef.h>
#include <stdlib.h>
@ -27,7 +26,7 @@ Cambridge, MA 02139, USA. */
/* Close the directory stream DIRP.
Return 0 if successful, -1 if not. */
int
DEFUN(closedir, (dirp), DIR *dirp)
__closedir (DIR *dirp)
{
int fd;
@ -40,12 +39,12 @@ DEFUN(closedir, (dirp), DIR *dirp)
__libc_lock_lock (dirp->lock);
fd = dirp->fd;
free ((PTR) dirp->data);
free ((void *) dirp->data);
__libc_lock_fini (dirp->lock);
free ((PTR) dirp);
free ((void *) dirp);
return __close (fd);
}
weak_alias (__closedir, closedir)

View file

@ -16,7 +16,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
@ -30,7 +29,7 @@ Cambridge, MA 02139, USA. */
The returned pointer, if not NULL, is good only until the next call. */
char *
DEFUN_VOID(getlogin)
getlogin (void)
{
char tty_pathname[2 + 2 * NAME_MAX];
char *real_tty_path = tty_pathname;
@ -44,7 +43,7 @@ DEFUN_VOID(getlogin)
if (d < 0)
return NULL;
if (ttyname_r (d, real_tty_path, sizeof (tty_pathname)) < 0)
if (__ttyname_r (d, real_tty_path, sizeof (tty_pathname)) < 0)
err = errno;
(void) close (d);
@ -57,9 +56,9 @@ DEFUN_VOID(getlogin)
real_tty_path += 5; /* Remove "/dev/". */
setutent_r (&utmp_data);
__setutent_r (&utmp_data);
strncpy (line.ut_line, real_tty_path, sizeof line.ut_line);
if (getutline_r (&line, &ut, &utmp_data) < 0)
if (__getutline_r (&line, &ut, &utmp_data) < 0)
{
if (errno == ESRCH)
/* The caller expects ENOENT if nothing is found. */
@ -69,7 +68,7 @@ DEFUN_VOID(getlogin)
else
result = ut->ut_line;
endutent_r (&utmp_data);
__endutent_r (&utmp_data);
return result;
}

View file

@ -31,7 +31,7 @@ Cambridge, MA 02139, USA. */
/* Open a directory stream on NAME. */
DIR *
opendir (const char *name)
__opendir (const char *name)
{
DIR *dirp;
struct stat statbuf;
@ -49,7 +49,7 @@ opendir (const char *name)
if (fd < 0)
return NULL;
if (fcntl (fd, F_SETFD, FD_CLOEXEC) < 0)
if (__fcntl (fd, F_SETFD, FD_CLOEXEC) < 0)
goto lose;
if (fstat (fd, &statbuf) < 0)
@ -95,3 +95,4 @@ opendir (const char *name)
return dirp;
}
weak_alias (__opendir, opendir)

View file

@ -30,7 +30,7 @@ Cambridge, MA 02139, USA. */
/* Read a directory entry from DIRP. */
struct dirent *
readdir (DIR *dirp)
__readdir (DIR *dirp)
{
struct dirent *dp;
@ -105,3 +105,4 @@ readdir (DIR *dirp)
return dp;
}
weak_alias (__readdir, readdir)

View file

@ -18,7 +18,7 @@ getgroups - getgroups 2 __getgroups getgroups
getitimer - getitimer 2 __getitimer getitimer
getpid - getpid 0 __getpid getpid
getpriority - getpriority 2 getpriority
getrlimit - getrlimit 2 getrlimit
getrlimit - getrlimit 2 __getrlimit getrlimit
getuid - getuid 0 __getuid getuid
ioctl - ioctl 3 __ioctl ioctl
kill - kill 2 __kill kill
@ -33,7 +33,7 @@ readlink - readlink 3 __readlink readlink
readv - readv 3 readv
reboot - reboot 1 reboot
rename - rename 2 rename
rmdir - rmdir 1 __rmdir rmdir
rmdir - rmdir 1 __rmdir rmdir
select - select 5 __select select
setdomain - setdomainname 2 setdomainname
setegid - setegid 1 __setegid setegid

View file

@ -0,0 +1,63 @@
/* Bit values for resource limits. Linux/Alpha version.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
/* These are the values for Linux/Alpha. */
/* Kinds of resource limit. */
enum __rlimit_resource
{
/* Per-process CPU limit, in seconds. */
RLIMIT_CPU,
#define RLIMIT_CPU RLIMIT_CPU
/* Largest file that can be created, in bytes. */
RLIMIT_FSIZE,
#define RLIMIT_FSIZE RLIMIT_FSIZE
/* Maximum size of data segment, in bytes. */
RLIMIT_DATA,
#define RLIMIT_DATA RLIMIT_DATA
/* Maximum size of stack segment, in bytes. */
RLIMIT_STACK,
#define RLIMIT_STACK RLIMIT_STACK
/* Largest core file that can be created, in bytes. */
RLIMIT_CORE,
#define RLIMIT_CORE RLIMIT_CORE
/* Largest resident set size, in bytes.
This affects swapping; processes that are exceeding their
resident set size will be more likely to have physical memory
taken from them. */
RLIMIT_RSS,
#define RLIMIT_RSS RLIMIT_RSS
/* Number of open files. */
RLIMIT_OFILE,
#define RLIMIT_OFILE RLIMIT_OFILE
RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing. */
#define RLIMIT_NOFILE RLIMIT_NOFILE
/* Address space limit. */
RLIMIT_AS,
#define RLIMIT_AS RLIMIT_AS
/* Number of processes. */
RLIMIT_NPROC,
#define RLIMIT_NPROC RLIMIT_NPROC
/* Locked-in-memory address space. */
RLIMIT_MEMLOCK,
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
RLIMIT_NLIMITS, /* Number of limit flavors. */
RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */
};

View file

@ -0,0 +1,63 @@
/* Bit values for resource limits. Linux/i386 version.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
/* These are the values for Linux/i386. */
/* Kinds of resource limit. */
enum __rlimit_resource
{
/* Per-process CPU limit, in seconds. */
RLIMIT_CPU,
#define RLIMIT_CPU RLIMIT_CPU
/* Largest file that can be created, in bytes. */
RLIMIT_FSIZE,
#define RLIMIT_FSIZE RLIMIT_FSIZE
/* Maximum size of data segment, in bytes. */
RLIMIT_DATA,
#define RLIMIT_DATA RLIMIT_DATA
/* Maximum size of stack segment, in bytes. */
RLIMIT_STACK,
#define RLIMIT_STACK RLIMIT_STACK
/* Largest core file that can be created, in bytes. */
RLIMIT_CORE,
#define RLIMIT_CORE RLIMIT_CORE
/* Largest resident set size, in bytes.
This affects swapping; processes that are exceeding their
resident set size will be more likely to have physical memory
taken from them. */
RLIMIT_RSS,
#define RLIMIT_RSS RLIMIT_RSS
/* Number of processes. */
RLIMIT_NPROC,
#define RLIMIT_NPROC RLIMIT_NPROC
/* Number of open files. */
RLIMIT_OFILE,
#define RLIMIT_OFILE RLIMIT_OFILE
RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing. */
#define RLIMIT_NOFILE RLIMIT_NOFILE
/* Locked-in-memory address space. */
RLIMIT_MEMLOCK,
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
/* Address space limit. */
RLIMIT_AS,
#define RLIMIT_AS RLIMIT_AS
RLIMIT_NLIMITS, /* Number of limit flavors. */
RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */
};

View file

@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */
#include <unistd.h>
#include <sysdep.h>
#include <fpu_control.h>
#include <linux/personality.h>
#include "init-first.h"
extern void __libc_init (int, char **, char **);
@ -28,6 +29,11 @@ extern void __libc_global_ctors (void);
/* The function is called from assembly stubs the compiler can't see. */
static void init (void *) __attribute__ ((unused));
extern int __libc_is_static;
#ifdef PIC
weak_extern (__libc_is_static)
#endif
static void
init (void *data)
{
@ -37,15 +43,36 @@ init (void *data)
char **argv = (char **)data + 1;
char **envp = &argv[argc + 1];
/* The `personality' system call takes one argument that chooses the
"personality", i.e. the set of system calls and such. Zero is the
native Linux value; we must make this call first thing to disable
emulation of some other system that might have been enabled by default
based on the executable format. */
__personality (0);
#ifdef PIC
if (&__libc_is_static != NULL)
#endif
{
#ifdef PIC
/* We must not call `personality' twice. */
if (__libc_is_static == 0)
#endif
{
/* The `personality' system call takes one argument that
chooses the "personality", i.e. the set of system calls
and such. We must make this call first thing to disable
emulation of some other system that might have been
enabled by default based on the executable format. */
__personality (PER_LINUX);
/* Set the FPU control word to the proper default value. */
__setfpucw (__fpu_control);
/* Set the FPU control word to the proper default value. */
__setfpucw (__fpu_control);
}
/* We set LIBC_IS_STATIC to a value > 0 for the static library
and < 0 for the shared library. This information might be
useful for the running program but it is mainly necessary for
the above `if' statement. */
#ifdef PIC
__libc_is_static = -1;
#else
__libc_is_static = 1;
#endif
}
__environ = envp;
__libc_init (argc, argv, envp);

View file

@ -1,4 +1,4 @@
/* Bit values for resource limits. Linux version.
/* Bit values for resource limits. Linux/m68k version.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -17,33 +17,43 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
/* These are the values for Linux. */
/* These are the values for Linux/m68k. */
/* Kinds of resource limit. */
enum __rlimit_resource
{
/* Per-process CPU limit, in seconds. */
RLIMIT_CPU,
#define RLIMIT_CPU RLIMIT_CPU
/* Largest file that can be created, in bytes. */
RLIMIT_FSIZE,
#define RLIMIT_FSIZE RLIMIT_FSIZE
/* Maximum size of data segment, in bytes. */
RLIMIT_DATA,
#define RLIMIT_DATA RLIMIT_DATA
/* Maximum size of stack segment, in bytes. */
RLIMIT_STACK,
#define RLIMIT_STACK RLIMIT_STACK
/* Largest core file that can be created, in bytes. */
RLIMIT_CORE,
#define RLIMIT_CORE RLIMIT_CORE
/* Largest resident set size, in bytes.
This affects swapping; processes that are exceeding their
resident set size will be more likely to have physical memory
taken from them. */
RLIMIT_RSS,
#define RLIMIT_RSS RLIMIT_RSS
/* Number of processes. */
RLIMIT_NPROC,
#define RLIMIT_NPROC RLIMIT_NPROC
/* Number of open files. */
RLIMIT_OFILE,
#define RLIMIT_OFILE RLIMIT_OFILE
RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing. */
#define RLIMIT_NOFILE RLIMIT_NOFILE
/* Locked-in-memory address space. */
RLIMIT_MEMLOCK,
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
RLIMIT_NLIMITS, /* Number of limit flavors. */
RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */

View file

@ -0,0 +1,65 @@
/* Bit values for resource limits. Linux/MIPS version.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
/* These are the values for Linux/MIPS. */
/* Kinds of resource limit. */
enum __rlimit_resource
{
/* Per-process CPU limit, in seconds. */
RLIMIT_CPU,
#define RLIMIT_CPU RLIMIT_CPU
/* Largest file that can be created, in bytes. */
RLIMIT_FSIZE,
#define RLIMIT_FSIZE RLIMIT_FSIZE
/* Maximum size of data segment, in bytes. */
RLIMIT_DATA,
#define RLIMIT_DATA RLIMIT_DATA
/* Maximum size of stack segment, in bytes. */
RLIMIT_STACK,
#define RLIMIT_STACK RLIMIT_STACK
/* Largest core file that can be created, in bytes. */
RLIMIT_CORE,
#define RLIMIT_CORE RLIMIT_CORE
/* Number of open files. */
RLIMIT_OFILE,
#define RLIMIT_OFILE RLIMIT_OFILE
RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing. */
#define RLIMIT_NOFILE RLIMIT_NOFILE
/* Address space limit. */
RLIMIT_AS,
#define RLIMIT_AS RLIMIT_AS
RLIMIT_VMEM = RLIMIT_AS,
#define RLIMIT_VMEM RLIMIT_VMEM
/* Largest resident set size, in bytes.
This affects swapping; processes that are exceeding their
resident set size will be more likely to have physical memory
taken from them. */
RLIMIT_RSS,
#define RLIMIT_RSS RLIMIT_RSS
/* Number of processes. */
RLIMIT_NPROC,
#define RLIMIT_NPROC RLIMIT_NPROC
/* Locked-in-memory address space. */
RLIMIT_MEMLOCK,
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
RLIMIT_NLIMITS, /* Number of limit flavors. */
RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */
};

View file

@ -1,2 +0,0 @@
/* Solaris uses sysconf ala POSIX.1. */
#include <sysdeps/posix/getdtsz.c>

View file

@ -25,9 +25,9 @@ headers := time.h sys/time.h sys/timeb.h timebits.h
distribute := tzfile.h private.h scheck.c ialloc.c yearistype
extra-objs = scheck.o ialloc.o $(tzfiles:%=z.%)
routines := offtime asctime clock ctime difftime gmtime \
localtime mktime strftime time tzset tzfile \
gettimeofday settimeofday adjtime \
routines := offtime asctime clock ctime ctime_r difftime \
gmtime localtime mktime strftime time tzset \
tzfile gettimeofday settimeofday adjtime \
getitimer setitimer \
stime dysize timegm ftime \
strptime

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1995 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1993, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,28 +16,34 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <ansidecl.h>
#include "../locale/localeinfo.h"
#include <errno.h>
#include <stdio.h>
#include <time.h>
static const char format[] = "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n";
static char result[ 3+1+ 3+1+20+1+20+1+20+1+20+1+20+1 + 1];
/* Returns a string of the form "Day Mon dd hh:mm:ss yyyy\n"
which is the representation of TP in that form. */
char *
DEFUN(asctime, (tp), CONST struct tm *tp)
asctime (const struct tm *tp)
{
static const char format[] = "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n";
static char result[ 3+1+ 3+1+20+1+20+1+20+1+20+1+20+1 + 1];
return __asctime_r (tp, result);
}
char *
__asctime_r (const struct tm *tp, char *buf)
{
if (tp == NULL)
{
errno = EINVAL;
return NULL;
}
if (sprintf (result, format,
if (sprintf (buf, format,
(tp->tm_wday < 0 || tp->tm_wday >= 7 ?
"???" : _NL_CURRENT (LC_TIME, ABDAY_1 + tp->tm_wday)),
(tp->tm_mon < 0 || tp->tm_mon >= 12 ?
@ -46,5 +52,6 @@ DEFUN(asctime, (tp), CONST struct tm *tp)
tp->tm_sec, 1900 + tp->tm_year) < 0)
return NULL;
return result;
return buf;
}
weak_alias (__asctime_r, asctime_r)

View file

@ -1,4 +1,7 @@
/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
/* ctime_r - return in BUF representation of time T in form of asctime
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
@ -15,23 +18,13 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* On Linux we must not ask __getdtablesize for te value for _SC_OPEN_MAX
because this would mean an endless loop. */
#include <time.h>
#include <limits.h>
#include <unistd.h>
extern long int __default_sysconf (int name);
long int
__sysconf (int name)
/* Return a string as returned by asctime which is the representation
of *T in that form. Reentrant version. */
char *
ctime_r (const time_t *t, char *buf)
{
if (name == _SC_OPEN_MAX)
return OPEN_MAX;
return __default_sysconf (name);
struct tm tm;
return asctime_r (localtime_r (t, &tm), buf);
}
#define __sysconf __default_sysconf
#include <sysdeps/posix/sysconf.c>

View file

@ -177,7 +177,7 @@ extern struct tm *__localtime_r __P ((__const time_t *__timer,
struct tm *__tp));
extern struct tm *localtime_r __P ((__const time_t *__timer,
struct tm *__tp));
#endif
#endif /* reentrant */
/* Compute the `struct tm' representation of *T,
offset OFFSET seconds east of UTC,
@ -193,6 +193,18 @@ extern char *asctime __P ((__const struct tm *__tp));
/* Equivalent to `asctime(localtime(timer))'. */
extern char *ctime __P ((__const time_t *__timer));
#ifdef __USE_REENTRANT
/* Reentrant versions of the above functions. */
/* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n"
that is the representation of TP in this format. */
extern char *__asctime_r __P ((__const struct tm *__tp, char *__buf));
extern char *asctime_r __P ((__const struct tm *__tp, char *__buf));
/* Equivalent to `asctime_r(localtime_r(timer, *TMP*), buf)'. */
extern char *ctime_r __P ((__const time_t *__timer, char *__buf));
#endif /* reentrant */
/* Defined in localtime.c. */
extern char *__tzname[2]; /* Current timezone names. */

View file

@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA. */
static mbstate_t internal;
size_t
mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
__mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
{
size_t used = 0;
@ -128,3 +128,4 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
return (size_t) -2;
}
weak_alias (__mbrtowc, mbrtowc)

View file

@ -30,7 +30,7 @@ Boston, MA 02111-1307, USA. */
static mbstate_t internal;
size_t
mbsrtowcs (dst, src, len, ps)
__mbsrtowcs (dst, src, len, ps)
wchar_t *dst;
const char **src;
size_t len;
@ -135,3 +135,4 @@ mbsrtowcs (dst, src, len, ps)
return written;
}
weak_alias (__mbsrtowcs, mbsrtowcs)

View file

@ -151,10 +151,13 @@ extern int mbsinit __P ((__const mbstate_t *__ps));
/* Write wide character representation of multibyte character pointed
to by S to PWC. */
extern size_t __mbrtowc __P ((wchar_t *__pwc, __const char *__s, size_t __n,
mbstate_t *__p));
extern size_t mbrtowc __P ((wchar_t *__pwc, __const char *__s, size_t __n,
mbstate_t *__p));
/* Write multibyte representation of wide character WC to S. */
extern size_t __wcrtomb __P ((char *__s, wchar_t __wc, mbstate_t *__ps));
extern size_t wcrtomb __P ((char *__s, wchar_t __wc, mbstate_t *__ps));
/* Return number of bytes in multibyte character pointed to by S. */
@ -165,16 +168,20 @@ extern size_t mbrlen __P ((__const char *__s, size_t __n, mbstate_t *__ps));
&& (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7))
/* Define inline function as optimization. */
extern __inline size_t mbrlen (__const char *s, size_t n, mbstate_t *ps)
{ return ps != NULL ? mbrtowc (NULL, s, n, ps) : __mbrlen (s, n, NULL); }
{ return ps != NULL ? __mbrtowc (NULL, s, n, ps) : __mbrlen (s, n, NULL); }
#endif
/* Write wide character representation of multibyte character string
SRC to DST. */
extern size_t __mbsrtowcs __P ((wchar_t *__dst, __const char **__src,
size_t __len, mbstate_t *__ps));
extern size_t mbsrtowcs __P ((wchar_t *__dst, __const char **__src,
size_t __len, mbstate_t *__ps));
/* Write multibyte character representation of wide character string
SRC to DST. */
extern size_t __wcsrtombs __P ((char *__dst, __const wchar_t **__src,
size_t __len, mbstate_t *__ps));
extern size_t wcsrtombs __P ((char *__dst, __const wchar_t **__src,
size_t __len, mbstate_t *__ps));

View file

@ -38,7 +38,7 @@ static const unsigned char encoding_byte[] =
static mbstate_t internal;
size_t
wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
__wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
{
char fake[1];
size_t written = 0;
@ -89,3 +89,4 @@ wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
return written;
}
weak_alias (__wcrtomb, wcrtomb)

View file

@ -40,7 +40,7 @@ static const unsigned char encoding_byte[] =
static mbstate_t internal;
size_t
wcsrtombs (dst, src, len, ps)
__wcsrtombs (dst, src, len, ps)
char *dst;
const wchar_t **src;
size_t len;
@ -122,3 +122,4 @@ wcsrtombs (dst, src, len, ps)
return written;
}
weak_alias (__wcsrtombs, wcsrtombs)