2000-02-27  Ulrich Drepper  <drepper@redhat.com>

	* conform/conformtest.pl (@headers): Add wordexp.h, wctype.h, wchar.h,
	varargs.h, utmpx.h, utime.h, unistd.h, ulimit.h, ucontext.h, time.h,
	termios.h, tar.h, sys/wait.h, sys/uio.h, sys/types.h, sys/times.h,
	sys/timeb.h, sys/time.h, sys/statvfs.h, sys/stat.h, sys/shm.h,
	sys/sem.h, and sys/resource.h.
	Implement handling of allow-header.
	* conform/data/fcntl.h-data: Correct various bugs.
	* conform/data/fnmatch.h-data: Likewise.
	* conform/data/math.h-data: Likewise.
	* conform/data/ndbm.h-data: Likewise.
	* conform/data/nl_types.h-data: Likewise.
	* conform/data/poll.h-data: Likewise.
	* conform/data/pthread.h-data: Likewise.
	* conform/data/semaphore.h-data: Likewise.
	* conform/data/setjmp.h-data: Likewise.
	* conform/data/signal.h-data: Likewise.
	* conform/data/stdarg.h-data: Likewise.
	* conform/data/stddef.h-data: Likewise.
	* conform/data/stdio.h-data: Likewise.
	* conform/data/stdlib.h-data: Likewise.
	* conform/data/string.h-data: Likewise.
	* conform/data/strings.h-data: Likewise.
	* conform/data/stropts.h-data: Likewise.
	* conform/data/syslog.h-data: Likewise.
	* conform/data/sys/ipc.h-data: Likewise.
	* conform/data/sys/mman.h-data: Likewise.
	* conform/data/sys/msg.h-data: Likewise.
	* conform/data/tar.h-data: New file.
	* conform/data/termios.h-data: New file.
	* conform/data/time.h-data: New file.
	* conform/data/ucontext.h-data: New file.
	* conform/data/ulimit.h-data: New file.
	* conform/data/unistd.h-data: New file.
	* conform/data/utime.h-data: New file.
	* conform/data/utmpx.h-data: New file.
	* conform/data/varargs.h-data: New file.
	* conform/data/wchar.h-data: New file.
	* conform/data/wctype.h-data: New file.
	* conform/data/wordexp.h-data: New file.
	* conform/data/sys/resource.h-data: New file.
	* conform/data/sys/sem.h-data: New file.
	* conform/data/sys/shm.h-data: New file.
	* conform/data/sys/stat.h-data: New file.
	* conform/data/sys/statvfs.h-data: New file.
	* conform/data/sys/time.h-data: New file.
	* conform/data/sys/timeb.h-data: New file.
	* conform/data/sys/times.h-data: New file.
	* conform/data/sys/types.h-data: New file.
	* conform/data/sys/uio.h-data: New file.
	* conform/data/sys/wait.h-data: New file.

	* grp/grp.h (getgrent_r): Declare only if __USE_GNU.

	* include/sys/time.h (__itimes): Fix type of second parameter.

	* io/sys/stat.h (S_IFLNK): Define also if __USE_XOPEN.
	(S_ISVTX): Likewise.

	* io/sys/statvfs.h: Define fsblkcnt_t and fsfilcnt_t.

	* locale/langindo.h: Make ERA_YEAR, INT_CURR_SYMBOL, CURRENCY_SYMBOL,
	MON_DECIMAL_POINT, MON_THOUSANDS_SEP, MON_GROUPING, POSITIVE_SIGN,
	NEGATIVE_SIGN, INT_FRAC_DIGITS, FRAC_DIGITS, P_CS_PRECEDES,
	P_SEP_BY_SPACE, N_CS_PRECEDES, N_SEP_BY_SPACE, P_SIGN_POSN,
	N_SIGN_POSN, DECIMAL_POINT, THOUSANDS_SEP, GROUPING, YESEXPR,
	NOEXPR, YESSTR, and NOSTR only available if __USE_GNU.

	* math/bits/mathcalls.h: Don't declare tgamma and scalbn if only
	__USE_XOPEN.

	* posix/unistd.h: Don't define ptrdiff_t.
	(sbrk): Correct type of parameter.
	* sysdeps/generic/sbrk.c: Likewise.
	* sysdeps/mach/hurd/sbrk.c: Likewise.

	* posix/sys/types.h: Allow id_t, suseconds_t, fsblkcnt_t, and
	fsfilcnt_t being defined elsewhere.

	* resource/sys/resource.h: Define id_t.
	If __USE_XOPEN use int for type of first parameter if getrlimit,
	getrlimit64, setrlimit, setrlimit64, getrusage, getpriority, and
	setpriority.
	* sysdeps/generic/getpriority.c: Fix type of second parameter.
	* sysdeps/generic/setpriority.c: Likewise.
	* sysdeps/mach/hurd/getpriority.c: Likewise.
	* sysdeps/mach/hurd/setpriority.c: Likewise.
	* sysdeps/unix/sysv/irix4/getpriority.c: Likewise.
	* sysdeps/unix/sysv/irix4/setpriority.c: Likewise.
	* sysdeps/unix/sysv/linux/getpriority.c: Likewise.

	* sysdeps/generic/utimes.c: Fix parameter of third parameter.
	* sysdeps/mach/hurd/utimes.c: Likewise.
	* sysdeps/posix/utimes.c: Likewise.

	* sysdeps/generic/bits/shm.h: Define shmatt_t type and use it in
	struct shmid_ds definition.
	* sysdeps/gnu/bits/shm.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/shm.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/shm.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/shm.h: Likewise.

	* sysvipc/sys/shm.h: Define time_t.

	* sysvipc/sys/sem.h (struct sembuf): Make sem_num field unsigned.

	* sysdeps/gnu/bits/sem.h: Rename anonymous type struct sem_queue and
	struct sem_undo to struct __sem_queue and struct __sem_undo resp.

	* time/time.h: Define suseconds_t if not already done.

	* sysdeps/unix/sysv/linux/bits/statvfs.h: Rename f_spare to __f_spare.
	* sysdeps/unix/sysv/linux/fstatvfs64.c: Likewise.
	* sysdeps/unix/sysv/linux/statvfs64.c: Likewise.
	* sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise.

	* intl/bindtextdom.c: Use rwlock to avoid surprising results in
	multithreaded applications.
	* intl/dcigettext.c: Likewise.
	* intl/textdomain.c: Likewise.
	* intl/*.c: Update copyright.
	* sysdeps/generic/bits/libc-lock.h: Define __libc_rwlock_* stubs.

2000-02-27  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/configure.in: Treat also "/usr/" as
	prefix especially.

2000-02-27  Ulrich Drepper  <drepper@redhat.com>

	* po/de.po: Update from translation team.
	* po/ko.po: Likewise.
This commit is contained in:
Ulrich Drepper 2000-02-28 05:08:01 +00:00
parent 919e98fa39
commit 0ed99ce46d
111 changed files with 3110 additions and 977 deletions

134
ChangeLog
View File

@ -1,3 +1,137 @@
2000-02-27 Ulrich Drepper <drepper@redhat.com>
* conform/conformtest.pl (@headers): Add wordexp.h, wctype.h, wchar.h,
varargs.h, utmpx.h, utime.h, unistd.h, ulimit.h, ucontext.h, time.h,
termios.h, tar.h, sys/wait.h, sys/uio.h, sys/types.h, sys/times.h,
sys/timeb.h, sys/time.h, sys/statvfs.h, sys/stat.h, sys/shm.h,
sys/sem.h, and sys/resource.h.
Implement handling of allow-header.
* conform/data/fcntl.h-data: Correct various bugs.
* conform/data/fnmatch.h-data: Likewise.
* conform/data/math.h-data: Likewise.
* conform/data/ndbm.h-data: Likewise.
* conform/data/nl_types.h-data: Likewise.
* conform/data/poll.h-data: Likewise.
* conform/data/pthread.h-data: Likewise.
* conform/data/semaphore.h-data: Likewise.
* conform/data/setjmp.h-data: Likewise.
* conform/data/signal.h-data: Likewise.
* conform/data/stdarg.h-data: Likewise.
* conform/data/stddef.h-data: Likewise.
* conform/data/stdio.h-data: Likewise.
* conform/data/stdlib.h-data: Likewise.
* conform/data/string.h-data: Likewise.
* conform/data/strings.h-data: Likewise.
* conform/data/stropts.h-data: Likewise.
* conform/data/syslog.h-data: Likewise.
* conform/data/sys/ipc.h-data: Likewise.
* conform/data/sys/mman.h-data: Likewise.
* conform/data/sys/msg.h-data: Likewise.
* conform/data/tar.h-data: New file.
* conform/data/termios.h-data: New file.
* conform/data/time.h-data: New file.
* conform/data/ucontext.h-data: New file.
* conform/data/ulimit.h-data: New file.
* conform/data/unistd.h-data: New file.
* conform/data/utime.h-data: New file.
* conform/data/utmpx.h-data: New file.
* conform/data/varargs.h-data: New file.
* conform/data/wchar.h-data: New file.
* conform/data/wctype.h-data: New file.
* conform/data/wordexp.h-data: New file.
* conform/data/sys/resource.h-data: New file.
* conform/data/sys/sem.h-data: New file.
* conform/data/sys/shm.h-data: New file.
* conform/data/sys/stat.h-data: New file.
* conform/data/sys/statvfs.h-data: New file.
* conform/data/sys/time.h-data: New file.
* conform/data/sys/timeb.h-data: New file.
* conform/data/sys/times.h-data: New file.
* conform/data/sys/types.h-data: New file.
* conform/data/sys/uio.h-data: New file.
* conform/data/sys/wait.h-data: New file.
* grp/grp.h (getgrent_r): Declare only if __USE_GNU.
* include/sys/time.h (__itimes): Fix type of second parameter.
* io/sys/stat.h (S_IFLNK): Define also if __USE_XOPEN.
(S_ISVTX): Likewise.
* io/sys/statvfs.h: Define fsblkcnt_t and fsfilcnt_t.
* locale/langindo.h: Make ERA_YEAR, INT_CURR_SYMBOL, CURRENCY_SYMBOL,
MON_DECIMAL_POINT, MON_THOUSANDS_SEP, MON_GROUPING, POSITIVE_SIGN,
NEGATIVE_SIGN, INT_FRAC_DIGITS, FRAC_DIGITS, P_CS_PRECEDES,
P_SEP_BY_SPACE, N_CS_PRECEDES, N_SEP_BY_SPACE, P_SIGN_POSN,
N_SIGN_POSN, DECIMAL_POINT, THOUSANDS_SEP, GROUPING, YESEXPR,
NOEXPR, YESSTR, and NOSTR only available if __USE_GNU.
* math/bits/mathcalls.h: Don't declare tgamma and scalbn if only
__USE_XOPEN.
* posix/unistd.h: Don't define ptrdiff_t.
(sbrk): Correct type of parameter.
* sysdeps/generic/sbrk.c: Likewise.
* sysdeps/mach/hurd/sbrk.c: Likewise.
* posix/sys/types.h: Allow id_t, suseconds_t, fsblkcnt_t, and
fsfilcnt_t being defined elsewhere.
* resource/sys/resource.h: Define id_t.
If __USE_XOPEN use int for type of first parameter if getrlimit,
getrlimit64, setrlimit, setrlimit64, getrusage, getpriority, and
setpriority.
* sysdeps/generic/getpriority.c: Fix type of second parameter.
* sysdeps/generic/setpriority.c: Likewise.
* sysdeps/mach/hurd/getpriority.c: Likewise.
* sysdeps/mach/hurd/setpriority.c: Likewise.
* sysdeps/unix/sysv/irix4/getpriority.c: Likewise.
* sysdeps/unix/sysv/irix4/setpriority.c: Likewise.
* sysdeps/unix/sysv/linux/getpriority.c: Likewise.
* sysdeps/generic/utimes.c: Fix parameter of third parameter.
* sysdeps/mach/hurd/utimes.c: Likewise.
* sysdeps/posix/utimes.c: Likewise.
* sysdeps/generic/bits/shm.h: Define shmatt_t type and use it in
struct shmid_ds definition.
* sysdeps/gnu/bits/shm.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/shm.h: Likewise.
* sysdeps/unix/sysv/linux/bits/shm.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/shm.h: Likewise.
* sysvipc/sys/shm.h: Define time_t.
* sysvipc/sys/sem.h (struct sembuf): Make sem_num field unsigned.
* sysdeps/gnu/bits/sem.h: Rename anonymous type struct sem_queue and
struct sem_undo to struct __sem_queue and struct __sem_undo resp.
* time/time.h: Define suseconds_t if not already done.
* sysdeps/unix/sysv/linux/bits/statvfs.h: Rename f_spare to __f_spare.
* sysdeps/unix/sysv/linux/fstatvfs64.c: Likewise.
* sysdeps/unix/sysv/linux/statvfs64.c: Likewise.
* sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise.
* intl/bindtextdom.c: Use rwlock to avoid surprising results in
multithreaded applications.
* intl/dcigettext.c: Likewise.
* intl/textdomain.c: Likewise.
* intl/*.c: Update copyright.
* sysdeps/generic/bits/libc-lock.h: Define __libc_rwlock_* stubs.
2000-02-27 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/configure.in: Treat also "/usr/" as
prefix especially.
2000-02-27 Ulrich Drepper <drepper@redhat.com>
* po/de.po: Update from translation team.
* po/ko.po: Likewise.
2000-02-25 Andreas Jaeger <aj@suse.de>
* math/Versions: Move fe* function to GLIBC_2.2. The patches have

View File

@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. Stub version.
Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1999, 2000 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
@ -29,9 +29,11 @@
begins with a `*'), because its storage size will not be known outside
of libc. */
#define __libc_lock_define(CLASS,NAME)
#define __libc_rwlock_define(CLASS,NAME)
/* Define an initialized lock variable NAME with storage class CLASS. */
#define __libc_lock_define_initialized(CLASS,NAME)
#define __libc_rwlock_define_initialized(CLASS,NAME)
/* Define an initialized recursive lock variable NAME with storage
class CLASS. */
@ -40,6 +42,7 @@
/* Initialize the named lock variable, leaving it in a consistent, unlocked
state. */
#define __libc_lock_init(NAME)
#define __libc_rwlock_init(NAME)
/* Same as last but this time we initialize a recursive mutex. */
#define __libc_lock_init_recursive(NAME)
@ -48,24 +51,30 @@
used again until __libc_lock_init is called again on it. This must be
called on a lock variable before the containing storage is reused. */
#define __libc_lock_fini(NAME)
#define __libc_rwlock_fini(NAME)
/* Finalize recursive named lock. */
#define __libc_lock_fini_recursive(NAME)
/* Lock the named lock variable. */
#define __libc_lock_lock(NAME)
#define __libc_rwlock_rdlock(NAME)
#define __libc_rwlock_wrlock(NAME)
/* Lock the recursive named lock variable. */
#define __libc_lock_lock_recursive(NAME)
/* Try to lock the named lock variable. */
#define __libc_lock_trylock(NAME) 0
#define __libc_rwlock_tryrdlock(NAME) 0
#define __libc_rwlock_trywrlock(NAME) 0
/* Try to lock the recursive named lock variable. */
#define __libc_lock_trylock_recursive(NAME) 0
/* Unlock the named lock variable. */
#define __libc_lock_unlock(NAME)
#define __libc_rwlock_unlock(NAME)
/* Unlock the recursive named lock variable. */
#define __libc_lock_unlock_recursive(NAME)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996, 1997, 2000 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
@ -20,7 +20,7 @@
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
/* Flags for `shmat'. */
#define SHM_RDONLY 010000 /* attach read-only else read-write */
@ -32,6 +32,9 @@
#define SHM_UNLOCK 12 /* unlock segment (root only) */
/* Type to count number of attaches. */
typedef unsigned short int shmatt_t;
/* Data structure describing a set of semaphores. */
struct shmid_ds
{
@ -42,5 +45,5 @@ struct shmid_ds
__time_t sem_ctime; /* time of last change by shmctl() */
__pid_t shm_cpid; /* pid of creator */
__pid_t shm_lpid; /* pid of last shmop */
unsigned short int shm_nattch; /* number of current attaches */
shmatt_t shm_nattch; /* number of current attaches */
};

View File

@ -4,7 +4,12 @@ $CC = "gcc";
$CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500";
# List of the headers we are testing.
@headers = ("sys/msg.h", "sys/mman.h", "sys/ipc.h", "syslog.h",
@headers = ("wordexp.h", "wctype.h", "wchar.h", "varargs.h", "utmpx.h",
"utime.h", "unistd.h", "ulimit.h", "ucontext.h", "time.h",
"termios.h", "tar.h", "sys/wait.h", "sys/uio.h", "sys/types.h",
"sys/times.h", "sys/timeb.h", "sys/time.h", "sys/statvfs.h",
"sys/stat.h", "sys/shm.h", "sys/sem.h", "sys/resource.h",
"sys/msg.h", "sys/mman.h", "sys/ipc.h", "syslog.h",
"stropts.h", "strings.h", "string.h", "stdlib.h", "stdio.h",
"stddef.h", "stdarg.h", "signal.h", "setjmp.h", "semaphore.h",
"search.h", "sched.h", "regex.h", "pwd.h", "pthread.h",
@ -240,6 +245,7 @@ while ($#headers >= 0) {
my($fnamebase) = "$tmpdir/$hf-test";
my($missing);
my(@allow) = ();
my(@allowheader) = ();
my($prepend) = $mustprepend{$h};
printf ("Testing <$h>\n");
@ -539,6 +545,10 @@ while ($#headers >= 0) {
my($pattern) = $1;
push @allow, $pattern;
next control;
} elsif (/^allow-header *(.*)/) {
my($pattern) = $1;
push @allowheader, $pattern;
next control;
} else {
# printf ("line is `%s'\n", $_);
next control;
@ -548,6 +558,51 @@ while ($#headers >= 0) {
}
close (CONTROL);
# Read the data files for the header files which are allowed to be included.
while ($#allowheader >= 0) {
my($ah) = pop @allowheader;
open (ALLOW, "$CC -E -D$dialect - < data/$ah-data |");
acontrol: while (<ALLOW>) {
next acontrol if (/^#/);
next acontrol if (/^[ ]*$/);
if (/^element *({([^}]*)}|([^ ]*)) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*) *(.*)/) {
push @allow, $7;
} elsif (/^constant *([a-zA-Z0-9_]*) *([A-Za-z0-9_]*)?/) {
push @allow, $1;
} elsif (/^typed-constant *([a-zA-Z0-9_]*) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*)?/) {
push @allow, 1;
} elsif (/^type *({([^}]*)|([a-zA-Z0-9_]*))/) {
my($type) = "$2$3";
# Remember that this name is allowed.
if ($type =~ /^struct *(.*)/) {
push @allow, $1;
} elsif ($type =~ /^union *(.*)/) {
push @allow, $1;
} else {
push @allow, $type;
}
} elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) {
push @allow, $4;
} elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
push @allow, $4;
} elsif (/^variable *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*)/) {
push @allow, $4;
} elsif (/^macro-function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
push @allow, $4;
} elsif (/^macro *([^ ]*)/) {
push @allow, $1;
} elsif (/^allow *(.*)/) {
push @allow, $1;
} elsif (/^allow-header *(.*)/) {
push @allowheader, $1;
}
}
close (ALLOW);
}
# Now check the namespace.
printf (" Checking the namespace of \"%s\"... ", $h);
if ($missing) {

View File

@ -50,6 +50,9 @@ function int open (const char*, int, ...)
allow-header sys/stat.h
allow-header unistd.h
allow *_t
allow l_*
allow F_*
allow O_*
allow S_*
allow *_t
#endif

View File

@ -7,5 +7,6 @@ constant FNM_NOSYS
function int fnmatch (const char*, const char*, int)
allow FNM_*
allow *_t
#endif

View File

@ -32,6 +32,7 @@ function double frexp (double, int*)
function double ldexp (double, int)
function double log (double)
function double log10 (double)
function double modf (double, double*)
function double pow (double, double)
function double sin (double)
function double sinh (double)

View File

@ -22,5 +22,7 @@ function datum dbm_nextkey (DBM*)
function {DBM*} dbm_open (const char*, int, mode_t)
function int dbm_store (DBM*, datum, datum, int)
allow dbm_*
allow DBM_*
allow *_t
#endif

View File

@ -9,5 +9,6 @@ function int catclose (nl_catd)
function {char*} catgets (nl_catd, int, int, const char*)
function nl_catd catopen (const char*, int)
allow NL_*
allow *_t
#endif

View File

@ -19,5 +19,9 @@ constant POLLNVAL
function int poll (struct pollfd[], nfsd_t, int)
allow pd_*
allow ph_*
allow ps_*
allow POLL*
allow *_t
#endif

View File

@ -1,4 +1,4 @@
#ifdef ISO
#ifndef ISO
constant PTHREAD_CANCEL_ASYNCHRONOUS
constant PTHREAD_CANCEL_ENABLE
constant PTHREAD_CANCEL_DEFERRED

View File

@ -20,4 +20,5 @@ allow-header sys/types.h
allow sem_*
allow SEM_*
allow *_t
#endif

View File

@ -18,3 +18,5 @@ macro-function int sigsetjmp (sigjmp_buf, int)
macro-function int _setjmp (jmp_buf)
# endif
#endif
allow *_t

View File

@ -189,3 +189,14 @@ allow SI_*
allow sigev_*
allow SIGEV_*
allow sival_*
allow SA_*
allow BUS_*
allow CLD_*
allow FPE_*
allow ILL_*
allow POLL_*
allow SEGV_*
allow SS_*
allow SV_*
allow TRAP_*
allow *_t

View File

@ -5,3 +5,5 @@ macro va_start
macro va_arg
macro va_end
macro va_copy
allow *_t

View File

@ -6,3 +6,5 @@ type ptrdiff_t
type wchar_t
type size_t
type wint_t
allow *_t

View File

@ -100,4 +100,6 @@ variable int optind
variable int optopt
allow-header stddef.h
allow *_t
#endif

View File

@ -83,3 +83,6 @@ allow-header stddef.h
allow-header limits.h
allow-header math.h
allow-header sys/wait.h
allow str*
allow *_t

View File

@ -29,3 +29,7 @@ function {char*} strtok_r (char*, const char*, char**)
function size_t strxfrm (char*, const char*, size_t)
allow-header stddef.h
allow str*
allow wcs*
allow *_t

View File

@ -8,3 +8,5 @@ function int strcasecmp (const char*, const char*)
function int strncasecmp (const char*, const char*, size_t)
type size_t
allow *_t

View File

@ -121,3 +121,17 @@ function int fattach (int, const char*)
function int fdetach (const char*)
allow-header unistd.h
allow bi_*
allow ic_*
allow l_*
allow sl_*
allow str_*
allow FLUSH*
allow I_*
allow M_*
allow MUXID_R*
allow S_*
allow SND*
allow STR*
allow *_t

View File

@ -22,3 +22,7 @@ constant IPC_SET
constant IPC_STAT
function key_t ftok (const char*, int)
allow ipc_*
allow IPC_*
allow *_t

View File

@ -30,3 +30,10 @@ function int munlockall (void)
function int munmap (void*, size_t)
function int shm_open (const char*, int, mode_t)
function int shm_unlink (const char*)
allow shm_*
allow MAP_*
allow MCL_*
allow MS_*
allow PROT_*
allow *_t

View File

@ -26,3 +26,7 @@ function ssize_t msgrcv (int, void*, size_t, long int, int)
function int msgsnd (int, const void*, size_t, int)
allow-header sys/ipc.h
allow msg*
allow MSG*
allow *_h

View File

@ -0,0 +1,50 @@
constant PRIO_PROCESS
constant PRIO_PGRP
constant PRIO_USER
type rlim_t
constant RLIM_INFINITY
constant RLIM_SAVED_MAX
constant RLIM_SAVED_CUR
constant RUSAGE_SELF
constant RUSAGE_CHILDREN
type {struct rlimit}
element {struct rlimit} rlim_t rlim_cur
element {struct rlimit} rlim_t rlim_max
type {struct rusage}
element {struct rusage} {struct timeval} ru_utime
element {struct rusage} {struct timeval} ru_stime
type {struct timeval}
constant RLIMIT_CORE
constant RLIMIT_CPU
constant RLIMIT_DATA
constant RLIMIT_FSIZE
constant RLIMIT_NOFILE
constant RLIMIT_STACK
constant RLIMIT_AS
function int getpriority (int, id_t)
function int getrlimit (int, struct rlimit*)
function int getrusage (int, struct rusage*)
function int setpriority (int, id_t, int)
function int setrlimit (int, const struct rlimit*)
type id_t
allow-header sys/time.h
allow rlim_*
allow ru_*
allow PRIO_*
allow RLIM_*
allow RLIMIT_*
allow RUSAGE_*
allow *_t

View File

@ -0,0 +1,37 @@
constant SEM_UNDO
constant GETNCNT
constant GETPID
constant GETVAL
constant GETALL
constant GETZCNT
constant SETVAL
constant SETALL
type {struct semid_ds}
element {struct semid_ds} {struct ipc_perm} sem_perm
element {struct semid_ds} {unsigned short int} sem_nsems
element {struct semid_ds} time_t sem_otime
element {struct semid_ds} time_t sem_ctime
type pid_t
type time_t
type key_t
type size_t
type {struct sembuf}
element {struct sembuf} {unsigned short int} sem_num
element {struct sembuf} {short int} sem_op
element {struct sembuf} {short int} sem_flg
function int semctl (int, int, int, ...)
function int semget (key_t, int, int)
function int semop (int, struct sembuf*, size_t)
allow-header sys/ipc.h
allow sem*
allow SEM_*
allow *_t

View File

@ -0,0 +1,32 @@
constant SHM_RDONLY
constant SHMLBA
constant SHM_RND
type shmatt_t
type {struct shmid_ds}
element {struct shmid_ds} {struct ipc_perm} shm_perm
element {struct shmid_ds} size_t shm_segsz
element {struct shmid_ds} pid_t shm_lpid
element {struct shmid_ds} pid_t shm_cpid
element {struct shmid_ds} shmatt_t shm_nattch
element {struct shmid_ds} time_t shm_atime
element {struct shmid_ds} time_t shm_dtime
element {struct shmid_ds} time_t shm_ctime
type pid_t
type time_t
type key_t
type size_t
function {void*} shmat (int, const void*, int)
function int shmctl (int, int, struct shmid_ds*)
function int shmdt (const void*)
function int shmget (key_t, size_t, int)
allow-header sys/ipc.h
allow shm*
allow SHM*
allow *_t

View File

@ -0,0 +1,75 @@
type {struct stat}
element {struct stat} dev_t st_dev
element {struct stat} ino_t st_ino
element {struct stat} mode_t st_mode
element {struct stat} nlink_t st_nlink
element {struct stat} uid_t st_uid
element {struct stat} gid_t st_gid
element {struct stat} dev_t st_rdev
element {struct stat} off_t st_size
element {struct stat} time_t st_atime
element {struct stat} time_t st_mtime
element {struct stat} time_t st_ctime
element {struct stat} blksize_t st_blksize
element {struct stat} blkcnt_t st_blocks
type blkcnt_t
type blksize_t
type dev_t
type ino_t
type mode_t
type nlink_t
type uid_t
type gid_t
type off_t
type time_t
constant S_IFMT
constant S_IFBLK
constant S_IFCHR
constant S_IFIFO
constant S_IFREG
constant S_IFDIR
constant S_IFLNK
constant S_IRWXU
constant S_IRUSR
constant S_IWUSR
constant S_IXUSR
constant S_IRWXG
constant S_IWGRP
constant S_IXGRP
constant S_IRWXO
constant S_IROTH
constant S_IWOTH
constant S_IXOTH
constant S_ISUID
constant S_ISGID
constant S_ISVTX
macro S_ISBLK
macro S_ISCHR
macro S_ISDIR
macro S_ISFIFO
macro S_ISREG
macro S_ISLNK
# How to represent optional tests?
# macro S_TYPEISMQ
# macro S_TYPEISSEM
# macro S_TYPEISSHM
function int chmod (const char*, mode_t)
function int fchmod (int, mode_t)
function int fstat (int, struct stat*)
function int lstat (const char*, struct stat*)
function int mkdir (const char*, mode_t)
function int mkfifo (const char*, mode_t)
function int mknod (const char*, mode_t, dev_t)
function int stat (const char*, struct stat*)
function mode_t umask (mode_t)
allow st_*
allow S_*
allow *_t

View File

@ -0,0 +1,26 @@
type {struct statvfs}
element {struct statvfs} {unsigned long} f_bsize
element {struct statvfs} {unsigned long} f_frsize
element {struct statvfs} fsblkcnt_t f_blocks
element {struct statvfs} fsblkcnt_t f_bfree
element {struct statvfs} fsblkcnt_t f_bavail
element {struct statvfs} fsfilcnt_t f_files
element {struct statvfs} fsfilcnt_t f_ffree
element {struct statvfs} fsfilcnt_t f_favail
element {struct statvfs} {unsigned long} f_fsid
element {struct statvfs} {unsigned long} f_flag
element {struct statvfs} {unsigned long} f_namemax
type fsblkcnt_t
type fsfilcnt_t
constant ST_RDONLY
constant ST_NOSUID
function int statvfs (const char*, struct statvfs*)
function int fstatvfs (int, struct statvfs*)
allow f_*
allow ST_*
allow *_t

View File

@ -0,0 +1,40 @@
type {struct timeval}
element {struct timeval} time_t tv_sec
element {struct timeval} suseconds_t tv_usec
type {struct itimerval}
element {struct itimerval} {struct timeval} it_interval
element {struct itimerval} {struct timeval} it_value
type time_t
type suseconds_t
type {struct fd_set}
element {struct fd_set} long fds_bits []
constant ITIMER_REAL
constant ITIMER_VIRTUAL
constant ITIMER_PROF
macro FD_CLR
macro FD_ISSET
macro FD_SET
macro FD_ZERO
constant FD_SETSIZE
function int getitimer (int, struct itimerval*)
function int setitimer (int, const struct itimerval*, struct itimerval*)
function int gettimeofday (struct timeval*, void*)
function int select (int, fd_set*, fd_set*, fd_set*, struct timeval*)
function int utimes (const char*, const struct timeval [2])
allow fds_*
allow it_*
allow tv_*
allow FD_*
allow ITIMER_*
allow *_t

View File

@ -0,0 +1,12 @@
type {struct timeb}
element {struct timeb} time_t time
element {struct timeb} {unsigned short} millitm
element {struct timeb} short timezone
element {struct timeb} short dstflag
type time_t
function int ftime (struct timeb*)
allow *_t

View File

@ -0,0 +1,13 @@
type {struct tms}
element {struct tms} clock_t tms_utime
element {struct tms} clock_t tms_stime
element {struct tms} clock_t tms_cutime
element {struct tms} clock_t tms_cstime
type clock_t
function clock_t times (struct tms*)
allow tms_*
allow *_t

View File

@ -0,0 +1,34 @@
type blkcnt_t
type blksize_t
type clock_t
type clockid_t
type dev_t
type fsblkcnt_t
type fsfilcnt_t
type gid_t
type id_t
type ino_t
type key_t
type mode_t
type nlink_t
type off_t
type pid_t
type pthread_attr_t
type pthread_cond_t
type pthread_condattr_t
type pthread_key_t
type pthread_mutex_t
type pthread_mutexattr_t
type pthread_once_t
type pthread_rwlock_t
type pthread_rwlockattr_t
type pthread_t
type size_t
type ssize_t
type suseconds_t
type time_t
type timer_t
type uid_t
type useconds_t
allow *_t

View File

@ -0,0 +1,11 @@
type {struct iovec}
element {struct iovec} {void*} iov_base
element {struct iovec} size_t iov_len
function ssize_t readv (int, const struct iovec*, int)
function ssize_t writev (int, const struct iovec*, int)
allow iov_*
allow IOV_*
allow *_t

View File

@ -0,0 +1,64 @@
constant WNOHANG
constant WUNTRACED
macro WEXITSTATUS
macro WIFCONTINUED
macro WIFEXITED
macro WIFSIGNALED
macro WIFSTOPPED
macro WSTOPSIG
macro WTERMSIG
constant WEXITED
constant WSTOPPED
constant WCONTINUED
constant WNOHANG
constant WNOWAIT
type idtype_t
constant P_ALL
constant P_PID
constant P_PGID
type id_t
type siginfo_t
element siginfo_t int si_signo
element siginfo_t int si_errno
element siginfo_t int si_code
element siginfo_t pid_t si_pid
element siginfo_t uid_t si_uid
element siginfo_t {void*} si_addr
element siginfo_t int si_status
element siginfo_t long si_band
element siginfo_t {union sigval} si_value
type {struct rusage}
element {struct rusage} {struct timeval} ru_utime
element {struct rusage} {struct timeval} ru_stime
type pid_t
function pid_t wait (int*)
function pid_t wait3 (int*, int, struct rusage*)
function int waitid (idtype_t, id_t, siginfo_t*, int)
function pid_t waitpid (pid_t, int*, int)
allow-header signal.h
allow-header sys/resource.h
allow si_*
allow W*
allow P_*
allow BUS_
allow CLD_
allow FPE_
allow ILL_
allow POLL_
allow SEGV_
allow SI_
allow TRAP_
allow *_t

View File

@ -37,3 +37,6 @@ function void closelog (void)
function void openlog (const char*, int, int)
function int setlogmask (int)
function void syslog (int, const char*, ...)
allow LOG_*
allow *_t

29
conform/data/tar.h-data Normal file
View File

@ -0,0 +1,29 @@
constant TMAGIC
constant TMAGLEN
constant TVERSION
constant TVERSLEN
constant REGTYPE
constant AREGTYPE
constant LNKTYPE
constant SYMTYPE
constant CHRTYPE
constant BLKTYPE
constant DIRTYPE
constant FIFOTYPE
constant CONTTYPE
constant TSUID
constant TSGID
constant TSVTX
constant TUREAD
constant TUWRITE
constant TUEXEC
constant TGREAD
constant TGWRITE
constant TGEXEC
constant TOREAD
constant TOWRITE
constant TOEXEC
allow *_t

159
conform/data/termios.h-data Normal file
View File

@ -0,0 +1,159 @@
type cc_t
type speed_t
type tcflag_t
type {struct termios}
element {struct termios} tcflag_t c_iflag
element {struct termios} tcflag_t c_oflag
element {struct termios} tcflag_t c_cflag
element {struct termios} tcflag_t c_lflag
element {struct termios} cc_t c_cc[NCCS]
constant NCCS
constant VEOF
constant VEOL
constant VERASE
constant VINTR
constant VKILL
constant VMIN
constant VQUIT
constant VSTART
constant VSTOP
constant VSUSP
constant VTIME
constant BRKINT
constant ICRNL
constant IGNBRK
constant IGNCR
constant IGNPAR
constant INLCR
constant INPCK
constant ISTRIP
constant IUCLC
constant IXANY
constant IXOFF
constant IXON
constant PARMRK
constant OPOST
constant OLCUC
constant ONLCR
constant OCRNL
constant ONOCR
constant ONLRET
constant OFILL
constant NLDLY
constant NL0
constant NL1
constant CRDLY
constant CR0
constant CR1
constant CR2
constant CR3
constant TABDLY
constant TAB0
constant TAB1
constant TAB2
constant TAB3
constant BSDLY
constant BS0
constant BS1
constant VTDLY
constant VT0
constant VT1
constant FFDLY
constant FF0
constant FF1
constant B0
constant B50
constant B75
constant B110
constant B134
constant B150
constant B200
constant B300
constant B600
constant B1200
constant B1800
constant B2400
constant B4800
constant B9600
constant B19200
constant B38400
constant CSIZE
constant CS5
constant CS6
constant CS7
constant CS8
constant CSTOPB
constant CREAD
constant PARENB
constant PARODD
constant HUPCL
constant CLOCAL
constant ECHO
constant ECHOE
constant ECHOK
constant ECHONL
constant ICANON
constant IEXTEN
constant ISIG
constant NOFLSH
constant TOSTOP
constant XCASE
constant TCSANOW
constant TCSADRAIN
constant TCSAFLUSH
constant TCIFLUSH
constant TCIOFLUSH
constant TCIOFF
constant TCION
constant TCOOFF
constant TCOON
function speed_t cfgetispeed (const struct termios*)
function speed_t cfgetospeed (const struct termios*)
function int cfsetispeed (struct termios*, speed_t)
function int cfsetospeed (struct termios*, speed_t)
function int tcdrain (int)
function int tcflow (int, int)
function int tcflush (int, int)
function int tcgetattr (int, struct termios*)
function pid_t tcgetsid (int)
function int tcsendbreak (int, int)
function int tcsetattr (int, int, struct termios*)
allow CBAUD
allow DEFECHO
allow ECHOCTL
allow ECHOKE
allow ECHOPRT
allow EXTA
allow EXTB
allow FLUSHO
allow LOBLK
allow PENDIN
allow SWTCH
allow VDISCARD
allow VDSUSP
allow VLNEXT
allow VREPRINT
allow VSTATUS
allow VWERASE
allow c_*
allow V*
allow I*
allow O*
allow TC*
allow B*
allow *_t

75
conform/data/time.h-data Normal file
View File

@ -0,0 +1,75 @@
type {struct tm}
element {struct tm} int tm_sec
element {struct tm} int tm_min
element {struct tm} int tm_hour
element {struct tm} int tm_mday
element {struct tm} int tm_mon
element {struct tm} int tm_year
element {struct tm} int tm_wday
element {struct tm} int tm_yday
element {struct tm} int tm_isdst
constant NULL
constant CLK_TCK
constant CLOCKS_PER_SEC
type {struct timespec}
element {struct timespec} time_t tv_sec
element {struct timespec} long tv_nsec
type {struct itimerspec}
element {struct itimerspec} {struct timespec} it_interval
element {struct itimerspec} {struct timespec} it_value
constant CLOCK_REALTIME
constant TIME_ABSTIME
type clock_t
type clockid_t
type size_t
type time_t
type timer_t
variable int getdate_err
function {char*} asctime (const struct tm*)
function {char*} asctime_r (const struct tm*, char*)
function clock_t clock (void)
function int clock_getres (clockid_t, struct timespec*)
function int clock_gettime (clockid_t, struct timespec*)
function int clock_settime (clockid_t, const struct timespec*)
function {char*} ctime (const time_t*)
function {char*} ctime_r (const time_t*, char*)
function double difftime (time_t, time_t)
function {struct tm*} getdate (const char*)
function {struct tm*} gmtime (const time_t*)
function {struct tm*} gmtime_t (const time_t*, struct tm*)
function {struct tm*} localtime (const time_t*)
function {struct tm*} localtime_r (const time_t*, struct tm*)
function time_t mktime (struct tm*)
function int nanosleep (const struct timespec*, struct timespec*)
function size_t strftime (char*, size_t, const char*, const struct tm*)
function {char*} strptime (const char*, const char*, struct tm*)
function time_t time (time_t*)
function int timer_create (clockid_t, struct sigevent*, timer_t*)
function int timer_delete (timer_t)
function int timer_gettime (timer_t, struct itimerspec*)
function int timer_getoverrun (timer_t)
function int timer_settime (timer_t, int, const struct itimerspec*, struct itimerspec*)
function void tzset (void)
variable int daylight
variable {long int} timezone
# variable {char*} tzname []
allow tm_*
allow clock_*
allow timer_*
allow it_*
allow tv_*
allow CLOCK_*
allow TIMER_*
allow *_t

View File

@ -0,0 +1,20 @@
type mcontext_t
type ucontext_t
element {struct ucontext_t} {ucontext_t*} uc_link
element {struct ucontext_t} sigset_t uc_sigmask
element {struct ucontext_t} stack_t uc_stack
element {struct ucontext_t} mcontext_t uc_mcontext
type sigset_t
type stack_t
function int getcontext (ucontext_t*)
function int setcontext (const ucontext_t*)
function void makecontext (ucontext_t*, void(*)(void), int, ...)
function int swapcontext (ucontext_t*, const ucontext_t*)
allow uc_*
allow SS_*
allow *_t

View File

@ -0,0 +1,7 @@
constant UL_GETFSIZE
constant UL_SETFSIZE
function {long int} ulimit (int, ...)
allow UL_*
allow *_t

308
conform/data/unistd.h-data Normal file
View File

@ -0,0 +1,308 @@
constant _POSIX_VERSION
constant _POSIX2_VERSION
constant _POSIX2_C_VERSION
constant _XOPEN_VERSION
constant _XOPEN_XCU_VERSION
constant _POSIX2_C_BIND
constant _POSIX2_CHAR_TERM
constant _POSIX2_LOCALDEF
constant _POSIX2_UPE
constant _POSIX2_VERSION
constant _XOPEN_XPG2
constant _XOPEN_XPG3
constant _XOPEN_XPG4
constant _XOPEN_UNIX
constant _POSIX_CHOWN_RESTRICTED
constant _POSIX_NO_TRUNC
constant _POSIX_VDISABLE
constant _POSIX_SAVED_IDS
constant _POSIX_JOB_CONTROL
constant _POSIX_THREADS
constant _POSIX_THREAD_ATTR_STACKADDR
constant _POSIX_THREAD_ATTR_STACKSIZE
constant _POSIX_THREAD_PROCESS_SHARED
constant _POSIX_THREAD_SAFE_FUNCTIONS
constant _POSIX2_C_DEV
constant _POSIX2_FORT_DEV
constant _POSIX2_FORT_RUN
constant _POSIX2_SW_DEV
constant _XOPEN_CRYPT
constant _XOPEN_ENH_I18N
constant _XOPEN_LEGACY
constant _XOPEN_REALTIME
constant _XOPEN_REALTIME_THREADS
constant _XOPEN_SHM
allow _XBS5_ILP32_OFF32
allow _XBS5_ILP32_OFBIG
allow _XBS5_LP64_OFF64
allow _XBS5_LPBIG_OFFBIG
constant _POSIX_ASYNCHRONOUS_IO
constant _POSIX_MEMLOCK
constant _POSIX_MEMLOCK_RANGE
constant _POSIX_MESSAGE_PASSING
constant _POSIX_PRIORITY_SCHEDULING
constant _POSIX_REALTIME_SIGNALS
constant _POSIX_SEMAPHORES
constant _POSIX_SHARED_MEMORY_OBJECTS
constant _POSIX_SYNCHRONIZED_IO
constant _POSIX_TIMERS
constant _POSIX_FSYNC
constant _POSIX_MAPPED_FILES
constant _POSIX_MEMORY_PROTECTION
constant _POSIX_PRIORITIZED_IO
constant _POSIX_THREAD_PRIORITY_SCHEDULING
constant _POSIX_THREAD_PRIO_INHERIT
constant _POSIX_THREAD_PRIO_PROTECT
constant _POSIX_ASYNC_IO
constant _POSIX_PRIO_IO
constant _POSIX_SYNC_IO
constant NULL
constant R_OK
constant W_OK
constant X_OK
constant F_OK
constant _CS_PATH
constant _CS_XBS5_ILP32_OFF32_CFLAGS
constant _CS_XBS5_ILP32_OFF32_LDFLAGS
constant _CS_XBS5_ILP32_OFF32_LIBS
constant _CS_XBS5_ILP32_OFF32_LINTFLAGS
constant _CS_XBS5_ILP32_OFFBIG_CFLAGS
constant _CS_XBS5_ILP32_OFFBIG_LDFLAGS
constant _CS_XBS5_ILP32_OFFBIG_LIBS
constant _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
constant _CS_XBS5_LP64_OFF64_CFLAGS
constant _CS_XBS5_LP64_OFF64_LDFLAGS
constant _CS_XBS5_LP64_OFF64_LIBS
constant _CS_XBS5_LP64_OFF64_LINTFLAGS
constant _CS_XBS5_LPBIG_OFFBIG_CFLAGS
constant _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
constant _CS_XBS5_LPBIG_OFFBIG_LIBS
constant _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
constant SEEK_SET
constant SEEK_CUR
constant SEEK_END
constant _SC_2_C_BIND
constant _SC_2_C_DEV
constant _SC_2_C_VERSION
constant _SC_2_FORT_DEV
constant _SC_2_FORT_RUN
constant _SC_2_LOCALEDEF
constant _SC_2_SW_DEV
constant _SC_2_UPE
constant _SC_2_VERSION
constant _SC_ARG_MAX
constant _SC_AIO_LISTIO_MAX
constant _SC_AIO_MAX
constant _SC_AIO_PRIO_DELTA_MAX
constant _SC_ASYNCHRONOUS_IO
constant _SC_ATEXIT_MAX
constant _SC_BC_BASE_MAX
constant _SC_BC_DIM_MAX
constant _SC_BC_SCALE_MAX
constant _SC_BC_STRING_MAX
constant _SC_CHILD_MAX
constant _SC_CLK_TCK
constant _SC_COLL_WEIGHTS_MAX
constant _SC_DELAYTIMER_MAX
constant _SC_EXPR_NEST_MAX
constant _SC_FSYNC
constant _SC_GETGR_R_SIZE_MAX
constant _SC_GETPW_R_SIZE_MAX
constant _SC_IOV_MAX
constant _SC_JOB_CONTROL
constant _SC_LINE_MAX
constant _SC_LOGIN_NAME_MAX
constant _SC_MAPPED_FILES
constant _SC_MEMLOCK
constant _SC_MEMLOCK_RANGE
constant _SC_MQ_OPEN_MAX
constant _SC_MQ_PRIO_MAX
constant _SC_NGROUPS_MAX
constant _SC_OPEN_MAX
constant _SC_PAGESIZE
constant _SC_PAGE_SIZE
constant _SC_PASS_MAX
constant _SC_PRIORITIZED_IO
constant _SC_PRIORITY_SCHEDULING
constant _SC_RE_DUP_MAX
constant _SC_REALTIME_SIGNALS
constant _SC_RTSIG_MAX
constant _SC_SAVED_IDS
constant _SC_SEMAPHORES
constant _SC_SEM_NSEMS_MAX
constant _SC_SEM_VALUE_MAX
constant _SC_SHARED_MEMORY_OBJECTS
constant _SC_SIGQUEUE_MAX
constant _SC_STREAM_MAX
constant _SC_SYNCHRONIZED_IO
constant _SC_THREADS
constant _SC_THREAD_ATTR_STACKADDR
constant _SC_THREAD_ATTR_STACKSIZE
constant _SC_THREAD_DESTRUCTOR_ITERATIONS
constant _SC_THREAD_KEYS_MAX
constant _SC_THREAD_PRIORITY_SCHEDULING
constant _SC_THREAD_PRIO_INHERIT
constant _SC_THREAD_PRIO_PROTECT
constant _SC_THREAD_PROCESS_SHARED
constant _SC_THREAD_SAFE_FUNCTIONS
constant _SC_THREAD_STACK_MIN
constant _SC_THREAD_THREADS_MAX
constant _SC_TIMERS
constant _SC_TIMER_MAX
constant _SC_TTY_NAME_MAX
constant _SC_TZNAME_MAX
constant _SC_VERSION
constant _SC_XOPEN_VERSION
constant _SC_XOPEN_CRYPT
constant _SC_XOPEN_ENH_I18N
constant _SC_XOPEN_SHM
constant _SC_XOPEN_UNIX
constant _SC_XOPEN_XCU_VERSION
constant _SC_XOPEN_LEGACY
constant _SC_XOPEN_REALTIME
constant _SC_XOPEN_REALTIME_THREADS
constant _SC_XBS5_ILP32_OFF32
constant _SC_XBS5_ILP32_OFFBIG
constant _SC_XBS5_ILP64_OFF64
constant _SC_XBS5_ILPIBIG_OFFBIG
constant F_LOCK
constant F_ULOCK
constant F_TEST
constant F_TLOCK
constant _PC_ASYNC_IO
constant _PC_CHOWN_RESTRICTED
constant _PC_FILESIZEBITS
constant _PC_LINK_MAX
constant _PC_MAX_CANON
constant _PC_MAX_INPUT
constant _PC_NAME_MAX
constant _PC_NO_TRUNC
constant _PC_PATH_MAX
constant _PC_PIPE_BUF
constant _PC_PRIO_IO
constant _PC_SYNC_IO
constant _PC_VDISABLE
constant STDIN_FILENO
constant STDOUT_FILENO
constant STDERR_FILENO
type size_t
type ssize_t
type uid_t
type gid_t
type uid_t
type pid_t
type useconds_t
type intptr_t
function int access (const char*, int)
function {unsigned int} alarm (unsigned int)
function int brk (void*)
function int chdir (const char*)
function int chroot (const char*)
function int chown (const char*, uid_t, gid_t)
function int close (int)
function size_t confstr (int, char*, size_t)
function {char*} crypt (const char*, const char*)
function {char*} ctermid (char*)
function {char*} cuserid (char*)
function int dup (int)
function int dup2 (int, int)
function void encrypt (char[64], int)
function int execl (const char*, const char*, ...)
function int execle (const char*, const char*, ...)
function int execlp (const char*, const char*, ...)
function int execv (const char*, char *const[])
function int execve (const char*, char *const[])
function int execvp (const char*, char *const[])
function void _exit (int)
function int fchown (int, uid_t, gid_t)
function int fchdir (int)
function int fdatasync (int)
function pid_t fork (void)
function {long int} fpathconf (int, int)
function int fsync (int)
function int ftruncate (int, off_t)
function {char*} getcwd (char*, size_t)
function int getdtablesize (void)
function gid_t getegid (void)
function uid_t geteuid (void)
function gid_t getgid (void)
function int getgroups (int, gid_t[])
function long gethostid (void)
function {char*} getlogin (void)
function int getlogin_r (char*, size_t)
function int getopt (int, char*const[], const char*)
function int getpagesize (void)
function {char*} getpass (const char*)
function pid_t getpgid (pid_t)
function pid_t getpgrp (void)
function pid_t getpid (void)
function pid_t getppid (void)
function pid_t getsid (void)
function uid_t getuid (void)
function {char*} getwd (char*)
function int isatty (int)
function int lchown (const char*, uid_t, gid_t)
function int link (const char*, const char*)
function int lockf (int, int, off_t)
function off_t lseek (int, off_t, int)
function int nice (int)
function {long int} pathconf (const char*, int)
function int pause (void)
function int pipe (int[2])
function ssize_t pread (int, void*, size_t, off_t)
function int pthread_atfork (void(*)(void), void(*)(void), void(*)(void))
function ssize_t pwrite (int, const void*, size_t, off_t)
function ssize_t read (int, void*, size_t)
function int readlink (const char*, char*, size_t)
function int rmdir (const char*)
function {void*} sbrk (intptr_t)
function int setgid (gid_t)
function int setpgid (pid_t, pid_t)
function pid_t setpgrp (void)
function int setregid (gid_t, gid_t)
function int setreuid (uid_t, uid_t)
function pid_t setsid (void)
function int setuid (uid_t)
function {unsigned int} sleep (unsigned int)
function void swab (const char*, void*, ssize_t)
function int symlink (const char*, const char*)
function void sync (void)
function {long int} sysconf (int)
function pid_t tcgetpgrp (int)
function int tcsetpgrp (int, pid_t)
function int truncate (const char*, off_t)
function {char*} ttyname (int)
function int ttyname_r (int, char*, size_t)
function useconds_t ualarm (useconds_t, useconds_t)
function int unlink (const char*)
function int usleep (useconds_t)
function pid_t vfork (void)
function ssize_t write (int, const void*, size_t)
variable {char*} optarg
variable int optind
variable int opterr
variable int optopt
allow *_t

11
conform/data/utime.h-data Normal file
View File

@ -0,0 +1,11 @@
type {struct utimbuf}
element {struct utimbuf} time_t actime
element {struct utimbuf} time_t modtime
type time_t
function int utime (const char*, const struct utimbuf*)
allow utim_*
allow *_t

36
conform/data/utmpx.h-data Normal file
View File

@ -0,0 +1,36 @@
type {struct utmpx}
element {struct utmpx} char ut_user []
element {struct utmpx} char ut_id []
element {struct utmpx} char ut_line []
element {struct utmpx} pid_t ut_pid
element {struct utmpx} {short int} ut_type
element {struct utmpx} {struct timeval} ut_tv
type pid_t
type {struct timeval}
element {struct timeval} time_t tv_sec
element {struct timeval} suseconds_t tv_usec
constant EMPTY
constant BOOT_TIME
constant OLD_TIME
constant NEW_TIME
constant USER_PROCESS
constant INIT_PROCESS
constant LOGIN_PROCESS
constant DEAD_PROCESS
function void endutxent (void)
function {struct utmpx*} getutxent (void)
function {struct utmpx*} getutxid (const struct utmpx*)
function {struct utmpx*} getutxline (const struct utmpx*)
function {struct utmpx*} pututxline (const struct utmpx*)
function void setutxent (void)
allow-header sys/time.h
allow ut_*
allow *_t

View File

@ -0,0 +1,8 @@
macro va_alist
macro va_dcl
type va_list
macro va_start
macro va_arg
macro va_end
allow *_t

95
conform/data/wchar.h-data Normal file
View File

@ -0,0 +1,95 @@
type wchar_t
type wint_t
type wctype_t
type mbstate_t
type FILE
type size_t
function wint_t btowc (int)
function int fwprintf (FILE*, const wchar_t*, ...)
function int fwscanf (FILE*, const wchar_t*, ...)
#if !ISO
function int iswalnum (wint_t)
function int iswalpha (wint_t)
function int iswcntrl (wint_t)
function int iswdigit (wint_t)
function int iswgraph (wint_t)
function int iswlower (wint_t)
function int iswprint (wint_t)
function int iswpunct (wint_t)
function int iswspace (wint_t)
function int iswupper (wint_t)
function int iswxdigit (wint_t)
function int iswctype (wint_t, wctype_t)
#endif
function wint_t fgetwc (FILE*)
function {wchar_t*} fgetws (wchar_t*, int, FILE*)
function wint_t fputwc (wchar_t, FILE*)
function int fputws (const wchar_t*, FILE*)
function int fwide (FILE*, int)
function wint_t getwc (FILE*)
function wint_t getwchar (void)
function int mbsinit (const mbstate_t*)
function size_t mbrlen (const char*, size_t, mbstate_t*)
function size_t mbrtowc (wchar_t*, const char*, size_t, mbstate_*)
function size_t mbsrtowcs (wchar_t*, const char**, size_t, mbstate_t*)
function wint_t putwc (wchar_t, FILE*)
function wint_t putwchar (wchar_t)
function int swprintf (wchar_t*, size_t, const wchar_t*, ...)
function int swscanf (const wchar_t*, const wchar_t*, ...)
function wint_t towlower (wint_t)
function wint_t towupper (wint_t)
function wint_t ungetwc (wint_t, FILE*)
function int vfwprintf (FILE, const wchar_t*, va_list)
function int vwprintf (const wchar_t*, va_list)
function int vswprintf (wchar_t*, size_t, const wchar_t*, va_list)
function size_t wcrtomb (char*, wchar_t, mbstate_t*)
function {wchar_t*} wcscat (wchar_t*, const wchar_t*)
function {wchar_t*} wcschr (const wchar_t*, wchar_t)
function int wcscmp (const wchar_t*, const wchar_t*)
function int wcscoll (const wchar_t*, const wchar_t*)
function {wchar_t*} wcscpy (wchar_t*, const wchar_t*)
function size_t wcscspn (const wchar_t*, const wchar_t*)
function size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*)
function size_t wcslen (const wchar_t*)
function {wchar_t*} wcsncat (wchar_t*, const wchar_t*, size_t)
function int wcsncmp (const wchar_t*, const wchar_t*, size_t)
function {wchar_t*} wcsncpy (wchar_t*, const wchar_t*, size_t)
function {wchar_t*} wcspbrk (const wchar_t*, const wchar_t*)
function {wchar_t*} wcsrchr (const wchar_t*, wchar_t)
function size_t wcsrtombs (char*, const wchar_t**, size_t, mbstate_t*)
function size_t wcsspn (const wchar_t*, const wchar_t*)
function {wchar_t*} wcsstr (const wchar_t*, const wchar_t*)
function double wcstod (const wchar_t*, wchar_t**)
function {wchar_t*} wcstok (wchar_t*, const wchar_t*, wchar_t**)
function {long int} wcstol (const wchar_t*, wchar_t**, int)
function {unsigned long int} wcstoul (const wchar_t*, wchar_t**, int)
function {wchar_t*} wcswcs (const wchar_t*, const wchar_t*)
function int wcswidth (const wchar_t*, size_t)
function size_t wcsxfrm (wchar_t*, const wchar_t*, size_t)
function int wctob (wint_t)
function wctype_t wctype (const char*)
function int wcwidth (wchar_t)
function {wchar_t*} wmemchr (const wchar_t*, wchar_t, size_t)
function int wmemcmp (const wchar_t*, const wchar_t*, size_t)
function {wchar_t*} wmemcpy (wchar_t*, const wchar_t*, size_t)
function {wchar_t*} wmemmove (wchar_t*, const wchar_t*, size_t)
function {wchar_t*} wmemset (wchar_t*, wchar_t, size_t)
function int wprintf (const wchar_t*, ...)
function int wscanf (const wchar_t*, ...)
macro WCHAR_MAX
macro WCHAR_MIN
macro WEOF
macro NULL
allow-header ctype.h
allow-header stdio.h
allow-header stdarg.h
allow-header stdlib.h
allow-header string.h
allow-header stddef.h
allow-header time.h
allow wcs*
allow *_t

View File

@ -0,0 +1,36 @@
type wint_t
type wctrans_t
type wctype_t
function int iswalnum (wint_t)
function int iswalpha (wint_t)
function int iswcntrl (wint_t)
function int iswdigit (wint_t)
function int iswgraph (wint_t)
function int iswlower (wint_t)
function int iswprint (wint_t)
function int iswpunct (wint_t)
function int iswspace (wint_t)
function int iswupper (wint_t)
function int iswxdigit (wint_t)
function int iswctype (wint_t, wctype_t)
function wint_t towctrans (wint_t, wctrans_t)
function wint_t towlower (wint_t)
function wint_t towupper (wint_t)
function wctrans_t wctrans (const char*)
function wctype_t wctype (const char*)
macro WEOF
allow-header ctype.h
allow-header stdio.h
allow-header stdarg.h
allow-header stdlib.h
allow-header string.h
allow-header stddef.h
allow-header time.h
allow-header wchar.h
allow is*
allow to*
allow *_t

View File

@ -0,0 +1,25 @@
type wordexp_t
element wordexp_t size_t we_wordc
element wordexp_t {char**} we_wordv
element wordexp_t size_t we_offs
constant WRDE_APPEND
constant WRDE_DOOFS
constant WRDE_NOCMD
constant WRDE_REUSE
constant WRDE_SHOWERR
constant WRDE_UNDEF
constant WRDE_BADCHAR
constant WRDE_CMDSUB
constant WRDE_NOSPACE
constant WRDE_NOSYS
constant WRDE_SYNTAX
function int wordexp (const char*, wordexp_t*, int)
function void wordfree (wordexp_t*)
allow WRDE_*
allow we_*
allow *_t

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
/* Copyright (C) 1991,92,95,96,97,98,99,2000 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
@ -99,7 +99,7 @@ extern struct group *getgrnam (__const char *__name) __THROW;
other reentrant functions so the chances are good this is what the
POSIX people would choose. */
# if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
# ifdef __USE_GNU
extern int getgrent_r (struct group *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct group **__restrict __result) __THROW;

View File

@ -13,5 +13,5 @@ extern int __getitimer (enum __itimer_which __which,
extern int __setitimer (enum __itimer_which __which,
__const struct itimerval *__new,
struct itimerval *__old);
extern int __utimes (__const char *__file, struct timeval __tvp[2]);
extern int __utimes (__const char *__file, const struct timeval __tvp[2]);
#endif

View File

@ -1,8 +1,5 @@
/* Implementation of the bindtextdomain(3) function
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
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
@ -50,6 +47,16 @@ void free ();
#include "gettext.h"
#include "gettextP.h"
#ifdef _LIBC
/* We have to handle multi-threaded applications. */
# include <bits/libc-lock.h>
#else
/* Provide dummy implementation if this is outside glibc. */
# define __libc_lock_define_initialized (CLASS, NAME)
# define __libc_lock_lock(NAME)
# define __libc_lock_unlock(NAME)
#endif
/* @@ end of prolog @@ */
/* Contains the default location of the message catalogs. */
@ -58,6 +65,9 @@ extern const char _nl_default_dirname[];
/* List with bindings of specific domains. */
extern struct binding *_nl_domain_bindings;
/* Lock variable to protect the global data in the gettext implementation. */
__libc_rwlock_define (extern, _nl_state_lock)
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
@ -80,11 +90,14 @@ BINDTEXTDOMAIN (domainname, dirname)
const char *dirname;
{
struct binding *binding;
char *result;
/* Some sanity checks. */
if (domainname == NULL || domainname[0] == '\0')
return NULL;
__libc_rwlock_wrlock (_nl_state_lock);
for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
{
int compare = strcmp (domainname, binding->domainname);
@ -101,104 +114,97 @@ BINDTEXTDOMAIN (domainname, dirname)
if (dirname == NULL)
/* The current binding has be to returned. */
return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
if (binding != NULL)
result = binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
else if (binding != NULL)
{
/* The domain is already bound. If the new value and the old
one are equal we simply do nothing. Otherwise replace the
old binding. */
if (strcmp (dirname, binding->dirname) != 0)
result = binding->dirname;
if (strcmp (dirname, result) != 0)
{
char *new_dirname;
if (strcmp (dirname, _nl_default_dirname) == 0)
new_dirname = (char *) _nl_default_dirname;
result = (char *) _nl_default_dirname;
else
{
#if defined _LIBC || defined HAVE_STRDUP
new_dirname = strdup (dirname);
if (new_dirname == NULL)
return NULL;
result = strdup (dirname);
#else
size_t len = strlen (dirname) + 1;
new_dirname = (char *) malloc (len);
if (new_dirname == NULL)
return NULL;
memcpy (new_dirname, dirname, len);
result = (char *) malloc (len);
if (result != NULL)
memcpy (result, dirname, len);
#endif
}
if (binding->dirname != _nl_default_dirname)
free (binding->dirname);
if (result != NULL)
{
if (binding->dirname != _nl_default_dirname)
free (binding->dirname);
binding->dirname = new_dirname;
binding->dirname = result;
}
}
}
else
{
/* We have to create a new binding. */
#if !defined _LIBC && !defined HAVE_STRDUP
size_t len;
#endif
size_t len = strlen (domainname) + 1;
struct binding *new_binding =
(struct binding *) malloc (sizeof (*new_binding));
(struct binding *) malloc (sizeof (*new_binding) + len);
if (new_binding == NULL)
return NULL;
#if defined _LIBC || defined HAVE_STRDUP
new_binding->domainname = strdup (domainname);
if (new_binding->domainname == NULL)
return NULL;
#else
len = strlen (domainname) + 1;
new_binding->domainname = (char *) malloc (len);
if (new_binding->domainname == NULL)
return NULL;
memcpy (new_binding->domainname, domainname, len);
#endif
if (strcmp (dirname, _nl_default_dirname) == 0)
new_binding->dirname = (char *) _nl_default_dirname;
result = NULL;
else
{
memcpy (new_binding->domainname, domainname, len);
if (strcmp (dirname, _nl_default_dirname) == 0)
result = new_binding->dirname = (char *) _nl_default_dirname;
else
{
#if defined _LIBC || defined HAVE_STRDUP
new_binding->dirname = strdup (dirname);
if (new_binding->dirname == NULL)
return NULL;
result = new_binding->dirname = strdup (dirname);
#else
len = strlen (dirname) + 1;
new_binding->dirname = (char *) malloc (len);
if (new_binding->dirname == NULL)
return NULL;
memcpy (new_binding->dirname, dirname, len);
len = strlen (dirname) + 1;
result = new_binding->dirname = (char *) malloc (len);
if (result != NULL)
memcpy (new_binding->dirname, dirname, len);
#endif
}
}
/* Now enqueue it. */
if (_nl_domain_bindings == NULL
|| strcmp (domainname, _nl_domain_bindings->domainname) < 0)
if (result != NULL)
{
new_binding->next = _nl_domain_bindings;
_nl_domain_bindings = new_binding;
}
else
{
binding = _nl_domain_bindings;
while (binding->next != NULL
&& strcmp (domainname, binding->next->domainname) > 0)
binding = binding->next;
/* Now enqueue it. */
if (_nl_domain_bindings == NULL
|| strcmp (domainname, _nl_domain_bindings->domainname) < 0)
{
new_binding->next = _nl_domain_bindings;
_nl_domain_bindings = new_binding;
}
else
{
binding = _nl_domain_bindings;
while (binding->next != NULL
&& strcmp (domainname, binding->next->domainname) > 0)
binding = binding->next;
new_binding->next = binding->next;
binding->next = new_binding;
new_binding->next = binding->next;
binding->next = new_binding;
}
}
binding = new_binding;
else if (new_binding != NULL)
free (new_binding);
}
return binding->dirname;
/* For a succesful call we flush the caches. */
if (result != NULL)
++_nl_msg_cat_cntr;
__libc_rwlock_unlock (_nl_state_lock);
return result;
}
#ifdef _LIBC

View File

@ -1,9 +1,6 @@
/* Implementation of the dcgettext(3) function.
Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -1,9 +1,6 @@
/* Implementation of the internal dcigettext function.
Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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
@ -99,6 +96,11 @@ void free ();
/* Thread safetyness. */
#ifdef _LIBC
# include <bits/libc-lock.h>
#else
/* Provide dummy implementation if this is outside glibc. */
# define __libc_lock_define_initialized (CLASS, NAME)
# define __libc_lock_lock(NAME)
# define __libc_lock_unlock(NAME)
#endif
/* @@ end of prolog @@ */
@ -306,6 +308,9 @@ struct block_list
# define DCIGETTEXT dcigettext__
#endif
/* Lock variable to protect the global data in the gettext implementation. */
__libc_rwlock_define_initialized (, _nl_state_lock)
/* Checking whether the binaries runs SUID must be done and glibc provides
easier methods therefore we make a difference here. */
#ifdef _LIBC
@ -358,6 +363,8 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
if (msgid1 == NULL)
return NULL;
__libc_rwlock_rdlock (_nl_state_lock);
#if defined HAVE_TSEARCH || defined _LIBC
if (plural == 0)
{
@ -372,7 +379,10 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
foundp = (struct known_translation_t **) tfind (search, &root, transcmp);
if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr)
return (char *) (*foundp)->translation;
{
__libc_rwlock_unlock (_nl_state_lock);
return (char *) (*foundp)->translation;
}
}
#endif
@ -501,6 +511,7 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
|| strcmp (single_locale, "POSIX") == 0)
{
FREE_BLOCKS (block_list);
__libc_rwlock_unlock (_nl_state_lock);
__set_errno (saved_errno);
return (plural == 0
? (char *) msgid1
@ -539,7 +550,10 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
foundp = (struct known_translation_t **) tfind (search, &root,
transcmp);
if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr)
return (char *) (*foundp)->translation;
{
__libc_rwlock_unlock (_nl_state_lock);
return (char *) (*foundp)->translation;
}
}
#endif
@ -596,6 +610,7 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
(*foundp)->translation = retval;
}
#endif
__libc_rwlock_unlock (_nl_state_lock);
return retval;
}
}
@ -981,12 +996,9 @@ free_mem (void)
struct binding *runp;
for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next)
{
free (runp->domainname);
if (runp->dirname != _nl_default_dirname)
/* Yes, this is a pointer comparison. */
free (runp->dirname);
}
if (runp->dirname != _nl_default_dirname)
/* Yes, this is a pointer comparison. */
free (runp->dirname);
if (_nl_current_default_domain != _nl_default_default_domain)
/* Yes, again a pointer comparison. */

View File

@ -1,9 +1,6 @@
/* Implementation of the dcngettext(3) function.
Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -1,8 +1,5 @@
/* Implementation of the dgettext(3) function.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
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

View File

@ -1,9 +1,6 @@
/* Implementation of the dngettext(3) function.
Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -1,9 +1,6 @@
/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -1,10 +1,7 @@
/* Handle list of needed message catalogs
Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.org>, 1995.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -1,9 +1,6 @@
/* Implementation of gettext(3) function.
Copyright (C) 1995, 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -1,8 +1,5 @@
/* Internal header for GNU gettext internationalization functions.
Copyright (C) 1995, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
Copyright (C) 1995, 1997, 2000 Free Software Foundation, Inc.
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

View File

@ -136,8 +136,12 @@ struct loaded_domain
struct binding
{
struct binding *next;
char *domainname;
char *dirname;
#ifdef __GNUC__
char domainname[0];
#else
char domainname[1];
#endif
};
extern int _nl_msg_cat_cntr;

View File

@ -1,8 +1,5 @@
/* Implements a string hashing function.
Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
Copyright (C) 1995, 1997, 1998, 2000 Free Software Foundation, Inc.
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

View File

@ -1,9 +1,6 @@
/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
/* Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -2,9 +2,6 @@
Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
This file is derived from the file libgettext.h in the GNU gettext package.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -1,9 +1,6 @@
/* Load needed message catalogs.
Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -1,8 +1,5 @@
/* Handle aliases for locale names.
Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
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

View File

@ -1,9 +1,6 @@
/* Implementation of ngettext(3) function.
Copyright (C) 1995, 1997, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however.
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

View File

@ -1,8 +1,5 @@
/* Implementation of the textdomain(3) function.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
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
@ -41,6 +38,18 @@
#else
# include "libgettext.h"
#endif
#include "gettext.h"
#include "gettextP.h"
#ifdef _LIBC
/* We have to handle multi-threaded applications. */
# include <bits/libc-lock.h>
#else
/* Provide dummy implementation if this is outside glibc. */
# define __libc_lock_define_initialized (CLASS, NAME)
# define __libc_lock_lock(NAME)
# define __libc_lock_unlock(NAME)
#endif
/* @@ end of prolog @@ */
@ -64,6 +73,9 @@ extern const char *_nl_current_default_domain;
# define TEXTDOMAIN textdomain__
#endif
/* Lock variable to protect the global data in the gettext implementation. */
__libc_rwlock_define (extern, _nl_state_lock)
/* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */
@ -71,38 +83,60 @@ char *
TEXTDOMAIN (domainname)
const char *domainname;
{
char *old;
char *new_domain;
char *old_domain;
/* A NULL pointer requests the current setting. */
if (domainname == NULL)
return (char *) _nl_current_default_domain;
old = (char *) _nl_current_default_domain;
__libc_rwlock_wrlock (_nl_state_lock);
old_domain = (char *) _nl_current_default_domain;
/* If domain name is the null string set to default domain "messages". */
if (domainname[0] == '\0'
|| strcmp (domainname, _nl_default_default_domain) == 0)
_nl_current_default_domain = _nl_default_default_domain;
{
_nl_current_default_domain = _nl_default_default_domain;
new_domain = (char *) _nl_current_default_domain;
}
else if (strcmp (domainname, old_domain) == 0)
/* This can happen and people will use it to signal that some
environment variable changed. */
new_domain = old_domain;
else
{
/* If the following malloc fails `_nl_current_default_domain'
will be NULL. This value will be returned and so signals we
are out of core. */
#if defined _LIBC || defined HAVE_STRDUP
_nl_current_default_domain = strdup (domainname);
new_domain = strdup (domainname);
#else
size_t len = strlen (domainname) + 1;
char *cp = (char *) malloc (len);
if (cp != NULL)
memcpy (cp, domainname, len);
_nl_current_default_domain = cp;
new_domain = (char *) malloc (len);
if (new_domain != NULL)
memcpy (new_domain, domainname, len);
#endif
if (new_domain != NULL)
_nl_current_default_domain = new_domain;
}
if (old != _nl_default_default_domain)
free (old);
/* We use this possibility to signal a change of the loaded catalogs
since this is most likely the case and there is no other easy we
to do it. Do it only when the call was successful. */
if (new_domain != NULL)
{
++_nl_msg_cat_cntr;
return (char *) _nl_current_default_domain;
if (old_domain != new_domain && old_domain != _nl_default_default_domain)
free (old_domain);
}
__libc_rwlock_unlock (_nl_state_lock);
return new_domain;
}
#ifdef _LIBC

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 1995-1999, 2000 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
@ -106,13 +106,11 @@ __BEGIN_DECLS
# ifdef __S_IFIFO
# define S_IFIFO __S_IFIFO
# endif
# if defined __USE_BSD || defined __USE_MISC
# ifdef __S_IFLNK
# define S_IFLNK __S_IFLNK
# endif
# ifdef __S_IFSOCK
# define S_IFSOCK __S_IFSOCK
# endif
# ifdef __S_IFLNK
# define S_IFLNK __S_IFLNK
# endif
# if (defined __USE_BSD || defined __USE_MISC) && !defined __S_IFSOCK
# define S_IFSOCK __S_IFSOCK
# endif
#endif
@ -127,11 +125,12 @@ __BEGIN_DECLS
#ifdef __S_IFIFO
# define S_ISFIFO(mode) __S_ISTYPE((mode), __S_IFIFO)
#endif
#ifdef __S_IFLNK
# define S_ISLNK(mode) __S_ISTYPE((mode), __S_IFLNK)
#endif
#ifdef __USE_BSD
# ifdef __S_IFLNK
# define S_ISLNK(mode) __S_ISTYPE((mode), __S_IFLNK)
# else
# ifndef __S_IFLNK
# define S_ISLNK(mode) 0
# endif
# ifdef __S_IFSOCK
@ -145,7 +144,7 @@ __BEGIN_DECLS
#define S_ISUID __S_ISUID /* Set user ID on execution. */
#define S_ISGID __S_ISGID /* Set group ID on execution. */
#if defined __USE_BSD || defined __USE_MISC
#if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN
/* Save swapped text after use (sticky bit). This is pretty well obsolete. */
# define S_ISVTX __S_ISVTX
#endif

View File

@ -1,5 +1,5 @@
/* Definitions for getting information about a filesystem.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000 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
@ -25,6 +25,26 @@
/* Get the system-specific definition of `struct statfs'. */
#include <bits/statvfs.h>
#ifndef __USE_FILE_OFFSET64
# ifndef __fsblkcnt_t_defined
typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks. */
# define __fsblkcnt_t_defined
# endif
# ifndef __fsfilcnt_t_defined
typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes. */
# define __fsfilcnt_t_defined
# endif
#else
# ifndef __fsblkcnt_t_defined
typedef __fsblkcnt64_t fsblkcnt_t; /* Type to count file system blocks. */
# define __fsblkcnt_t_defined
# endif
# ifndef __fsfilcnt_t_defined
typedef __fsfilcnt64_t fsfilcnt_t; /* Type to count file system inodes. */
# define __fsfilcnt_t_defined
# endif
#endif
__BEGIN_DECLS
/* Return information about the filesystem on which FILE resides. */

View File

@ -1,8 +1,15 @@
2000-02-27 Ulrich Drepper <drepper@redhat.com>
* rwlock.c: Define __* variants of the functions and make old names
aliases.
* Versions [GLIBC_2.2]: Export the __pthread_rwlock_* functions.
* sysdeps/pthread/bits/libc-lock.h: Define __libc_rwlock_* macros.
2000-02-25 Andreas Jaeger <aj@suse.de>
* Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
pwrite64, lseek64, open64, and __open64 with version 2.2.
pwrite64, lseek64, open64, and __open64 with version 2.2.
2000-02-22 Ulrich Drepper <drepper@redhat.com>
* semaphore.h (SEM_FAILED): Use 0 not NULL.

View File

@ -124,5 +124,10 @@ libpthread {
open64; __open64;
__res_state;
# Names used internally.
__pthread_rwlock_init; __pthread_rwlock_destroy; __pthread_rwlock_rdlock;
__pthread_rwlock_tryrdlock; __pthread_rwlock_wrlock;
__pthread_rwlock_trywrlock; __pthread_rwlock_unlock;
}
}

View File

@ -183,7 +183,7 @@ rwlock_have_already(pthread_descr *pself, pthread_rwlock_t *rwlock,
}
int
pthread_rwlock_init (pthread_rwlock_t *rwlock,
__pthread_rwlock_init (pthread_rwlock_t *rwlock,
const pthread_rwlockattr_t *attr)
{
__pthread_init_lock(&rwlock->__rw_lock);
@ -205,10 +205,11 @@ pthread_rwlock_init (pthread_rwlock_t *rwlock,
return 0;
}
strong_alias (__pthread_init_lock, pthread_init_lock)
int
pthread_rwlock_destroy (pthread_rwlock_t *rwlock)
__pthread_rwlock_destroy (pthread_rwlock_t *rwlock)
{
int readers;
_pthread_descr writer;
@ -223,16 +224,17 @@ pthread_rwlock_destroy (pthread_rwlock_t *rwlock)
return 0;
}
strong_alias (__pthread_rwlock_destroy, pthread_rwlock_destroy)
int
pthread_rwlock_rdlock (pthread_rwlock_t *rwlock)
__pthread_rwlock_rdlock (pthread_rwlock_t *rwlock)
{
pthread_descr self = NULL;
pthread_readlock_info *existing;
int out_of_mem, have_lock_already;
have_lock_already = rwlock_have_already(&self, rwlock,
&existing, &out_of_mem);
&existing, &out_of_mem);
for (;;)
{
@ -262,9 +264,10 @@ pthread_rwlock_rdlock (pthread_rwlock_t *rwlock)
return 0;
}
strong_alias (__pthread_rwlock_rdlock, pthread_rwlock_rdlock)
int
pthread_rwlock_tryrdlock (pthread_rwlock_t *rwlock)
__pthread_rwlock_tryrdlock (pthread_rwlock_t *rwlock)
{
pthread_descr self = thread_self();
pthread_readlock_info *existing;
@ -303,10 +306,11 @@ pthread_rwlock_tryrdlock (pthread_rwlock_t *rwlock)
return retval;
}
strong_alias (__pthread_rwlock_tryrdlock, pthread_rwlock_tryrdlock)
int
pthread_rwlock_wrlock (pthread_rwlock_t *rwlock)
__pthread_rwlock_wrlock (pthread_rwlock_t *rwlock)
{
pthread_descr self = thread_self ();
@ -326,10 +330,11 @@ pthread_rwlock_wrlock (pthread_rwlock_t *rwlock)
suspend (self); /* This is not a cancellation point */
}
}
strong_alias (__pthread_rwlock_wrlock, pthread_rwlock_wrlock)
int
pthread_rwlock_trywrlock (pthread_rwlock_t *rwlock)
__pthread_rwlock_trywrlock (pthread_rwlock_t *rwlock)
{
int result = EBUSY;
@ -343,10 +348,11 @@ pthread_rwlock_trywrlock (pthread_rwlock_t *rwlock)
return result;
}
strong_alias (__pthread_rwlock_trywrlock, pthread_rwlock_trywrlock)
int
pthread_rwlock_unlock (pthread_rwlock_t *rwlock)
__pthread_rwlock_unlock (pthread_rwlock_t *rwlock)
{
pthread_descr torestart;
pthread_descr th;
@ -425,6 +431,7 @@ pthread_rwlock_unlock (pthread_rwlock_t *rwlock)
return 0;
}
strong_alias (__pthread_rwlock_unlock, pthread_rwlock_unlock)
@ -439,10 +446,11 @@ pthread_rwlockattr_init (pthread_rwlockattr_t *attr)
int
pthread_rwlockattr_destroy (pthread_rwlockattr_t *attr)
__pthread_rwlockattr_destroy (pthread_rwlockattr_t *attr)
{
return 0;
}
strong_alias (__pthread_rwlockattr_destroy, pthread_rwlockattr_destroy)
int

View File

@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. LinuxThreads version.
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 1999, 2000 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
@ -25,8 +25,10 @@
/* Mutex type. */
#ifdef _LIBC
typedef pthread_mutex_t __libc_lock_t;
typedef pthread_rwlock_t __libc_rwlock_t;
#else
typedef struct __libc_lock_opaque__ __libc_lock_t;
typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
#endif
/* Type for key to thread-specific data. */
@ -41,6 +43,8 @@ typedef pthread_key_t __libc_key_t;
of libc. */
#define __libc_lock_define(CLASS,NAME) \
CLASS __libc_lock_t NAME;
#define __libc_rwlock_define(CLASS,NAME) \
CLASS __libc_rwlock_t NAME;
/* Define an initialized lock variable NAME with storage class CLASS.
@ -50,6 +54,8 @@ typedef pthread_key_t __libc_key_t;
section. */
#define __libc_lock_define_initialized(CLASS,NAME) \
CLASS __libc_lock_t NAME;
#define __libc_rwlock_define_initialized(CLASS,NAME) \
CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER;
/* Define an initialized recursive lock variable NAME with storage
class CLASS. */
@ -60,6 +66,8 @@ typedef pthread_key_t __libc_key_t;
state. */
#define __libc_lock_init(NAME) \
(__pthread_mutex_init != NULL ? __pthread_mutex_init (&(NAME), NULL) : 0);
#define __libc_rwlock_init(NAME) \
(__pthread_rwlock_init != NULL ? __pthread_rwlock_init (&(NAME), NULL) : 0);
/* Same as last but this time we initialize a recursive mutex. */
#define __libc_lock_init_recursive(NAME) \
@ -79,6 +87,8 @@ typedef pthread_key_t __libc_key_t;
called on a lock variable before the containing storage is reused. */
#define __libc_lock_fini(NAME) \
(__pthread_mutex_destroy != NULL ? __pthread_mutex_destroy (&(NAME)) : 0);
#define __libc_rwlock_fini(NAME) \
(__pthread_rwlock_destroy != NULL ? __pthread_rwlock_destroy (&(NAME)) : 0);
/* Finalize recursive named lock. */
#define __libc_lock_fini_recursive(NAME) __libc_lock_fini (NAME)
@ -86,6 +96,10 @@ typedef pthread_key_t __libc_key_t;
/* Lock the named lock variable. */
#define __libc_lock_lock(NAME) \
(__pthread_mutex_lock != NULL ? __pthread_mutex_lock (&(NAME)) : 0);
#define __libc_rwlock_rdlock(NAME) \
(__pthread_rwlock_rdlock != NULL ? __pthread_rwlock_rdlock (&(NAME)) : 0);
#define __libc_rwlock_wrlock(NAME) \
(__pthread_rwlock_wrlock != NULL ? __pthread_rwlock_wrlock (&(NAME)) : 0);
/* Lock the recursive named lock variable. */
#define __libc_lock_lock_recursive(NAME) __libc_lock_lock (NAME)
@ -93,6 +107,12 @@ typedef pthread_key_t __libc_key_t;
/* Try to lock the named lock variable. */
#define __libc_lock_trylock(NAME) \
(__pthread_mutex_trylock != NULL ? __pthread_mutex_trylock (&(NAME)) : 0)
#define __libc_rwlock_tryrdlock(NAME) \
(__pthread_rwlock_tryrdlock != NULL \
? __pthread_rwlock_tryrdlock (&(NAME)) : 0)
#define __libc_rwlock_trywrlock(NAME) \
(__pthread_rwlock_trywrlock != NULL \
? __pthread_rwlock_trywrlock (&(NAME)) : 0)
/* Try to lock the recursive named lock variable. */
#define __libc_lock_trylock_recursive(NAME) __libc_lock_trylock (NAME)
@ -100,6 +120,8 @@ typedef pthread_key_t __libc_key_t;
/* Unlock the named lock variable. */
#define __libc_lock_unlock(NAME) \
(__pthread_mutex_unlock != NULL ? __pthread_mutex_unlock (&(NAME)) : 0);
#define __libc_rwlock_unlock(NAME) \
(__pthread_rwlock_unlock != NULL ? __pthread_rwlock_unlock (&(NAME)) : 0);
/* Unlock the recursive named lock variable. */
#define __libc_lock_unlock_recursive(NAME) __libc_lock_unlock (NAME)
@ -187,6 +209,21 @@ extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
int __kind);
extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
__const pthread_rwlockattr_t *__attr);
extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
extern int __pthread_key_create (pthread_key_t *__key,
void (*__destr_function) (void *));
@ -216,6 +253,13 @@ weak_extern (__pthread_mutex_unlock)
weak_extern (__pthread_mutexattr_init)
weak_extern (__pthread_mutexattr_destroy)
weak_extern (__pthread_mutexattr_settype)
weak_extern (__pthread_rwlock_init)
weak_extern (__pthread_rwlock_destroy)
weak_extern (__pthread_rwlock_rdlock)
weak_extern (__pthread_rwlock_tryrdlock)
weak_extern (__pthread_rwlock_wrlock)
weak_extern (__pthread_rwlock_trywrlock)
weak_extern (__pthread_rwlock_unlock)
weak_extern (__pthread_key_create)
weak_extern (__pthread_setspecific)
weak_extern (__pthread_getspecific)
@ -233,6 +277,12 @@ weak_extern (_pthread_cleanup_pop_restore)
# pragma weak __pthread_mutexattr_init
# pragma weak __pthread_mutexattr_destroy
# pragma weak __pthread_mutexattr_settype
# pragna weak __pthread_rwlock_destroy
# pragma weak __pthread_rwlock_rdlock
# pragma weak __pthread_rwlock_tryrdlock
# pragma weak __pthread_rwlock_wrlock
# pragma weak __pthread_rwlock_trywrlock
# pragma weak __pthread_rwlock_unlock
# pragma weak __pthread_key_create
# pragma weak __pthread_setspecific
# pragma weak __pthread_getspecific

View File

@ -1,5 +1,5 @@
/* Iterate over a process's threads.
Copyright (C) 1999 Free Software Foundation, Inc.
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
@ -19,7 +19,7 @@
Boston, MA 02111-1307, USA. */
#include "thread_dbP.h"
#include <alloca.h>
static int
handle_descr (const td_thragent_t *ta, td_thr_iter_f *callback,

View File

@ -1,5 +1,5 @@
/* Iterate over a process's thread-specific data.
Copyright (C) 1999 Free Software Foundation, Inc.
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
@ -19,7 +19,7 @@
Boston, MA 02111-1307, USA. */
#include "thread_dbP.h"
#include <alloca.h>
td_err_e
td_ta_tsd_iter (const td_thragent_t *ta, td_key_iter_f *callback,

View File

@ -144,8 +144,10 @@ enum
ERA, /* Alternate era. */
#define ERA ERA
ERA_YEAR, /* Year in alternate era format. */
#define ERA_YEAR ERA_YEAR
__ERA_YEAR, /* Year in alternate era format. */
#ifdef __USE_GNU
# define ERA_YEAR __ERA_YEAR
#endif
ERA_D_FMT, /* Date in alternate era format. */
#define ERA_D_FMT ERA_D_FMT
ALT_DIGITS, /* Alternate symbols for digits. */
@ -320,36 +322,66 @@ enum
/* LC_MONETARY category: formatting of monetary quantities.
These items each correspond to a member of `struct lconv',
defined in <locale.h>. */
INT_CURR_SYMBOL = _NL_ITEM (LC_MONETARY, 0),
#define INT_CURR_SYMBOL INT_CURR_SYMBOL
CURRENCY_SYMBOL,
#define CURRENCY_SYMBOL CURRENCY_SYMBOL
MON_DECIMAL_POINT,
#define MON_DECIMAL_POINT MON_DECIMAL_POINT
MON_THOUSANDS_SEP,
#define MON_THOUSANDS_SEP MON_THOUSANDS_SEP
MON_GROUPING,
#define MON_GROUPING MON_GROUPING
POSITIVE_SIGN,
#define POSITIVE_SIGN POSITIVE_SIGN
NEGATIVE_SIGN,
#define NEGATIVE_SIGN NEGATIVE_SIGN
INT_FRAC_DIGITS,
#define INT_FRAC_DIGITS INT_FRAC_DIGITS
FRAC_DIGITS,
#define FRAC_DIGITS FRAC_DIGITS
P_CS_PRECEDES,
#define P_CS_PRECEDES P_CS_PRECEDES
P_SEP_BY_SPACE,
#define P_SEP_BY_SPACE P_SEP_BY_SPACE
N_CS_PRECEDES,
#define N_CS_PRECEDES N_CS_PRECEDES
N_SEP_BY_SPACE,
#define N_SEP_BY_SPACE N_SEP_BY_SPACE
P_SIGN_POSN,
#define P_SIGN_POSN P_SIGN_POSN
N_SIGN_POSN,
#define N_SIGN_POSN N_SIGN_POSN
__INT_CURR_SYMBOL = _NL_ITEM (LC_MONETARY, 0),
#ifdef __USE_GNU
# define INT_CURR_SYMBOL __INT_CURR_SYMBOL
#endif
__CURRENCY_SYMBOL,
#ifdef __USE_GNU
# define CURRENCY_SYMBOL __CURRENCY_SYMBOL
#endif
__MON_DECIMAL_POINT,
#ifdef __USE_GNU
# define MON_DECIMAL_POINT __MON_DECIMAL_POINT
#endif
__MON_THOUSANDS_SEP,
#ifdef __USE_GNU
# define MON_THOUSANDS_SEP __MON_THOUSANDS_SEP
#endif
__MON_GROUPING,
#ifdef __USE_GNU
# define MON_GROUPING __MON_GROUPING
#endif
__POSITIVE_SIGN,
#ifdef __USE_GNU
# define POSITIVE_SIGN __POSITIVE_SIGN
#endif
__NEGATIVE_SIGN,
#ifdef __USE_GNU
# define NEGATIVE_SIGN __NEGATIVE_SIGN
#endif
__INT_FRAC_DIGITS,
#ifdef __USE_GNU
# define INT_FRAC_DIGITS __INT_FRAC_DIGITS
#endif
__FRAC_DIGITS,
#ifdef __USE_GNU
# define FRAC_DIGITS __FRAC_DIGITS
#endif
__P_CS_PRECEDES,
#ifdef __USE_GNU
# define P_CS_PRECEDES __P_CS_PRECEDES
#endif
__P_SEP_BY_SPACE,
#ifdef __USE_GNU
# define P_SEP_BY_SPACE __P_SEP_BY_SPACE
#endif
__N_CS_PRECEDES,
#ifdef __USE_GNU
# define N_CS_PRECEDES __N_CS_PRECEDES
#endif
__N_SEP_BY_SPACE,
#ifdef __USE_GNU
# define N_SEP_BY_SPACE __N_SEP_BY_SPACE
#endif
__P_SIGN_POSN,
#ifdef __USE_GNU
# define P_SIGN_POSN __P_SIGN_POSN
#endif
__N_SIGN_POSN,
#ifdef __USE_GNU
# define N_SIGN_POSN __N_SIGN_POSN
#endif
_NL_MONETARY_CRNCYSTR,
#ifdef __USE_XOPEN
# define CRNCYSTR __CRNCYSTR
@ -387,32 +419,46 @@ enum
/* LC_NUMERIC category: formatting of numbers.
These also correspond to members of `struct lconv'; see <locale.h>. */
DECIMAL_POINT = _NL_ITEM (LC_NUMERIC, 0),
#define DECIMAL_POINT DECIMAL_POINT
__DECIMAL_POINT = _NL_ITEM (LC_NUMERIC, 0),
#ifdef __USE_GNU
# define DECIMAL_POINT __DECIMAL_POINT
#endif
#ifdef __USE_XOPEN
RADIXCHAR = DECIMAL_POINT,
RADIXCHAR = __DECIMAL_POINT,
# define RADIXCHAR RADIXCHAR
#endif
THOUSANDS_SEP,
#define THOUSANDS_SEP THOUSANDS_SEP
#ifdef __USE_XOPEN
THOUSEP = THOUSANDS_SEP,
# define THOUSANDS_SEP THOUSANDS_SEP
__THOUSANDS_SEP,
#ifdef __USE_GNU
# define THOUSANDS_SEP __THOUSANDS_SEP
#endif
#ifdef __USE_XOPEN
THOUSEP = __THOUSANDS_SEP,
# define THOUSANDS_SEP __THOUSANDS_SEP
#endif
__GROUPING,
#ifdef __USE_GNU
# define GROUPING __GROUPING
#endif
GROUPING,
#define GROUPING GROUPING
_NL_NUMERIC_DECIMAL_POINT_WC,
_NL_NUMERIC_THOUSANDS_SEP_WC,
_NL_NUM_LC_NUMERIC,
YESEXPR = _NL_ITEM (LC_MESSAGES, 0), /* Regex matching ``yes'' input. */
#define YESEXPR YESEXPR
NOEXPR, /* Regex matching ``no'' input. */
#define NOEXPR NOEXPR
YESSTR, /* Output string for ``yes''. */
#define YESSTR YESSTR
NOSTR, /* Output string for ``no''. */
#define NOSTR NOSTR
__YESEXPR = _NL_ITEM (LC_MESSAGES, 0), /* Regex matching ``yes'' input. */
#ifdef __USE_GNU
# define YESEXPR __YESEXPR
#endif
__NOEXPR, /* Regex matching ``no'' input. */
#ifdef __USE_GNU
# define NOEXPR __NOEXPR
#endif
__YESSTR, /* Output string for ``yes''. */
#ifdef __USE_GNU
# define YESSTR __YESSTR
#endif
__NOSTR, /* Output string for ``no''. */
#ifdef __USE_GNU
# define NOSTR __NOSTR
#endif
_NL_NUM_LC_MESSAGES,
_NL_PAPER_HEIGHT = _NL_ITEM (LC_PAPER, 0),

View File

@ -165,7 +165,7 @@ endif
endif
# The fdlibm code generates a lot of these warnings but is otherwise clean.
override CFLAGS += -Wno-uninitialized -Wno-write-strings
override CFLAGS += -Wno-uninitialized
# The -lieee library is actually an object file.
# The module just defines the _LIB_VERSION_ variable.

View File

@ -1,5 +1,5 @@
/* Prototype declarations for math functions; helper file for <math.h>.
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 1999, 2000 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
@ -235,6 +235,9 @@ __MATHCALL (yn,, (int, _Mdouble_));
__MATHCALL (erf,, (_Mdouble_));
__MATHCALL (erfc,, (_Mdouble_));
__MATHCALL (lgamma,, (_Mdouble_));
#endif
#ifdef __USE_ISOC99
__MATHCALL (tgamma,, (_Mdouble_));
#endif
@ -270,8 +273,10 @@ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y));
__MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n));
# endif
# if defined __USE_MISC || defined __USE_ISOC99
/* Return X times (2 to the Nth power). */
__MATHCALL (scalbn,, (_Mdouble_ __x, int __n));
# endif
/* Return the binary exponent of X, which must be nonzero. */
__MATHDECL (int,ilogb,, (_Mdouble_ __x));

View File

@ -3205,15 +3205,16 @@ msgstr "
#: locale/programs/ld-monetary.c:369 locale/programs/ld-numeric.c:193
#, c-format
msgid "`-1' must be last entry in `%s' field in `%s' category"
msgstr "»-1« muß der letzte Eintrag im »%s«-Feld in der »%s«-Kategorie sein"
msgstr "»-1« muß der letzte Eintrag im »%s«-Feld der »%s«-Kategorie sein"
#: locale/programs/ld-collate.c:1670
msgid "`...' must only be used in `...' and `UNDEFINED' entries"
msgstr "»...« darf nur in »...« und »UNDEFINED« Einträgen verwendet werden"
msgstr "»...« darf nur in »...« und »UNDEFINED«-Einträgen verwendet werden"
# Alternative: ... muss ... nach ... kommen
#: locale/programs/locfile.c:674
msgid "`from' expected after first argument to `collating-element'"
msgstr "»from« erwartet nach dem ersten Argument von »collating-element«"
msgstr "»from« wird nach dem ersten Argument von »collating-element« erwartet"
#: locale/programs/ld-collate.c:1122
msgid "`from' string in collation element declaration contains unknown character"
@ -3306,7 +3307,7 @@ msgstr "Kann die Abk
#: sunrpc/svc_simple.c:75
#, c-format
msgid "can't reassign procedure number %d\n"
msgstr "Kann die Prozedurnummer %d nicht erneut zuweisen\n"
msgstr "Kann die Nummer der Prozedur %d nicht erneut zuweisen\n"
#: locale/programs/localedef.c:276
#, c-format
@ -3325,10 +3326,11 @@ msgstr "Kann keinen internen Deskriptor erzeugen"
msgid "cannot create internal descriptors"
msgstr "Kann keine internen Deskriptoren erzeugen"
# ;-)
#: nscd/connections.c:183
#, c-format
msgid "cannot enable socket to accept connections: %s"
msgstr "Der Socken kann nicht zum Annehmen von Verbindungen aktiviert werden: %s"
msgstr "Der Socket kann nicht zum Annehmen von Verbindungen aktiviert werden: %s"
#: sunrpc/rpc_main.c:341
#, c-format
@ -3750,12 +3752,13 @@ msgstr "Die Datei
#: locale/programs/locfile.c:683
msgid "from-value of `collating-element' must be a string"
msgstr "Der »From«-Wert eines Sortierelementes muß ein String sein"
msgstr "Der »From«-Wert eines Sortierelementes muß eine Zeichenkette sein"
#: inet/rcmd.c:324
msgid "fstat failed"
msgstr "Fehler beim Holen des Datei-Status mit »fstat«"
# Gut! ;-)
#: locale/programs/linereader.c:333
msgid "garbage at end of character code specification"
msgstr "Murks am Ende einer Zeichensatzspezifikation"
@ -4073,7 +4076,7 @@ msgstr "netname2user: der Principal-Name
#: nis/nss_nisplus/nisplus-publickey.c:374
msgid "netname2user: should not have uid 0"
msgstr "netname2user: Sollte nicht die Benutzernummer 0 haben"
msgstr "netname2user: sollte nicht die Benutzernummer 0 haben"
#: sunrpc/svc_simple.c:158
#, c-format
@ -4178,9 +4181,10 @@ msgstr "Fehler beim Aufruf des Pr
msgid "print list of count paths and their number of use"
msgstr "Gib eine Liste der gezählten Pfade und der Anzahl der Benutzung aus"
# So sonst oft.
#: iconv/iconv_prog.c:61
msgid "print progress information"
msgstr "Gebe Informationen über den Bearbeitungsstand aus"
msgstr "Gib Informationen über den Bearbeitungsstand aus"
#: db2/makedb.c:345
#, c-format
@ -4466,7 +4470,7 @@ msgstr "Syntaxfehler im Prolog: %s"
#: locale/programs/repertoire.c:272
#, c-format
msgid "syntax error in repertoire map definition: %s"
msgstr "Syntaxfehler in der »epertoire« Map-Definition: %s"
msgstr "Syntaxfehler in der »repertoire« Map-Definition: %s"
#: locale/programs/locfile.c:985
msgid "syntax error in time locale definition"
@ -4625,7 +4629,7 @@ msgstr "Syntax: %s Eingabedatei\n"
#: timezone/zic.c:2109
msgid "use of 2/29 in non leap-year"
msgstr "Der 29. Februar wurde in einem nicht-Schaltjahr verwendet"
msgstr "Der 29. Februar wurde in einem Jahr verwendet, das kein Schaltjahr ist"
#: locale/programs/charmap.c:521 locale/programs/charmap.c:575
#, c-format

1702
po/ko.po

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
/* Copyright (C) 1991,92,94,95,96,97,98,99,2000 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
@ -97,8 +97,9 @@ typedef __pid_t pid_t;
# define __pid_t_defined
#endif
#if defined __USE_SVID || defined __USE_XOPEN
#if (defined __USE_SVID || defined __USE_XOPEN) && !defined __id_t_defined
typedef __id_t id_t;
# define __id_t_defined
#endif
#ifndef __ssize_t_defined
@ -127,7 +128,10 @@ typedef __key_t key_t;
typedef __useconds_t useconds_t;
# define __useconds_t_defined
# endif
# ifndef __suseconds_t_defined
typedef __suseconds_t suseconds_t;
# define __suseconds_t_defined
# endif
#endif
#define __need_size_t
@ -218,15 +222,27 @@ typedef __blksize_t blksize_t;
typedef __blkcnt_t blkcnt_t; /* Type to count number of disk blocks. */
# define __blkcnt_t_defined
# endif
# ifndef __fsblkcnt_t_defined
typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks. */
# define __fsblkcnt_t_defined
# endif
# ifndef __fsfilcnt_t_defined
typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes. */
# define __fsfilcnt_t_defined
# endif
#else
# ifndef __blkcnt_t_defined
typedef __blkcnt64_t blkcnt_t; /* Type to count number of disk blocks. */
# define __blkcnt_t_defined
# endif
# ifndef __fsblkcnt_t_defined
typedef __fsblkcnt64_t fsblkcnt_t; /* Type to count file system blocks. */
# define __fsblkcnt_t_defined
# endif
# ifndef __fsfilcnt_t_defined
typedef __fsfilcnt64_t fsfilcnt_t; /* Type to count file system inodes. */
# define __fsfilcnt_t_defined
# endif
#endif
#ifdef __USE_LARGEFILE64

View File

@ -864,15 +864,12 @@ extern int getdtablesize (void) __THROW;
Returns zero on success and -1 for errors (with errno set). */
extern int brk (void *__addr) __THROW;
# define __need_ptrdiff_t
# include <stddef.h>
/* Increase or decrease the end of accessible data space by DELTA bytes.
If successful, returns the address the previous end of data space
(i.e. the beginning of the new space, if DELTA > 0);
returns (void *) -1 for errors (with errno set). */
extern void *__sbrk (ptrdiff_t __delta) __THROW;
extern void *sbrk (ptrdiff_t __delta) __THROW;
extern void *__sbrk (intptr_t __delta) __THROW;
extern void *sbrk (intptr_t __delta) __THROW;
#endif

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1992, 94, 96, 97, 98, 99 Free Software Foundation, Inc.
/* Copyright (C) 1992, 94, 96, 97, 98, 99, 2000 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
@ -24,16 +24,35 @@
/* Get the system-dependent definitions of structures and bit values. */
#include <bits/resource.h>
#ifndef __id_t_defined
typedef __id_t id_t;
# define __id_t_defined
#endif
__BEGIN_DECLS
/* The X/Open standard defines that all the functions below must use
`int' as the type for the first argument. When we are compiling with
GNU extensions we change this slightly to provide better error
checking. */
#ifdef __USE_GNU
typedef enum __rlimit_resource __rlimit_resource_t;
typedef enum __rusage_who __rusage_who_t;
typedef enum __priority_which __priority_which_t;
#else
typedef int __rlimit_resource_t;
typedef int __rusage_who_t;
typedef int __priority_which_t;
#endif
/* Put the soft and hard limits for RESOURCE in *RLIMITS.
Returns 0 if successful, -1 if not (and sets errno). */
#ifndef __USE_FILE_OFFSET64
extern int getrlimit (enum __rlimit_resource __resource,
extern int getrlimit (__rlimit_resource_t __resource,
struct rlimit *__rlimits) __THROW;
#else
# ifdef __REDIRECT
extern int __REDIRECT (getrlimit, (enum __rlimit_resource __resource,
extern int __REDIRECT (getrlimit, (__rlimit_resource_t __resource,
struct rlimit *__rlimits) __THROW,
getrlimit64);
# else
@ -41,7 +60,7 @@ extern int __REDIRECT (getrlimit, (enum __rlimit_resource __resource,
# endif
#endif
#ifdef __USE_LARGEFILE64
extern int getrlimit64 (enum __rlimit_resource __resource,
extern int getrlimit64 (__rlimit_resource_t __resource,
struct rlimit64 *__rlimits) __THROW;
#endif
@ -49,11 +68,11 @@ extern int getrlimit64 (enum __rlimit_resource __resource,
Only the super-user can increase hard limits.
Return 0 if successful, -1 if not (and sets errno). */
#ifndef __USE_FILE_OFFSET64
extern int setrlimit (enum __rlimit_resource __resource,
extern int setrlimit (__rlimit_resource_t __resource,
__const struct rlimit *__rlimits) __THROW;
#else
# ifdef __REDIRECT
extern int __REDIRECT (setrlimit, (enum __rlimit_resource __resource,
extern int __REDIRECT (setrlimit, (__rlimit_resource_t __resource,
__const struct rlimit *__rlimits) __THROW,
setrlimit64);
# else
@ -61,23 +80,23 @@ extern int __REDIRECT (setrlimit, (enum __rlimit_resource __resource,
# endif
#endif
#ifdef __USE_LARGEFILE64
extern int setrlimit64 (enum __rlimit_resource __resource,
extern int setrlimit64 (__rlimit_resource_t __resource,
__const struct rlimit64 *__rlimits) __THROW;
#endif
/* Return resource usage information on process indicated by WHO
and put it in *USAGE. Returns 0 for success, -1 for failure. */
extern int getrusage (enum __rusage_who __who, struct rusage *__usage) __THROW;
extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __THROW;
/* Return the highest priority of any process specified by WHICH and WHO
(see above); if WHO is zero, the current process, process group, or user
(as specified by WHO) is used. A lower priority number means higher
priority. Priorities range from PRIO_MIN to PRIO_MAX (above). */
extern int getpriority (enum __priority_which __which, int __who) __THROW;
extern int getpriority (__priority_which_t __which, id_t __who) __THROW;
/* Set the priority of all processes specified by WHICH and WHO (see above)
to PRIO. Returns 0 on success, -1 on errors. */
extern int setpriority (enum __priority_which __which, int __who, int __prio)
extern int setpriority (__priority_which_t __which, id_t __who, int __prio)
__THROW;
__END_DECLS

View File

@ -1,5 +1,5 @@
/* libc-internal interface for mutex locks. Stub version.
Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1999, 2000 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
@ -29,9 +29,11 @@
begins with a `*'), because its storage size will not be known outside
of libc. */
#define __libc_lock_define(CLASS,NAME)
#define __libc_rwlock_define(CLASS,NAME)
/* Define an initialized lock variable NAME with storage class CLASS. */
#define __libc_lock_define_initialized(CLASS,NAME)
#define __libc_rwlock_define_initialized(CLASS,NAME)
/* Define an initialized recursive lock variable NAME with storage
class CLASS. */
@ -40,6 +42,7 @@
/* Initialize the named lock variable, leaving it in a consistent, unlocked
state. */
#define __libc_lock_init(NAME)
#define __libc_rwlock_init(NAME)
/* Same as last but this time we initialize a recursive mutex. */
#define __libc_lock_init_recursive(NAME)
@ -48,24 +51,30 @@
used again until __libc_lock_init is called again on it. This must be
called on a lock variable before the containing storage is reused. */
#define __libc_lock_fini(NAME)
#define __libc_rwlock_fini(NAME)
/* Finalize recursive named lock. */
#define __libc_lock_fini_recursive(NAME)
/* Lock the named lock variable. */
#define __libc_lock_lock(NAME)
#define __libc_rwlock_rdlock(NAME)
#define __libc_rwlock_wrlock(NAME)
/* Lock the recursive named lock variable. */
#define __libc_lock_lock_recursive(NAME)
/* Try to lock the named lock variable. */
#define __libc_lock_trylock(NAME) 0
#define __libc_rwlock_tryrdlock(NAME) 0
#define __libc_rwlock_trywrlock(NAME) 0
/* Try to lock the recursive named lock variable. */
#define __libc_lock_trylock_recursive(NAME) 0
/* Unlock the named lock variable. */
#define __libc_lock_unlock(NAME)
#define __libc_rwlock_unlock(NAME)
/* Unlock the recursive named lock variable. */
#define __libc_lock_unlock_recursive(NAME)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996, 1997, 2000 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
@ -20,7 +20,7 @@
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
/* Flags for `shmat'. */
#define SHM_RDONLY 010000 /* attach read-only else read-write */
@ -32,6 +32,9 @@
#define SHM_UNLOCK 12 /* unlock segment (root only) */
/* Type to count number of attaches. */
typedef unsigned short int shmatt_t;
/* Data structure describing a set of semaphores. */
struct shmid_ds
{
@ -42,5 +45,5 @@ struct shmid_ds
__time_t sem_ctime; /* time of last change by shmctl() */
__pid_t shm_cpid; /* pid of creator */
__pid_t shm_lpid; /* pid of last shmop */
unsigned short int shm_nattch; /* number of current attaches */
shmatt_t shm_nattch; /* number of current attaches */
};

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996, 1997, 2000 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
@ -26,7 +26,7 @@
int
getpriority (which, who)
enum __priority_which which;
int who;
id_t who;
{
__set_errno (ENOSYS);
return -1;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996, 1997, 2000 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
@ -29,7 +29,7 @@ extern int __libc_multiple_libcs; /* Defined in init-first.c. */
If INCREMENT is negative, shrink data space by - INCREMENT.
Return start of new space allocated, or -1 for errors. */
void *
__sbrk (ptrdiff_t increment)
__sbrk (intptr_t increment)
{
void *oldbrk;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996, 1997, 2000 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
@ -24,7 +24,7 @@
int
setpriority (which, who, prio)
enum __priority_which which;
int who;
id_t who;
int prio;
{
__set_errno (ENOSYS);

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996, 1997, 2000 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
@ -25,7 +25,7 @@
int
__utimes (file, tvp)
const char *file;
struct timeval tvp[2];
const struct timeval tvp[2];
{
if (file == NULL || tvp == NULL)
{

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996, 1997, 1998, 2000 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
@ -42,9 +42,9 @@ struct semid_ds
__time_t sem_otime; /* last semop() time */
__time_t sem_ctime; /* last time changed by semctl() */
struct sem *__sembase; /* ptr to first semaphore in array */
struct sem_queue *__sem_pending; /* pending operations */
struct sem_queue *__sem_pending_last; /* last pending operation */
struct sem_undo *__undo; /* ondo requests on this array */
struct __sem_queue *__sem_pending; /* pending operations */
struct __sem_queue *__sem_pending_last;/* last pending operation */
struct __sem_undo *__undo; /* ondo requests on this array */
unsigned short int sem_nsems; /* number of semaphores in set */
};

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996, 1997, 2000 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
@ -20,7 +20,7 @@
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
/* Permission flag for shmget. */
#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
@ -36,6 +36,9 @@
#define SHM_UNLOCK 12 /* unlock segment (root only) */
/* Type to count number of attaches. */
typedef unsigned short int shmatt_t;
/* Data structure describing a set of semaphores. */
struct shmid_ds
{
@ -46,7 +49,7 @@ struct shmid_ds
__time_t shm_ctime; /* time of last change by shmctl() */
__ipc_pid_t shm_cpid; /* pid of creator */
__ipc_pid_t shm_lpid; /* pid of last shmop */
unsigned short int shm_nattch; /* number of current attaches */
shmatt_t shm_nattch; /* number of current attaches */
unsigned short int __shm_npages; /* size of segment (pages) */
unsigned long int *__shm_pages; /* array of ptrs to frames -> SHMMAX */
struct vm_area_struct *__attaches; /* descriptors for attaches */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1994, 1995, 1996, 1997, 2000 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
@ -25,7 +25,7 @@
or user (as specified by WHO) is used. A lower priority number means higher
priority. Priorities range from PRIO_MIN to PRIO_MAX. */
int
getpriority (enum __priority_which which, int who)
getpriority (enum __priority_which which, id_t who)
{
error_t err, onerr;
int maxpri = INT_MIN;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 94, 95, 97, 98 Free Software Foundation, Inc.
/* Copyright (C) 1991, 94, 95, 97, 98, 2000 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
@ -24,7 +24,7 @@
If INCREMENT is negative, shrink data space by - INCREMENT.
Return the address of the start of the new data space, or -1 for errors. */
void *
__sbrk (int increment)
__sbrk (intptr_t increment)
{
void *result;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1994, 1995, 1997, 2000 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
@ -22,7 +22,7 @@
/* Set the priority of all processes specified by WHICH and WHO
to PRIO. Returns 0 on success, -1 on errors. */
int
setpriority (enum __priority_which which, int who, int prio)
setpriority (enum __priority_which which, id_t who, int prio)
{
error_t err;
error_t pidloser, priloser;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 97, 99 Free Software Foundation, Inc.
/* Copyright (C) 1991-1995, 97, 99, 2000 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
@ -26,7 +26,7 @@
int
__utimes (file, tvp)
const char *file;
struct timeval tvp[2];
const struct timeval tvp[2];
{
struct timeval timevals[2];
error_t err;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1997, 2000 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
@ -24,7 +24,7 @@
/* Change the access time of FILE to TVP[0] and
the modification time of FILE to TVP[1]. */
int
__utimes (const char *file, struct timeval tvp[2])
__utimes (const char *file, const struct timeval tvp[2])
{
struct utimbuf buf, *times;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1994, 1996, 1997, 2000 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
@ -29,7 +29,7 @@ extern int __sysmp __P ((int, ...));
int
getpriority (which, who)
enum __priority_which which;
int who;
id_t who;
{
switch (which)
{

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1994, 1996, 1997, 2000 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
@ -23,7 +23,7 @@
int
setpriority (which, who, prio)
enum __priority_which which;
int who;
id_t who;
int prio;
{
switch (which)

View File

@ -20,7 +20,7 @@
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
#endif
#include <sys/types.h>
#include <bits/types.h>
/* Permission flag for shmget. */
#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
@ -36,6 +36,9 @@
#define SHM_UNLOCK 12 /* unlock segment (root only) */
/* Type to count number of attaches. */
typedef unsigned long int shmatt_t;
/* Data structure describing a set of semaphores. */
struct shmid_ds
{
@ -44,9 +47,9 @@ struct shmid_ds
__time_t shm_atime; /* time of last shmat() */
__time_t shm_dtime; /* time of last shmdt() */
__time_t shm_ctime; /* time of last change by shmctl() */
pid_t shm_cpid; /* pid of creator */
pid_t shm_lpid; /* pid of last shmop */
unsigned long int shm_nattch; /* number of current attaches */
__pid_t shm_cpid; /* pid of creator */
__pid_t shm_lpid; /* pid of last shmop */
shmatt_t shm_nattch; /* number of current attaches */
unsigned long int __unused1;
unsigned long int __unused2;
};

Some files were not shown because too many files have changed in this diff Show More