mirror of git://sourceware.org/git/glibc.git
Update.
* conform/conformtest.pl (@headers): Add sys/utsname.h, sys/un.h, sys/socket.h, spawn.h, netinet/tcp.h, netinet/in.h, net/if.h, and arpa/inet.h. * conform/data/fcntl.h-data: Add F_GETOWN, F_SETOWN, SEEK_SET, SEEK_CUR, SEEK_END, S_IFMT, S_IFBLK, S_IFCHR, S_IFIFO, S_IFREG, S_IFDIR, S_IFLNK, S_IFSOCK, S_IRWXU, S_IRUSR S_IWUSR, S_IXUSR, S_IRWXG, S_IRGRP, S_IWGRP, S_IXGRP, S_IRWXO, S_IROTH, S_IWOTH, S_IXOTH, S_ISUID, S_ISGID, S_ISVTX, POSIX_FADV_NORMAL, POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_WILLNEED, POSIX_FADV_DONTNEED, POSIX_FADV_NOREUSE, posix_fadvise, posix_fallocate, and posix_madvise. * conform/data/netdb.h-data: New file. * conform/data/pthread.h-data: Add pthread_barrier_t, pthread_barrierattr_t, pthread_barrier_destroy, pthread_barrier_init, pthread_barrier_wait, pthread_barrierattr_destroy, pthread_barrierattr_getpshared, pthread_barrierattr_init, pthread_barrierattr_setpshared, pthread_condattr_getclock, pthread_condattr_setclock, pthread_getcpuclockid, pthread_mutex_timedlock, pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock, pthread_sigmask, pthread_spin_destroy, pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, and pthread_spin_unlock. * conform/data/sched.h-data: Add sched_ss_low_priority, sched_ss_repl_period, sched_ss_init_budget, sched_ss_max_repl, and SCHED_SPORADIC. * conform/data/semaphore.h-data: Add sem_timedwait. * conform/data/signal.h-data: Add SIGIO. * conform/data/spawn.h-data: New file. * conform/data/stdlib.h-data: Add posix_memalign, setenv, and unsetenv. * conform/data/time.h-data: Add CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID, clock_getcpuclockid, and clock_nanosleep. Fix typo in gmtime_r definition. * conform/data/unistd.h-data: Add _POSIX_ADVISORY_INFO, _POSIX_ASYNCHRONOUS_IO, _POSIX_BARRIERS, _POSIX_MONOTONIC_CLOCK, _POSIX_READER_WRITER_LOCKS, _POSIX_SHELL, _POSIX_SPAWN, _POSIX_SPIN_LOCKS, _POSIX_SPORADIC_SERVER, _POSIX_THREAD_CPUTIME, _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_THREAD_SPORADIC_SERVER, _XOPEN_STREAMS, _POSIX_TIMEOUTS, _POSIX2_PBS, _POSIX2_PBS_ACCOUNTING, _POSIX2_PBS_CHECKPOINT, _POSIX2_PBS_LOCATE, _POSIX2_PBS_MESSAGE, _POSIX2_PBS_TRACK, _SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_CHECKPOINT, _SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK, _SC_BARRIERS, _SC_BASE, _SC_CLOCK_SELECTION, _SC_DEVICE_IO, _SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO, _SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_MONOTONIC_CLOCK, _SC_MESSAGE_PASSING, _SC_MONOTONIC_CLOCK, _SC_MULTIPLE_PROCESS, _SC_NETWORKING, _SC_PIPE, _SC_READER_WRITER_LOCKS, _SC_REGEXP, _SC_SHELL, _SC_SIGNALS, _SC_SINGLE_PROCESS, _SC_SPIN_LOCKS, _SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R, _SC_STREAMS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, setegid, seteuid. Fix typo in off_t definition. * conform/data/net/if.h-data: New file. * conform/data/netinet/in.h-data: New file. * conform/data/netinet/tcp.h-data: New file. * conform/data/sys/mman.h-data: Add POSIX_MADV_NORMAL, POSIX_MADV_SEQUENTIAL, POSIX_MADV_RANDOM, POSIX_MADV_WILLNEED, POSIX_MADV_DONTNEED, POSIX_TYPED_MEM_ALLOCATE, POSIX_TYPED_MEM_ALLOCATE_CONTIG, POSIX_TYPED_MEM_MAP_ALLOCATABLE, posix_typedmem_info, posix_mem_offset, posix_typed_mem_get_info, and posix_typed_mem_open. * conform/data/sys/socket.h-data: New file. * conform/data/sys/stat.h-data: Add S_TYPEISTMO and isfdtype. * conform/data/sys/types.h-data: Add pthread_barrier_t, pthread_barrierattr_t, and pthread_spinlock_t. * conform/data/sys/un.h-data: New file. * conform/data/sys/utsname.h-data: New file. * include/netdb.h (__gethostbyaddr_r): Fix types of first and second parameter. * inet/gethstbyad.c (gethostbyname): Likewise. * inet/gethstbyad_t.c (gethostbyname_r): Likewise. * inet/getipnodebyad.c (getipnodebyad): Likewise. * nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyaddr_r): Likewise. * nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_gethostbyaddr_r): Likewise. * nscd/gethstbyad_r.c (gethostbyaddr_r): Likewise. * nscd/nscd_gethst_r.c (__nscd_gethostbyaddr_r): Likewise. * nscd/nscd_proto.h (__nscd_gethostbyaddr_r): Likewise. * nss/nss_files/files-hosts.c (_nss_files_gethostbyaddr_r): Likewise. * resolv/gethnamaddr.c (gethostbyname): Likewise. * resolv/netdb.h (struct hostent): Fix type of h_length member. (gethostbyaddr, getipnodebyaddr, gethostbyaddr_r): Fix types of first and second parameter. 2000-04-29 Andreas Jaeger <aj@suse.de> * conform/data/arpa/inet.h-data: New file.
This commit is contained in:
parent
d2dc3fc9b6
commit
9d4d69b88b
90
ChangeLog
90
ChangeLog
|
@ -1,8 +1,98 @@
|
||||||
2000-04-29 Ulrich Drepper <drepper@redhat.com>
|
2000-04-29 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* conform/conformtest.pl (@headers): Add sys/utsname.h, sys/un.h,
|
||||||
|
sys/socket.h, spawn.h, netinet/tcp.h, netinet/in.h, net/if.h, and
|
||||||
|
arpa/inet.h.
|
||||||
|
* conform/data/fcntl.h-data: Add F_GETOWN, F_SETOWN,
|
||||||
|
SEEK_SET, SEEK_CUR, SEEK_END, S_IFMT, S_IFBLK, S_IFCHR, S_IFIFO,
|
||||||
|
S_IFREG, S_IFDIR, S_IFLNK, S_IFSOCK, S_IRWXU, S_IRUSR S_IWUSR,
|
||||||
|
S_IXUSR, S_IRWXG, S_IRGRP, S_IWGRP, S_IXGRP, S_IRWXO, S_IROTH,
|
||||||
|
S_IWOTH, S_IXOTH, S_ISUID, S_ISGID, S_ISVTX, POSIX_FADV_NORMAL,
|
||||||
|
POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_WILLNEED,
|
||||||
|
POSIX_FADV_DONTNEED, POSIX_FADV_NOREUSE, posix_fadvise,
|
||||||
|
posix_fallocate, and posix_madvise.
|
||||||
|
* conform/data/netdb.h-data: New file.
|
||||||
|
* conform/data/pthread.h-data: Add pthread_barrier_t,
|
||||||
|
pthread_barrierattr_t, pthread_barrier_destroy,
|
||||||
|
pthread_barrier_init, pthread_barrier_wait,
|
||||||
|
pthread_barrierattr_destroy, pthread_barrierattr_getpshared,
|
||||||
|
pthread_barrierattr_init, pthread_barrierattr_setpshared,
|
||||||
|
pthread_condattr_getclock, pthread_condattr_setclock,
|
||||||
|
pthread_getcpuclockid, pthread_mutex_timedlock,
|
||||||
|
pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock,
|
||||||
|
pthread_sigmask, pthread_spin_destroy, pthread_spin_init,
|
||||||
|
pthread_spin_lock, pthread_spin_trylock, and pthread_spin_unlock.
|
||||||
|
* conform/data/sched.h-data: Add sched_ss_low_priority,
|
||||||
|
sched_ss_repl_period, sched_ss_init_budget, sched_ss_max_repl, and
|
||||||
|
SCHED_SPORADIC.
|
||||||
|
* conform/data/semaphore.h-data: Add sem_timedwait.
|
||||||
|
* conform/data/signal.h-data: Add SIGIO.
|
||||||
|
* conform/data/spawn.h-data: New file.
|
||||||
|
* conform/data/stdlib.h-data: Add posix_memalign, setenv, and unsetenv.
|
||||||
|
* conform/data/time.h-data: Add CLOCK_PROCESS_CPUTIME_ID,
|
||||||
|
CLOCK_THREAD_CPUTIME_ID, clock_getcpuclockid, and clock_nanosleep.
|
||||||
|
Fix typo in gmtime_r definition.
|
||||||
|
* conform/data/unistd.h-data: Add _POSIX_ADVISORY_INFO,
|
||||||
|
_POSIX_ASYNCHRONOUS_IO, _POSIX_BARRIERS, _POSIX_MONOTONIC_CLOCK,
|
||||||
|
_POSIX_READER_WRITER_LOCKS, _POSIX_SHELL, _POSIX_SPAWN,
|
||||||
|
_POSIX_SPIN_LOCKS, _POSIX_SPORADIC_SERVER, _POSIX_THREAD_CPUTIME,
|
||||||
|
_POSIX_TYPED_MEMORY_OBJECTS, _POSIX_THREAD_SPORADIC_SERVER,
|
||||||
|
_XOPEN_STREAMS, _POSIX_TIMEOUTS, _POSIX2_PBS,
|
||||||
|
_POSIX2_PBS_ACCOUNTING, _POSIX2_PBS_CHECKPOINT,
|
||||||
|
_POSIX2_PBS_LOCATE, _POSIX2_PBS_MESSAGE, _POSIX2_PBS_TRACK,
|
||||||
|
_SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_CHECKPOINT,
|
||||||
|
_SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK,
|
||||||
|
_SC_BARRIERS, _SC_BASE, _SC_CLOCK_SELECTION, _SC_DEVICE_IO,
|
||||||
|
_SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO,
|
||||||
|
_SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM,
|
||||||
|
_SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_MONOTONIC_CLOCK,
|
||||||
|
_SC_MESSAGE_PASSING, _SC_MONOTONIC_CLOCK, _SC_MULTIPLE_PROCESS,
|
||||||
|
_SC_NETWORKING, _SC_PIPE, _SC_READER_WRITER_LOCKS, _SC_REGEXP,
|
||||||
|
_SC_SHELL, _SC_SIGNALS, _SC_SINGLE_PROCESS, _SC_SPIN_LOCKS,
|
||||||
|
_SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R,
|
||||||
|
_SC_STREAMS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE,
|
||||||
|
_PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, setegid, seteuid. Fix
|
||||||
|
typo in off_t definition.
|
||||||
|
* conform/data/net/if.h-data: New file.
|
||||||
|
* conform/data/netinet/in.h-data: New file.
|
||||||
|
* conform/data/netinet/tcp.h-data: New file.
|
||||||
|
* conform/data/sys/mman.h-data: Add POSIX_MADV_NORMAL,
|
||||||
|
POSIX_MADV_SEQUENTIAL, POSIX_MADV_RANDOM, POSIX_MADV_WILLNEED,
|
||||||
|
POSIX_MADV_DONTNEED, POSIX_TYPED_MEM_ALLOCATE,
|
||||||
|
POSIX_TYPED_MEM_ALLOCATE_CONTIG, POSIX_TYPED_MEM_MAP_ALLOCATABLE,
|
||||||
|
posix_typedmem_info, posix_mem_offset, posix_typed_mem_get_info,
|
||||||
|
and posix_typed_mem_open.
|
||||||
|
* conform/data/sys/socket.h-data: New file.
|
||||||
|
* conform/data/sys/stat.h-data: Add S_TYPEISTMO and isfdtype.
|
||||||
|
* conform/data/sys/types.h-data: Add pthread_barrier_t,
|
||||||
|
pthread_barrierattr_t, and pthread_spinlock_t.
|
||||||
|
* conform/data/sys/un.h-data: New file.
|
||||||
|
* conform/data/sys/utsname.h-data: New file.
|
||||||
|
|
||||||
|
* include/netdb.h (__gethostbyaddr_r): Fix types of first and second
|
||||||
|
parameter.
|
||||||
|
* inet/gethstbyad.c (gethostbyname): Likewise.
|
||||||
|
* inet/gethstbyad_t.c (gethostbyname_r): Likewise.
|
||||||
|
* inet/getipnodebyad.c (getipnodebyad): Likewise.
|
||||||
|
* nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyaddr_r): Likewise.
|
||||||
|
* nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_gethostbyaddr_r):
|
||||||
|
Likewise.
|
||||||
|
* nscd/gethstbyad_r.c (gethostbyaddr_r): Likewise.
|
||||||
|
* nscd/nscd_gethst_r.c (__nscd_gethostbyaddr_r): Likewise.
|
||||||
|
* nscd/nscd_proto.h (__nscd_gethostbyaddr_r): Likewise.
|
||||||
|
* nss/nss_files/files-hosts.c (_nss_files_gethostbyaddr_r): Likewise.
|
||||||
|
* resolv/gethnamaddr.c (gethostbyname): Likewise.
|
||||||
|
* resolv/netdb.h (struct hostent): Fix type of h_length member.
|
||||||
|
(gethostbyaddr, getipnodebyaddr, gethostbyaddr_r): Fix types of first
|
||||||
|
and second parameter.
|
||||||
|
|
||||||
* wcsmbs/mbrtowc.c (__mbrtowc): Set end of buffer correctly if s
|
* wcsmbs/mbrtowc.c (__mbrtowc): Set end of buffer correctly if s
|
||||||
== NULL.
|
== NULL.
|
||||||
|
|
||||||
|
2000-04-29 Andreas Jaeger <aj@suse.de>
|
||||||
|
|
||||||
|
* conform/data/arpa/inet.h-data: New file.
|
||||||
|
|
||||||
2000-04-28 Geoff Clare <gwc@unisoft.com>
|
2000-04-28 Geoff Clare <gwc@unisoft.com>
|
||||||
|
|
||||||
* io/ftw.c: Set errno to ENOENT (instead of ENOTDIR) when the
|
* io/ftw.c: Set errno to ENOENT (instead of ENOTDIR) when the
|
||||||
|
|
|
@ -6,18 +6,20 @@ $CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500";
|
||||||
# List of the headers we are testing.
|
# List of the headers we are testing.
|
||||||
@headers = ("wordexp.h", "wctype.h", "wchar.h", "varargs.h", "utmpx.h",
|
@headers = ("wordexp.h", "wctype.h", "wchar.h", "varargs.h", "utmpx.h",
|
||||||
"utime.h", "unistd.h", "ulimit.h", "ucontext.h", "time.h",
|
"utime.h", "unistd.h", "ulimit.h", "ucontext.h", "time.h",
|
||||||
"termios.h", "tar.h", "sys/wait.h", "sys/uio.h", "sys/types.h",
|
"termios.h", "tar.h", "sys/wait.h", "sys/utsname.h", "sys/un.h",
|
||||||
"sys/times.h", "sys/timeb.h", "sys/time.h", "sys/statvfs.h",
|
"sys/uio.h", "sys/types.h", "sys/times.h", "sys/timeb.h",
|
||||||
"sys/stat.h", "sys/shm.h", "sys/sem.h", "sys/resource.h",
|
"sys/time.h", "sys/statvfs.h", "sys/stat.h", "sys/socket.h",
|
||||||
"sys/msg.h", "sys/mman.h", "sys/ipc.h", "syslog.h",
|
"sys/shm.h", "sys/sem.h", "sys/resource.h", "sys/msg.h",
|
||||||
"stropts.h", "strings.h", "string.h", "stdlib.h", "stdio.h",
|
"sys/mman.h", "sys/ipc.h", "syslog.h", "stropts.h", "strings.h",
|
||||||
"stddef.h", "stdarg.h", "signal.h", "setjmp.h", "semaphore.h",
|
"string.h", "stdlib.h", "stdio.h", "stddef.h", "stdarg.h",
|
||||||
|
"spawn.h", "signal.h", "setjmp.h", "semaphore.h",
|
||||||
"search.h", "sched.h", "regex.h", "pwd.h", "pthread.h",
|
"search.h", "sched.h", "regex.h", "pwd.h", "pthread.h",
|
||||||
"poll.h", "nl_types.h", "ndbm.h", "mqueue.h", "monetary.h",
|
"poll.h", "nl_types.h", "netinet/tcp.h", "netinet/in.h",
|
||||||
|
"net/if.h", "netdb.h", "ndbm.h", "mqueue.h", "monetary.h",
|
||||||
"math.h", "locale.h", "libgen.h", "langinfo.h", "iso646.h",
|
"math.h", "locale.h", "libgen.h", "langinfo.h", "iso646.h",
|
||||||
"inttypes.h", "iconv.h", "grp.h", "glob.h", "ftw.h", "fnmatch.h",
|
"inttypes.h", "iconv.h", "grp.h", "glob.h", "ftw.h", "fnmatch.h",
|
||||||
"fmtmsg.h", "float.h", "fcntl.h", "errno.h", "dlfcn.h", "dirent.h",
|
"fmtmsg.h", "float.h", "fcntl.h", "errno.h", "dlfcn.h", "dirent.h",
|
||||||
"ctype.h", "cpio.h", "assert.h", "aio.h");
|
"ctype.h", "cpio.h", "assert.h", "arpa/inet.h", "aio.h");
|
||||||
|
|
||||||
# These are the ISO C99 keywords.
|
# These are the ISO C99 keywords.
|
||||||
@keywords = ('auto', 'break', 'case', 'char', 'const', 'continue', 'default',
|
@keywords = ('auto', 'break', 'case', 'char', 'const', 'continue', 'default',
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
#ifndef ISO
|
||||||
|
// in_port_t should have exactly 16 bits
|
||||||
|
type in_port_t
|
||||||
|
// in_addr_t should have exactly 32 bits
|
||||||
|
type in_addr_t
|
||||||
|
|
||||||
|
type uint32_t
|
||||||
|
type uint16_t
|
||||||
|
|
||||||
|
macro INET_ADDRSTRLEN
|
||||||
|
macro INET6_ADDRSTRLEN
|
||||||
|
|
||||||
|
// The following can be declared as functions, defined as macros or both:
|
||||||
|
function uint32_t htonl (uint32_t);
|
||||||
|
function uint16_t htons (uint16_t);
|
||||||
|
function uint32_t ntohl (uint32_t);
|
||||||
|
function uint16_t htons (uint16_t);
|
||||||
|
|
||||||
|
function in_addr_t inet_addr (const char*);
|
||||||
|
function in_addr_t inet_lnaof (struct in_addr);
|
||||||
|
function {struct in_addr} inet_makeaddr (in_addr_t, in_addr_t);
|
||||||
|
function in_addrt_t inet_netof (struct in_addr);
|
||||||
|
function in_addrt_t inet_network (const char *);
|
||||||
|
function {char*} inet_ntoa (struct in_addr);
|
||||||
|
function {const char*} inet_ntop (int, const void*, char*, socklen_t);
|
||||||
|
function int inet_pton (int, const char*, void*);
|
||||||
|
|
||||||
|
allow-header netinet/in.h
|
||||||
|
allow-header inttypes.h
|
||||||
|
|
||||||
|
#endif
|
|
@ -15,6 +15,8 @@ function int toupper (int)
|
||||||
#ifndef ISO
|
#ifndef ISO
|
||||||
function int isascii (int)
|
function int isascii (int)
|
||||||
function int toascii (int)
|
function int toascii (int)
|
||||||
|
|
||||||
|
# XPG says the following two are macros. But we test a bit more strictly.
|
||||||
function int _toupper (int)
|
function int _toupper (int)
|
||||||
function int _tolower (int)
|
function int _tolower (int)
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,8 @@ constant F_SETFL
|
||||||
constant F_GETLK
|
constant F_GETLK
|
||||||
constant F_SETLK
|
constant F_SETLK
|
||||||
constant F_SETLKW
|
constant F_SETLKW
|
||||||
|
constant F_GETOWN
|
||||||
|
constant F_SETOWN
|
||||||
|
|
||||||
constant FD_CLOEXEC
|
constant FD_CLOEXEC
|
||||||
|
|
||||||
|
@ -14,6 +16,10 @@ constant F_RDLCK
|
||||||
constant F_UNLCK
|
constant F_UNLCK
|
||||||
constant F_WRLCK
|
constant F_WRLCK
|
||||||
|
|
||||||
|
constant SEEK_SET
|
||||||
|
constant SEEK_CUR
|
||||||
|
constant SEED_END
|
||||||
|
|
||||||
constant O_CREAT
|
constant O_CREAT
|
||||||
constant O_EXCL
|
constant O_EXCL
|
||||||
constant O_NOCTTY
|
constant O_NOCTTY
|
||||||
|
@ -31,6 +37,38 @@ constant O_RDONLY
|
||||||
constant O_RDWR
|
constant O_RDWR
|
||||||
constant O_WRONLY
|
constant O_WRONLY
|
||||||
|
|
||||||
|
constant S_IFMT
|
||||||
|
constant S_IFBLK
|
||||||
|
constant S_IFCHR
|
||||||
|
constant S_IFIFO
|
||||||
|
constant S_IFREG
|
||||||
|
constant S_IFDIR
|
||||||
|
constant S_IFLNK
|
||||||
|
constant S_IFSOCK
|
||||||
|
|
||||||
|
constant S_IRWXU
|
||||||
|
constant S_IRUSR
|
||||||
|
constant S_IWUSR
|
||||||
|
constant S_IXUSR
|
||||||
|
constant S_IRWXG
|
||||||
|
constant S_IRGRP
|
||||||
|
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
|
||||||
|
|
||||||
|
constant POSIX_FADV_NORMAL
|
||||||
|
constant POSIX_FADV_SEQUENTIAL
|
||||||
|
constant POSIX_FADV_RANDOM
|
||||||
|
constant POSIX_FADV_WILLNEED
|
||||||
|
constant POSIX_FADV_DONTNEED
|
||||||
|
constant POSIX_FADV_NOREUSE
|
||||||
|
|
||||||
type {struct flock}
|
type {struct flock}
|
||||||
|
|
||||||
element {struct flock} short l_type
|
element {struct flock} short l_type
|
||||||
|
@ -46,6 +84,9 @@ type pid_t
|
||||||
function int creat (const char*, mode_t)
|
function int creat (const char*, mode_t)
|
||||||
function int fcntl (int, int, ...)
|
function int fcntl (int, int, ...)
|
||||||
function int open (const char*, int, ...)
|
function int open (const char*, int, ...)
|
||||||
|
function int posix_fadvise (int, off_t, size_t, int)
|
||||||
|
function int posix_fallocate (int, off_t, size_t)
|
||||||
|
function int posix_madvise (void*, size_t, int)
|
||||||
|
|
||||||
allow-header sys/stat.h
|
allow-header sys/stat.h
|
||||||
allow-header unistd.h
|
allow-header unistd.h
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
#ifndef ISO
|
||||||
|
type {struct if_nameindex}
|
||||||
|
|
||||||
|
element {struct if_nameindex} {unsigned int} if_index
|
||||||
|
element {struct if_nameindex} {char*} if_name
|
||||||
|
|
||||||
|
macro IF_NAMESIZE
|
||||||
|
|
||||||
|
function {unsigned int} if_nametoindex (const char*)
|
||||||
|
function {char*} if_indextoname (unsigned int, char*)
|
||||||
|
function {struct if_nameindex*} if_nameindex (void)
|
||||||
|
function void if_freenameindex (struct if_nameindex*)
|
||||||
|
|
||||||
|
allow *_t
|
||||||
|
#endif
|
|
@ -0,0 +1,60 @@
|
||||||
|
#ifndef ISO
|
||||||
|
type in_port_t
|
||||||
|
type in_addr_t
|
||||||
|
|
||||||
|
type {struct hostent}
|
||||||
|
|
||||||
|
element {struct hostent} {char*} h_name
|
||||||
|
element {struct hostent} {char**} h_aliases
|
||||||
|
element {struct hostent} int h_addrtype
|
||||||
|
element {struct hostent} int h_length
|
||||||
|
element {struct hostent} {char**} h_addr_list
|
||||||
|
|
||||||
|
type {struct netent}
|
||||||
|
|
||||||
|
element {struct netent} {char*} n_name
|
||||||
|
element {struct netent} {char**} n_aliases
|
||||||
|
element {struct netent} int n_addrtype
|
||||||
|
element {struct netent} uint32_t n_net
|
||||||
|
|
||||||
|
type uint32_t
|
||||||
|
|
||||||
|
type {struct protoent}
|
||||||
|
|
||||||
|
element {struct protoent} {char*} p_name
|
||||||
|
element {struct protoent} {char**} p_aliases
|
||||||
|
element {struct protoent} int p_proto
|
||||||
|
|
||||||
|
type {struct servent}
|
||||||
|
|
||||||
|
element {struct servent} {char*} s_name
|
||||||
|
element {struct servent} {char**} s_aliases
|
||||||
|
element {struct servent} int s_port
|
||||||
|
element {struct servent} {char*} s_proto
|
||||||
|
|
||||||
|
macro IPPORT_RESERVED
|
||||||
|
|
||||||
|
# variable int h_errno
|
||||||
|
allow h_errno
|
||||||
|
|
||||||
|
macro HOST_NOT_FOUND
|
||||||
|
macro NO_DATA
|
||||||
|
macro NO_RECOVERY
|
||||||
|
macro TRY_AGAIN
|
||||||
|
|
||||||
|
macro AI_V4MAPPED
|
||||||
|
macro AI_ALL
|
||||||
|
macro AI_ADDRCONFIG
|
||||||
|
macro AI_DEFAULT
|
||||||
|
|
||||||
|
function void endhostent (void)
|
||||||
|
function void endnetent (void)
|
||||||
|
function void endprotoent (void)
|
||||||
|
function void endservent (void)
|
||||||
|
function void freehostent (struct hostent*)
|
||||||
|
function {struct hostent*} gethostbyaddr (const void*, socklen_t, int)
|
||||||
|
function {struct hostent*} gethostbyname (const char*)
|
||||||
|
function {struct hostent*} gethostent (void)
|
||||||
|
function {struct hostent*} getipnodebyaddr (const void*, socklen_t, int, int*)
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,84 @@
|
||||||
|
#ifndef ISO
|
||||||
|
type in_port_t
|
||||||
|
type in_addr_t
|
||||||
|
|
||||||
|
type sa_family_t
|
||||||
|
|
||||||
|
type {struct in_addr}
|
||||||
|
|
||||||
|
element {struct in_addr} in_addr_t s_addr
|
||||||
|
|
||||||
|
type {struct sockaddr_in}
|
||||||
|
|
||||||
|
element {struct sockaddr_in} sa_family_t sin_family
|
||||||
|
element {struct sockaddr_in} in_port_t sin_port
|
||||||
|
element {struct sockaddr_in} {struct in_addr} sin_addr
|
||||||
|
element {struct sockaddr_in} {unsigned char} sin_zero [8]
|
||||||
|
|
||||||
|
type {struct in6_addr}
|
||||||
|
|
||||||
|
element {struct in6_addr} uint8_t s6_addr [16]
|
||||||
|
|
||||||
|
type {struct sockaddr_in6}
|
||||||
|
|
||||||
|
element {struct sockaddr_in6} sa_family_t sin6_family
|
||||||
|
element {struct sockaddr_in6} in_port_t sin6_port
|
||||||
|
element {struct sockaddr_in6} uint32_t sin6_flowinfo
|
||||||
|
element {struct sockaddr_in6} {struct in6_addr} sin6_addr
|
||||||
|
element {struct sockaddr_in6} uint32_t sin6_scope_id
|
||||||
|
|
||||||
|
variable {struct in6_addr} in6addr_any
|
||||||
|
|
||||||
|
# constant IN6ADDR_ANY_INIT
|
||||||
|
macro IN6ADDR_ANY_INIT
|
||||||
|
|
||||||
|
variable {struct in6_addr} in6addr_loopback
|
||||||
|
|
||||||
|
#constant IN6ADDR_LOOPBACK_INIT
|
||||||
|
macro IN6ADDR_LOOPBACK_INIT
|
||||||
|
|
||||||
|
type {struct ipv6_mreq}
|
||||||
|
|
||||||
|
element {struct ipv6_mreq} {struct int6_addr} ipv6mr_multiaddr
|
||||||
|
element {struct ipv6_mreq} {unsigned int} ipv6mr_interface
|
||||||
|
|
||||||
|
macro IPPROTO_IP
|
||||||
|
macro IPPROTO_IPV6
|
||||||
|
macro IPPROTO_ICMP
|
||||||
|
macro IPPROTO_TCP
|
||||||
|
macro IPPROTO_UDP
|
||||||
|
|
||||||
|
macro INADDR_ANY
|
||||||
|
macro INADDR_BROADCAST
|
||||||
|
|
||||||
|
macro INET_ADDRSTRLEN
|
||||||
|
|
||||||
|
function uint32_t htonl (uint32_t)
|
||||||
|
function uint16_t htons (uint16_t)
|
||||||
|
function uint32_t ntohl (uint32_t)
|
||||||
|
function uint16_t ntohs (uint16_t)
|
||||||
|
|
||||||
|
allow-header arpa/inet.h
|
||||||
|
|
||||||
|
macro INET6_ADDRSTRLEN
|
||||||
|
|
||||||
|
macro IPV6_JOIN_GROUP
|
||||||
|
macro IPV6_LEAVE_GROUP
|
||||||
|
macro IPV6_MULTICAST_HOPS
|
||||||
|
macro IPV6_MULTICAST_IF
|
||||||
|
macro IPV6_MULTICAST_LOOP
|
||||||
|
macro IPV6_UNICAST_HOPS
|
||||||
|
|
||||||
|
macro IN6_IS_ADDR_UNSPECIFIED
|
||||||
|
macro IN6_IS_ADDR_LOOPBACK
|
||||||
|
macro IN6_IS_ADDR_MULTICAST
|
||||||
|
macro IN6_IS_ADDR_LINKLOCAL
|
||||||
|
macro IN6_IS_ADDR_SITELOCAL
|
||||||
|
macro IN6_IS_ADDR_V4MAPPED
|
||||||
|
macro IN6_IS_ADDR_V4COMPAT
|
||||||
|
macro IN6_IS_ADDR_MC_NODELOCAL
|
||||||
|
macro IN6_IS_ADDR_MC_LINKLOCAL
|
||||||
|
macro IN6_IS_ADDR_MC_SITELOCAL
|
||||||
|
macro IN6_IS_ADDR_MC_ORGLOCAL
|
||||||
|
macro IN6_IS_ADDR_MC_GLOBAL
|
||||||
|
#endif
|
|
@ -0,0 +1,3 @@
|
||||||
|
#ifndef ISO
|
||||||
|
macro TCP_NODELAY
|
||||||
|
#endif
|
|
@ -27,6 +27,8 @@ constant PTHREAD_RWLOCK_INITILIZER
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
type pthread_attr_t
|
type pthread_attr_t
|
||||||
|
type pthread_barrier_t
|
||||||
|
type pthread_barrierattr_t
|
||||||
type pthread_cond_t
|
type pthread_cond_t
|
||||||
type pthread_condattr_t
|
type pthread_condattr_t
|
||||||
type pthread_key_t
|
type pthread_key_t
|
||||||
|
@ -35,6 +37,7 @@ type pthread_mutexattr_t
|
||||||
type pthread_once_t
|
type pthread_once_t
|
||||||
type pthread_rwlock_t
|
type pthread_rwlock_t
|
||||||
type pthread_rwlockattr_t
|
type pthread_rwlockattr_t
|
||||||
|
type pthread_spinlock_t
|
||||||
type pthread_t
|
type pthread_t
|
||||||
|
|
||||||
function int pthread_attr_destroy (pthread_attr_t*)
|
function int pthread_attr_destroy (pthread_attr_t*)
|
||||||
|
@ -59,6 +62,13 @@ function int pthread_attr_setschedpolicy (pthread_attr_t*, int)
|
||||||
function int pthread_attr_setscope (pthread_attr_t*, int)
|
function int pthread_attr_setscope (pthread_attr_t*, int)
|
||||||
function int pthread_attr_setstackaddr (pthread_attr_t*, void*)
|
function int pthread_attr_setstackaddr (pthread_attr_t*, void*)
|
||||||
function int pthread_attr_setstacksize (pthread_attr_t*, size_t)
|
function int pthread_attr_setstacksize (pthread_attr_t*, size_t)
|
||||||
|
function int pthread_barrier_destroy (pthread_barrier_t*)
|
||||||
|
function int pthread_barrier_init (pthread_barrier_t*, const pthread_barrierattr_t*, unsigned int)
|
||||||
|
function int pthread_barrier_wait (pthread_barrier_t*)
|
||||||
|
function int pthread_barrierattr_destroy (pthread_barrierattr_t*)
|
||||||
|
function int pthread_barrierattr_getpshared (const pthread_barrierattr_t*, int*)
|
||||||
|
function int pthread_barrierattr_init (pthread_barrierattr_t*)
|
||||||
|
function int pthread_barrierattr_setpshared (pthread_barrierattr_t*, int)
|
||||||
function int pthread_cancel (pthread_t)
|
function int pthread_cancel (pthread_t)
|
||||||
# function int pthread_cleanup_push (void (*) (void*), void*)
|
# function int pthread_cleanup_push (void (*) (void*), void*)
|
||||||
macro pthread_cleanup_push
|
macro pthread_cleanup_push
|
||||||
|
@ -71,8 +81,10 @@ function int pthread_cond_signal (pthread_cond_t*)
|
||||||
function int pthread_cond_timedwait (pthread_cond_t*, pthread_mutex_t*, const struct timespec*)
|
function int pthread_cond_timedwait (pthread_cond_t*, pthread_mutex_t*, const struct timespec*)
|
||||||
function int pthread_cond_wait (pthread_cond_t*, pthread_mutex_t*)
|
function int pthread_cond_wait (pthread_cond_t*, pthread_mutex_t*)
|
||||||
function int pthread_condattr_destroy (pthread_condattr_t*)
|
function int pthread_condattr_destroy (pthread_condattr_t*)
|
||||||
|
function int pthread_condattr_getclock (const pthread_condattr_t*, clockid_t*)
|
||||||
function int pthread_condattr_getpshared (const pthread_condattr_t*, int*)
|
function int pthread_condattr_getpshared (const pthread_condattr_t*, int*)
|
||||||
function int pthread_condattr_init (pthread_condattr_t*)
|
function int pthread_condattr_init (pthread_condattr_t*)
|
||||||
|
function int pthread_condattr_setclock (const pthread_condattr_t*, clockid_t*)
|
||||||
function int pthread_condattr_setpshared (pthread_condattr_t*, int)
|
function int pthread_condattr_setpshared (pthread_condattr_t*, int)
|
||||||
function int pthread_create (pthread_t*, const pthread_attr_t*, void *(*) (void*), void*)
|
function int pthread_create (pthread_t*, const pthread_attr_t*, void *(*) (void*), void*)
|
||||||
function int pthread_deteach (pthread_t)
|
function int pthread_deteach (pthread_t)
|
||||||
|
@ -81,6 +93,7 @@ function int pthread_exit (void*)
|
||||||
# ifndef POSIX
|
# ifndef POSIX
|
||||||
function int pthread_getconcurrency (void)
|
function int pthread_getconcurrency (void)
|
||||||
# endif
|
# endif
|
||||||
|
function int pthread_getcpuclockid (pthread_t, clockid_t*)
|
||||||
function int pthread_getschedparam (pthread_t, int*, struct sched_param*)
|
function int pthread_getschedparam (pthread_t, int*, struct sched_param*)
|
||||||
function {void*} pthread_getspecific (pthread_key_t)
|
function {void*} pthread_getspecific (pthread_key_t)
|
||||||
function int pthread_join (pthread_t, void**)
|
function int pthread_join (pthread_t, void**)
|
||||||
|
@ -91,6 +104,7 @@ function int pthread_mutex_getprioceiling (const pthread_mutex_t*, int*)
|
||||||
function int pthread_mutex_init (pthread_mutex_t*, const pthread_mutexattr_t*)
|
function int pthread_mutex_init (pthread_mutex_t*, const pthread_mutexattr_t*)
|
||||||
function int pthread_mutex_lock (pthread_mutex_t*)
|
function int pthread_mutex_lock (pthread_mutex_t*)
|
||||||
function int pthread_mutex_setprioceiling (pthread_mutex_t*, int, int*)
|
function int pthread_mutex_setprioceiling (pthread_mutex_t*, int, int*)
|
||||||
|
function int pthread_mutex_timedlock (pthread_mutex_t*, const struct timespec*)
|
||||||
function int pthread_mutex_trylock (pthread_mutex_t*)
|
function int pthread_mutex_trylock (pthread_mutex_t*)
|
||||||
function int pthread_mutex_unlock (pthread_mutex_t*)
|
function int pthread_mutex_unlock (pthread_mutex_t*)
|
||||||
function int pthread_mutexattr_destroy (pthread_mutexattr_t*)
|
function int pthread_mutexattr_destroy (pthread_mutexattr_t*)
|
||||||
|
@ -107,6 +121,8 @@ function int pthread_once (pthread_once_t*, void (*) (void))
|
||||||
# ifndef POSIX
|
# ifndef POSIX
|
||||||
function int pthread_rwlock_init (pthread_rwlock_t*, const pthread_rwlockattr_t*)
|
function int pthread_rwlock_init (pthread_rwlock_t*, const pthread_rwlockattr_t*)
|
||||||
function int pthread_rwlock_rdlock (pthread_rwlock_t*)
|
function int pthread_rwlock_rdlock (pthread_rwlock_t*)
|
||||||
|
function int pthread_rwlock_timedrdlock (pthread_rwlock_t*, const struct timespec*)
|
||||||
|
function int pthread_rwlock_timedwrlock (pthread_rwlock_t*, const struct timespec*)
|
||||||
function int pthread_rwlock_tryrdlock (pthread_rwlock_t*)
|
function int pthread_rwlock_tryrdlock (pthread_rwlock_t*)
|
||||||
function int pthread_rwlock_trywrlock (pthread_rwlock_t*)
|
function int pthread_rwlock_trywrlock (pthread_rwlock_t*)
|
||||||
function int pthread_rwlock_unlock (pthread_rwlock_t*)
|
function int pthread_rwlock_unlock (pthread_rwlock_t*)
|
||||||
|
@ -124,6 +140,12 @@ function int pthread_setconcurrency (int)
|
||||||
# endif
|
# endif
|
||||||
function int pthread_setschedparam (pthread_t, int, const struct sched_param*)
|
function int pthread_setschedparam (pthread_t, int, const struct sched_param*)
|
||||||
function int pthread_setspecific (pthread_key_t, const void*)
|
function int pthread_setspecific (pthread_key_t, const void*)
|
||||||
|
function int pthread_sigmask (int, const sigset_t*, sigset_t*)
|
||||||
|
function int pthread_spin_destroy (pthread_spinlock_t*)
|
||||||
|
function int pthread_spin_init (pthread_spinlock_t*, int)
|
||||||
|
function int pthread_spin_lock (pthread_spinlock_t*)
|
||||||
|
function int pthread_spin_trylock (pthread_spinlock_t*)
|
||||||
|
function int pthread_spin_unlock (pthread_spinlock_t*)
|
||||||
function void pthread_testcancel (void)
|
function void pthread_testcancel (void)
|
||||||
|
|
||||||
allow-header sched.h
|
allow-header sched.h
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
#ifndef ISO
|
#ifndef ISO
|
||||||
type {struct sched_param}
|
type {struct sched_param}
|
||||||
element {struct sched_param} int sched_priority
|
element {struct sched_param} int sched_priority
|
||||||
|
element {struct sched_param} int sched_ss_low_priority
|
||||||
|
element {struct sched_param} {struct timespec} sched_ss_repl_period
|
||||||
|
element {struct sched_param} {struct timespec} sched_ss_init_budget
|
||||||
|
element {struct sched_param} int sched_ss_max_repl
|
||||||
|
|
||||||
constant SCHED_FIFO
|
constant SCHED_FIFO
|
||||||
constant SCHED_RR
|
constant SCHED_RR
|
||||||
|
constant SCHED_SPORADIC
|
||||||
constant SCHED_OTHER
|
constant SCHED_OTHER
|
||||||
|
|
||||||
function int sched_get_priority_max (int)
|
function int sched_get_priority_max (int)
|
||||||
|
|
|
@ -9,6 +9,7 @@ function int sem_getvalue (sem_t*, int*)
|
||||||
function int sem_init (sem_t*, int, unsigned int)
|
function int sem_init (sem_t*, int, unsigned int)
|
||||||
function {sem_t*} sem_open (const char*, int, ...)
|
function {sem_t*} sem_open (const char*, int, ...)
|
||||||
function int sem_post (sem_t*)
|
function int sem_post (sem_t*)
|
||||||
|
function int sem_timedwait (sem_t*, const struct timespec*)
|
||||||
function int sem_trywait (sem_t*)
|
function int sem_trywait (sem_t*)
|
||||||
function int sem_unlink (const char*)
|
function int sem_unlink (const char*)
|
||||||
function int sem_wait (sem_t*)
|
function int sem_wait (sem_t*)
|
||||||
|
|
|
@ -34,6 +34,7 @@ constant SIGFPE
|
||||||
constant SIGHUP
|
constant SIGHUP
|
||||||
constant SIGILL
|
constant SIGILL
|
||||||
constant SIGINT
|
constant SIGINT
|
||||||
|
constant SIGIO
|
||||||
constant SIGKILL
|
constant SIGKILL
|
||||||
constant SIGPIPE
|
constant SIGPIPE
|
||||||
constant SIGQUIT
|
constant SIGQUIT
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#ifndef ISO
|
||||||
|
type posix_spawnattr_t
|
||||||
|
type posix_spawn_file_actions_t
|
||||||
|
|
||||||
|
constant POSIX_SPAWN_RESETIDS
|
||||||
|
constant POSIX_SPAWN_SETPGROUP
|
||||||
|
constant POSIX_SPAWN_SETSCHEDPARAM
|
||||||
|
constant POSIX_SPAWN_SETSCHEDULER
|
||||||
|
constant POSIX_SPAWN_SETSIGDEF
|
||||||
|
constant POSIX_SPAWN_SETSIGMASK
|
||||||
|
|
||||||
|
function int posix_spawnattr_destroy (posix_spawnattr_t*)
|
||||||
|
function int posix_spawnattr_getdefault (const posix_spawnattr_t*, sigset_t*)
|
||||||
|
function int posix_spawnattr_getflags (const posix_spawnattr_t*, short*)
|
||||||
|
function int posix_spawnattr_getpgroup (const posix_spawnattr_t*, pid_t*)
|
||||||
|
function int posix_spawnattr_getschedparam (const posix_spawnattr_t*, struct sched_param*)
|
||||||
|
function int posix_spawnattr_getschedpolicy (const posix_spawnattr_t*, int*)
|
||||||
|
function int posix_spawnattr_getsigmask (const posix_spawnattr_t*, sigset_t*)
|
||||||
|
function int posix_spawnattr_init (posix_spawnattr_t*)
|
||||||
|
function int posix_spawnattr_setdefault (posix_spawnattr_t*, const sigset_t*)
|
||||||
|
function int posix_spawnattr_setflags (posix_spawnattr_t*, const sigset_t*)
|
||||||
|
function int posix_spawnattr_setpgroup (posix_spawnattr_t*, pid_t)
|
||||||
|
function int posix_spawnattr_setschedparam (posix_spawnattr_t*, const struct sched_param*)
|
||||||
|
function int posix_spawnattr_setschedpolicy (posix_spawnattr_t*, int)
|
||||||
|
function int posix_spawnattr_setsigmask (posix_spawnattr_t*, const sigset_t*)
|
||||||
|
function int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t*, int)
|
||||||
|
function int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t*, int, int)
|
||||||
|
function int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t*, int, const char *, int, mode_t)
|
||||||
|
function int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t*)
|
||||||
|
function int posix_spawn_file_actions_init (posix_spawn_file_actions_t*)
|
||||||
|
function int posix_spawn (pid_t*, const char*, const posix_spawn_file_actions_t*, const posix_spawnattr_t*, char *const[], char *const[]);
|
||||||
|
function int posix_spawnp (pid_t*, const char*, const posix_spawn_file_actions_t*, const posix_spawnattr_t*, char *const[], char *const[]);
|
||||||
|
|
||||||
|
allow-header signal.h
|
||||||
|
allow-header sys/types.h
|
||||||
|
#endif
|
|
@ -55,6 +55,7 @@ function {char*} mktemp (char*)
|
||||||
function int mkstemp (char*)
|
function int mkstemp (char*)
|
||||||
function {long int} mrand48 (void)
|
function {long int} mrand48 (void)
|
||||||
function {long int} nrand48 (unsigned short int[3])
|
function {long int} nrand48 (unsigned short int[3])
|
||||||
|
function int posix_memalign (void**, size_t, size_t)
|
||||||
function {char*} ptsname (int)
|
function {char*} ptsname (int)
|
||||||
function int putenv (char*)
|
function int putenv (char*)
|
||||||
function void qsort (void*, size_t, size_t, int(*)(const void*, const void*))
|
function void qsort (void*, size_t, size_t, int(*)(const void*, const void*))
|
||||||
|
@ -64,6 +65,7 @@ function long random (void)
|
||||||
function {void*} realloc (void*, size_t)
|
function {void*} realloc (void*, size_t)
|
||||||
function {char*} realpath (const char*, char*)
|
function {char*} realpath (const char*, char*)
|
||||||
function {unsigned short int*} seed48 (unsigned short int[3])
|
function {unsigned short int*} seed48 (unsigned short int[3])
|
||||||
|
function int setenv (const char*, const char*, int)
|
||||||
function void setkey (const char*)
|
function void setkey (const char*)
|
||||||
function {char*} setstate (const char*)
|
function {char*} setstate (const char*)
|
||||||
function void srand (unsigned int)
|
function void srand (unsigned int)
|
||||||
|
@ -75,6 +77,7 @@ function {unsigned long int} strtoul (const char*, char**, int)
|
||||||
function int system (const char*)
|
function int system (const char*)
|
||||||
function int ttyslot (void)
|
function int ttyslot (void)
|
||||||
function int unlockpt (int)
|
function int unlockpt (int)
|
||||||
|
function int unsetenv (const char*)
|
||||||
function {void*} valloc (size_t)
|
function {void*} valloc (size_t)
|
||||||
function size_t wcstombs (char*, const wchar_t*, size_t)
|
function size_t wcstombs (char*, const wchar_t*, size_t)
|
||||||
function int wctomb (char*, wchar_t)
|
function int wctomb (char*, wchar_t)
|
||||||
|
|
|
@ -16,10 +16,24 @@ constant MCL_FUTURE
|
||||||
|
|
||||||
constant MAP_FAILED
|
constant MAP_FAILED
|
||||||
|
|
||||||
|
constant POSIX_MADV_NORMAL
|
||||||
|
constant POSIX_MADV_SEQUENTIAL
|
||||||
|
constant POSIX_MADV_RANDOM
|
||||||
|
constant POSIX_MADV_WILLNEED
|
||||||
|
constant POSIX_MADV_DONTNEED
|
||||||
|
|
||||||
|
constant POSIX_TYPED_MEM_ALLOCATE
|
||||||
|
constant POSIX_TYPED_MEM_ALLOCATE_CONTIG
|
||||||
|
constant POSIX_TYPED_MEM_MAP_ALLOCATABLE
|
||||||
|
|
||||||
type size_t
|
type size_t
|
||||||
type off_t
|
type off_t
|
||||||
type mode_t
|
type mode_t
|
||||||
|
|
||||||
|
type {struct posix_typedmem_info}
|
||||||
|
|
||||||
|
element {struct posix_typedmem_info} size_t posix_tmi_length
|
||||||
|
|
||||||
function int mlock (const void*, size_t)
|
function int mlock (const void*, size_t)
|
||||||
function int mlockall (int)
|
function int mlockall (int)
|
||||||
function {void*} mmap (void*, size_t, int, int, int, off_t)
|
function {void*} mmap (void*, size_t, int, int, int, off_t)
|
||||||
|
@ -28,6 +42,9 @@ function int msync (void*, size_t, int)
|
||||||
function int munlock (const void*, size_t)
|
function int munlock (const void*, size_t)
|
||||||
function int munlockall (void)
|
function int munlockall (void)
|
||||||
function int munmap (void*, size_t)
|
function int munmap (void*, size_t)
|
||||||
|
function int posix_mem_offset (const void*, size_t, off_t*, size_t*, int*)
|
||||||
|
function int posix_typed_mem_get_info (int, struct posix_typed_mem_info*)
|
||||||
|
function int posix_typed_mem_open (const char*, int, int)
|
||||||
function int shm_open (const char*, int, mode_t)
|
function int shm_open (const char*, int, mode_t)
|
||||||
function int shm_unlink (const char*)
|
function int shm_unlink (const char*)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,108 @@
|
||||||
|
#ifndef ISO
|
||||||
|
type socklen_t
|
||||||
|
|
||||||
|
type sa_family_t
|
||||||
|
|
||||||
|
type {struct sockaddr}
|
||||||
|
|
||||||
|
element {struct sockaddr} sa_family_t sa_family
|
||||||
|
element {struct sockaddr} char sa_data [0]
|
||||||
|
|
||||||
|
type {struct sockaddr_storage}
|
||||||
|
|
||||||
|
element {struct sockaddr_storage} sa_family_t ss_family
|
||||||
|
|
||||||
|
type {struct msghdr}
|
||||||
|
|
||||||
|
element {struct msghdr} {void*} msg_name
|
||||||
|
element {struct msghdr} socklen_t msg_namelen
|
||||||
|
element {struct msghdr} {struct iovec*} msg_iov
|
||||||
|
element {struct msghdr} int msg_iovlen
|
||||||
|
element {struct msghdr} {void*} msg_control
|
||||||
|
element {struct msghdr} socklen_t msg_controllen
|
||||||
|
element {struct msghdr} int msg_flags
|
||||||
|
|
||||||
|
type {struct iovec}
|
||||||
|
|
||||||
|
element {struct iovec} {void*} iov_base
|
||||||
|
element {struct iovec} size_t iov_len
|
||||||
|
|
||||||
|
type {struct cmsghdr}
|
||||||
|
|
||||||
|
element {struct cmsghdr} socklen_t cmsg_len
|
||||||
|
element {struct cmsghdr} int cmsg_level
|
||||||
|
element {struct cmsghdr} int cmsg_type
|
||||||
|
|
||||||
|
macro SCM_RIGHTS
|
||||||
|
|
||||||
|
macro CMSG_DATA
|
||||||
|
macro CMSG_NXTHDR
|
||||||
|
macro CMSG_FIRSTHDR
|
||||||
|
|
||||||
|
type {struct linger}
|
||||||
|
|
||||||
|
element {struct linger} int l_onoff
|
||||||
|
element {struct linger} int l_linger
|
||||||
|
|
||||||
|
macro SOCK_DGRAM
|
||||||
|
macro SOCK_STREAM
|
||||||
|
macro SOCK_SEQPACKET
|
||||||
|
|
||||||
|
macro SOL_SOCKET
|
||||||
|
|
||||||
|
macro SO_ACCEPTCONN
|
||||||
|
macro SO_BROADCAST
|
||||||
|
macro SO_DEBUG
|
||||||
|
macro SO_DONTROUTE
|
||||||
|
macro SO_ERROR
|
||||||
|
macro SO_KEEPALIVE
|
||||||
|
macro SO_LINGER
|
||||||
|
macro SO_OOBINLINE
|
||||||
|
macro SO_RCVBUF
|
||||||
|
macro SO_RCVLOWAT
|
||||||
|
macro SO_RCVTIMEO
|
||||||
|
macro SO_REUSEADDR
|
||||||
|
macro SO_SNDBUF
|
||||||
|
macro SO_SNDLOWAT
|
||||||
|
macro SO_SNFTIMEO
|
||||||
|
macro SO_TYPE
|
||||||
|
|
||||||
|
macro SOMAXCONN
|
||||||
|
|
||||||
|
macro MSG_CTRUNC
|
||||||
|
macro MSG_DONTROUTE
|
||||||
|
macro MSG_EOR
|
||||||
|
macro MSG_OOB
|
||||||
|
macro MSG_PEEK
|
||||||
|
macro MSG_TRUNC
|
||||||
|
macro MSG_WAITALL
|
||||||
|
|
||||||
|
macro AF_UNIX
|
||||||
|
macro AF_UNSPEC
|
||||||
|
macro AF_INET
|
||||||
|
macro_AF_INET6
|
||||||
|
|
||||||
|
macro SHUT_RD
|
||||||
|
macro SHUT_WR
|
||||||
|
macro SHUT_RDWR
|
||||||
|
|
||||||
|
function int accept (int, struct sockaddr*, socklen_t*)
|
||||||
|
function int bind (int, const struct sockaddr*, socklen_t)
|
||||||
|
function int connect (int, const struct sockaddr*, socklen_t)
|
||||||
|
function int getpeername (int, struct sockaddr*, socklen_t*)
|
||||||
|
function int getsockname (int, struct sockaddr*, socklen_t*)
|
||||||
|
function int getsockopt (int, int, int, void*, socklen_t)
|
||||||
|
function int listen (int, int)
|
||||||
|
function ssize_t recv (int, void*, size_t, int)
|
||||||
|
function ssize_t recvfrom (int, void*, size_t, int)
|
||||||
|
function ssize_t recvmsg (int, struct msghdr*, int)
|
||||||
|
function ssize_t send (int, const struct msghdr*, int)
|
||||||
|
function ssize_t sendmsg (int, const struct msghdr*, int)
|
||||||
|
function ssize_t sendto (int, const void*, size_t, int, const struct sockaddr*, socklen_t)
|
||||||
|
function int setsockopt (int, int, int, const void*, socklen_t)
|
||||||
|
function int shutdown (int, int)
|
||||||
|
function int socket (int, int, int)
|
||||||
|
function int socketpair (int, int, int, int)
|
||||||
|
|
||||||
|
allow-header sys/uio.h
|
||||||
|
#endif
|
|
@ -1,3 +1,5 @@
|
||||||
|
#ifndef ISO
|
||||||
|
|
||||||
type {struct stat}
|
type {struct stat}
|
||||||
|
|
||||||
element {struct stat} dev_t st_dev
|
element {struct stat} dev_t st_dev
|
||||||
|
@ -59,10 +61,12 @@ macro S_ISLNK
|
||||||
# macro S_TYPEISMQ
|
# macro S_TYPEISMQ
|
||||||
# macro S_TYPEISSEM
|
# macro S_TYPEISSEM
|
||||||
# macro S_TYPEISSHM
|
# macro S_TYPEISSHM
|
||||||
|
# macro S_TYPEISTMO
|
||||||
|
|
||||||
function int chmod (const char*, mode_t)
|
function int chmod (const char*, mode_t)
|
||||||
function int fchmod (int, mode_t)
|
function int fchmod (int, mode_t)
|
||||||
function int fstat (int, struct stat*)
|
function int fstat (int, struct stat*)
|
||||||
|
function int isfdtype (int, int)
|
||||||
function int lstat (const char*, struct stat*)
|
function int lstat (const char*, struct stat*)
|
||||||
function int mkdir (const char*, mode_t)
|
function int mkdir (const char*, mode_t)
|
||||||
function int mkfifo (const char*, mode_t)
|
function int mkfifo (const char*, mode_t)
|
||||||
|
@ -73,3 +77,4 @@ function mode_t umask (mode_t)
|
||||||
allow st_*
|
allow st_*
|
||||||
allow S_*
|
allow S_*
|
||||||
allow *_t
|
allow *_t
|
||||||
|
#endif
|
||||||
|
|
|
@ -14,6 +14,8 @@ type nlink_t
|
||||||
type off_t
|
type off_t
|
||||||
type pid_t
|
type pid_t
|
||||||
type pthread_attr_t
|
type pthread_attr_t
|
||||||
|
type pthread_barrier_t
|
||||||
|
type pthread_barrierattr_t
|
||||||
type pthread_cond_t
|
type pthread_cond_t
|
||||||
type pthread_condattr_t
|
type pthread_condattr_t
|
||||||
type pthread_key_t
|
type pthread_key_t
|
||||||
|
@ -22,6 +24,7 @@ type pthread_mutexattr_t
|
||||||
type pthread_once_t
|
type pthread_once_t
|
||||||
type pthread_rwlock_t
|
type pthread_rwlock_t
|
||||||
type pthread_rwlockattr_t
|
type pthread_rwlockattr_t
|
||||||
|
type pthread_spinlock_t
|
||||||
type pthread_t
|
type pthread_t
|
||||||
type size_t
|
type size_t
|
||||||
type ssize_t
|
type ssize_t
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef ISO
|
||||||
|
type {struct sockaddr_un}
|
||||||
|
|
||||||
|
element {struct sockaddr_un} sa_family_t sun_family
|
||||||
|
element {struct sockaddr_un} char sun_path [0]
|
||||||
|
|
||||||
|
type sa_family_t
|
||||||
|
#endif
|
|
@ -0,0 +1,11 @@
|
||||||
|
#ifndef ISO
|
||||||
|
type {struct utsname}
|
||||||
|
|
||||||
|
element {struct utsname} char sysname [1]
|
||||||
|
element {struct utsname} char nodename [1]
|
||||||
|
element {struct utsname} char release [1]
|
||||||
|
element {struct utsname} char version [1]
|
||||||
|
element {struct utsname} char machine [1]
|
||||||
|
|
||||||
|
function int uname (struct utsname *)
|
||||||
|
#endif
|
|
@ -13,6 +13,8 @@ element {struct tm} int tm_isdst
|
||||||
constant NULL
|
constant NULL
|
||||||
constant CLK_TCK
|
constant CLK_TCK
|
||||||
constant CLOCKS_PER_SEC
|
constant CLOCKS_PER_SEC
|
||||||
|
constant CLOCK_PROCESS_CPUTIME_ID
|
||||||
|
constant CLOCK_THREAD_CPUTIME_ID
|
||||||
|
|
||||||
type {struct timespec}
|
type {struct timespec}
|
||||||
|
|
||||||
|
@ -26,6 +28,7 @@ element {struct itimerspec} {struct timespec} it_value
|
||||||
|
|
||||||
constant CLOCK_REALTIME
|
constant CLOCK_REALTIME
|
||||||
constant TIME_ABSTIME
|
constant TIME_ABSTIME
|
||||||
|
constant CLOCK_MONOTONIC
|
||||||
|
|
||||||
type clock_t
|
type clock_t
|
||||||
type clockid_t
|
type clockid_t
|
||||||
|
@ -38,15 +41,17 @@ variable int getdate_err
|
||||||
function {char*} asctime (const struct tm*)
|
function {char*} asctime (const struct tm*)
|
||||||
function {char*} asctime_r (const struct tm*, char*)
|
function {char*} asctime_r (const struct tm*, char*)
|
||||||
function clock_t clock (void)
|
function clock_t clock (void)
|
||||||
|
function int clock_getcpuclockid (pid_t, clockid_t*)
|
||||||
function int clock_getres (clockid_t, struct timespec*)
|
function int clock_getres (clockid_t, struct timespec*)
|
||||||
function int clock_gettime (clockid_t, struct timespec*)
|
function int clock_gettime (clockid_t, struct timespec*)
|
||||||
|
function int clock_nanosleep (clockid_t, int, const struct timespec*, struct timespec*)
|
||||||
function int clock_settime (clockid_t, const struct timespec*)
|
function int clock_settime (clockid_t, const struct timespec*)
|
||||||
function {char*} ctime (const time_t*)
|
function {char*} ctime (const time_t*)
|
||||||
function {char*} ctime_r (const time_t*, char*)
|
function {char*} ctime_r (const time_t*, char*)
|
||||||
function double difftime (time_t, time_t)
|
function double difftime (time_t, time_t)
|
||||||
function {struct tm*} getdate (const char*)
|
function {struct tm*} getdate (const char*)
|
||||||
function {struct tm*} gmtime (const time_t*)
|
function {struct tm*} gmtime (const time_t*)
|
||||||
function {struct tm*} gmtime_t (const time_t*, struct tm*)
|
function {struct tm*} gmtime_r (const time_t*, struct tm*)
|
||||||
function {struct tm*} localtime (const time_t*)
|
function {struct tm*} localtime (const time_t*)
|
||||||
function {struct tm*} localtime_r (const time_t*, struct tm*)
|
function {struct tm*} localtime_r (const time_t*, struct tm*)
|
||||||
function time_t mktime (struct tm*)
|
function time_t mktime (struct tm*)
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
constant _POSIX_VERSION
|
constant _POSIX_VERSION
|
||||||
constant _POSIX2_VERSION
|
|
||||||
constant _POSIX2_C_VERSION
|
constant _POSIX2_C_VERSION
|
||||||
constant _XOPEN_VERSION
|
constant _XOPEN_VERSION
|
||||||
constant _XOPEN_XCU_VERSION
|
constant _XOPEN_XCU_VERSION
|
||||||
|
@ -15,17 +14,31 @@ constant _XOPEN_XPG3
|
||||||
constant _XOPEN_XPG4
|
constant _XOPEN_XPG4
|
||||||
constant _XOPEN_UNIX
|
constant _XOPEN_UNIX
|
||||||
|
|
||||||
|
constant _POSIX_ADVISORY_INFO
|
||||||
|
constant _POSIX_ASYNCHRONOUS_IO
|
||||||
|
constant _POSIX_BARRIERS
|
||||||
constant _POSIX_CHOWN_RESTRICTED
|
constant _POSIX_CHOWN_RESTRICTED
|
||||||
|
constant _POSIX_CLOCK_SELECTION
|
||||||
|
constant _POSIX_CPUTIME
|
||||||
constant _POSIX_NO_TRUNC
|
constant _POSIX_NO_TRUNC
|
||||||
constant _POSIX_VDISABLE
|
constant _POSIX_VDISABLE
|
||||||
constant _POSIX_SAVED_IDS
|
constant _POSIX_SAVED_IDS
|
||||||
constant _POSIX_JOB_CONTROL
|
constant _POSIX_JOB_CONTROL
|
||||||
|
constant _POSIX_MONOTONIC_CLOCK
|
||||||
|
constant _POSIX_READER_WRITER_LOCKS
|
||||||
|
constant _POSIX_SHELL
|
||||||
|
constant _POSIX_SPAWN
|
||||||
|
constant _POSIX_SPIN_LOCKS
|
||||||
|
constant _POSIX_SPORADIC_SERVER
|
||||||
|
constant _POSIX_THREAD_CPUTIME
|
||||||
|
constant _POSIX_TYPED_MEMORY_OBJECTS
|
||||||
|
|
||||||
constant _POSIX_THREADS
|
constant _POSIX_THREADS
|
||||||
constant _POSIX_THREAD_ATTR_STACKADDR
|
constant _POSIX_THREAD_ATTR_STACKADDR
|
||||||
constant _POSIX_THREAD_ATTR_STACKSIZE
|
constant _POSIX_THREAD_ATTR_STACKSIZE
|
||||||
constant _POSIX_THREAD_PROCESS_SHARED
|
constant _POSIX_THREAD_PROCESS_SHARED
|
||||||
constant _POSIX_THREAD_SAFE_FUNCTIONS
|
constant _POSIX_THREAD_SAFE_FUNCTIONS
|
||||||
|
constant _POSIX_THREAD_SPORADIC_SERVER
|
||||||
|
|
||||||
constant _POSIX2_C_DEV
|
constant _POSIX2_C_DEV
|
||||||
constant _POSIX2_FORT_DEV
|
constant _POSIX2_FORT_DEV
|
||||||
|
@ -37,6 +50,7 @@ constant _XOPEN_LEGACY
|
||||||
constant _XOPEN_REALTIME
|
constant _XOPEN_REALTIME
|
||||||
constant _XOPEN_REALTIME_THREADS
|
constant _XOPEN_REALTIME_THREADS
|
||||||
constant _XOPEN_SHM
|
constant _XOPEN_SHM
|
||||||
|
constant _XOPEN_STREAMS
|
||||||
allow _XBS5_ILP32_OFF32
|
allow _XBS5_ILP32_OFF32
|
||||||
allow _XBS5_ILP32_OFBIG
|
allow _XBS5_ILP32_OFBIG
|
||||||
allow _XBS5_LP64_OFF64
|
allow _XBS5_LP64_OFF64
|
||||||
|
@ -51,6 +65,7 @@ constant _POSIX_SEMAPHORES
|
||||||
constant _POSIX_SHARED_MEMORY_OBJECTS
|
constant _POSIX_SHARED_MEMORY_OBJECTS
|
||||||
constant _POSIX_SYNCHRONIZED_IO
|
constant _POSIX_SYNCHRONIZED_IO
|
||||||
constant _POSIX_TIMERS
|
constant _POSIX_TIMERS
|
||||||
|
constant _POSIX_TIMEOUTS
|
||||||
|
|
||||||
constant _POSIX_FSYNC
|
constant _POSIX_FSYNC
|
||||||
constant _POSIX_MAPPED_FILES
|
constant _POSIX_MAPPED_FILES
|
||||||
|
@ -66,6 +81,13 @@ constant _POSIX_ASYNC_IO
|
||||||
constant _POSIX_PRIO_IO
|
constant _POSIX_PRIO_IO
|
||||||
constant _POSIX_SYNC_IO
|
constant _POSIX_SYNC_IO
|
||||||
|
|
||||||
|
constant _POSIX2_PBS
|
||||||
|
constant _POSIX2_PBS_ACCOUNTING
|
||||||
|
constant _POSIX2_PBS_CHECKPOINT
|
||||||
|
constant _POSIX2_PBS_LOCATE
|
||||||
|
constant _POSIX2_PBS_MESSAGE
|
||||||
|
constant _POSIX2_PBS_TRACK
|
||||||
|
|
||||||
constant NULL
|
constant NULL
|
||||||
|
|
||||||
constant R_OK
|
constant R_OK
|
||||||
|
@ -101,6 +123,12 @@ constant _SC_2_C_VERSION
|
||||||
constant _SC_2_FORT_DEV
|
constant _SC_2_FORT_DEV
|
||||||
constant _SC_2_FORT_RUN
|
constant _SC_2_FORT_RUN
|
||||||
constant _SC_2_LOCALEDEF
|
constant _SC_2_LOCALEDEF
|
||||||
|
constant _SC_2_PBS
|
||||||
|
constant _SC_2_PBS_ACCOUNTING
|
||||||
|
constant _SC_2_PBS_CHECKPOINT
|
||||||
|
constant _SC_2_PBS_LOCATE
|
||||||
|
constant _SC_2_PBS_MESSAGE
|
||||||
|
constant _SC_2_PBS_TRACK
|
||||||
constant _SC_2_SW_DEV
|
constant _SC_2_SW_DEV
|
||||||
constant _SC_2_UPE
|
constant _SC_2_UPE
|
||||||
constant _SC_2_VERSION
|
constant _SC_2_VERSION
|
||||||
|
@ -110,15 +138,26 @@ constant _SC_AIO_MAX
|
||||||
constant _SC_AIO_PRIO_DELTA_MAX
|
constant _SC_AIO_PRIO_DELTA_MAX
|
||||||
constant _SC_ASYNCHRONOUS_IO
|
constant _SC_ASYNCHRONOUS_IO
|
||||||
constant _SC_ATEXIT_MAX
|
constant _SC_ATEXIT_MAX
|
||||||
|
constant _SC_BARRIERS
|
||||||
|
constant _SC_BASE
|
||||||
constant _SC_BC_BASE_MAX
|
constant _SC_BC_BASE_MAX
|
||||||
constant _SC_BC_DIM_MAX
|
constant _SC_BC_DIM_MAX
|
||||||
constant _SC_BC_SCALE_MAX
|
constant _SC_BC_SCALE_MAX
|
||||||
constant _SC_BC_STRING_MAX
|
constant _SC_BC_STRING_MAX
|
||||||
constant _SC_CHILD_MAX
|
constant _SC_CHILD_MAX
|
||||||
constant _SC_CLK_TCK
|
constant _SC_CLK_TCK
|
||||||
|
constant _SC_CLOCK_SELECTION
|
||||||
constant _SC_COLL_WEIGHTS_MAX
|
constant _SC_COLL_WEIGHTS_MAX
|
||||||
constant _SC_DELAYTIMER_MAX
|
constant _SC_DELAYTIMER_MAX
|
||||||
|
constant _SC_DEVICE_IO
|
||||||
|
constant _SC_DEVICE_SPECIFIC
|
||||||
|
constant _SC_DEVICE_SPECIFIC_R
|
||||||
constant _SC_EXPR_NEST_MAX
|
constant _SC_EXPR_NEST_MAX
|
||||||
|
constant _SC_FD_MGMT
|
||||||
|
constant _SC_FIFO
|
||||||
|
constant _SC_FILE_ATTRIBUTES
|
||||||
|
constant _SC_FILE_LOCKING
|
||||||
|
constant _SC_FILE_SYSTEM
|
||||||
constant _SC_FSYNC
|
constant _SC_FSYNC
|
||||||
constant _SC_GETGR_R_SIZE_MAX
|
constant _SC_GETGR_R_SIZE_MAX
|
||||||
constant _SC_GETPW_R_SIZE_MAX
|
constant _SC_GETPW_R_SIZE_MAX
|
||||||
|
@ -129,24 +168,36 @@ constant _SC_LOGIN_NAME_MAX
|
||||||
constant _SC_MAPPED_FILES
|
constant _SC_MAPPED_FILES
|
||||||
constant _SC_MEMLOCK
|
constant _SC_MEMLOCK
|
||||||
constant _SC_MEMLOCK_RANGE
|
constant _SC_MEMLOCK_RANGE
|
||||||
|
constant _SC_MEMORY_PROTECTION
|
||||||
|
constant _SC_MESSAGE_PASSING
|
||||||
|
constant _SC_MONOTONIC_CLOCK
|
||||||
constant _SC_MQ_OPEN_MAX
|
constant _SC_MQ_OPEN_MAX
|
||||||
constant _SC_MQ_PRIO_MAX
|
constant _SC_MQ_PRIO_MAX
|
||||||
|
constant _SC_MULTIPLE_PROCESS
|
||||||
|
constant _SC_NETWORKING
|
||||||
constant _SC_NGROUPS_MAX
|
constant _SC_NGROUPS_MAX
|
||||||
constant _SC_OPEN_MAX
|
constant _SC_OPEN_MAX
|
||||||
constant _SC_PAGESIZE
|
constant _SC_PAGESIZE
|
||||||
constant _SC_PAGE_SIZE
|
constant _SC_PAGE_SIZE
|
||||||
constant _SC_PASS_MAX
|
constant _SC_PASS_MAX
|
||||||
|
constant _SC_PIPE
|
||||||
constant _SC_PRIORITIZED_IO
|
constant _SC_PRIORITIZED_IO
|
||||||
constant _SC_PRIORITY_SCHEDULING
|
constant _SC_PRIORITY_SCHEDULING
|
||||||
constant _SC_RE_DUP_MAX
|
constant _SC_RE_DUP_MAX
|
||||||
|
constant _SC_READER_WRITER_LOCKS
|
||||||
constant _SC_REALTIME_SIGNALS
|
constant _SC_REALTIME_SIGNALS
|
||||||
|
constant _SC_REGEXP
|
||||||
constant _SC_RTSIG_MAX
|
constant _SC_RTSIG_MAX
|
||||||
constant _SC_SAVED_IDS
|
constant _SC_SAVED_IDS
|
||||||
constant _SC_SEMAPHORES
|
constant _SC_SEMAPHORES
|
||||||
constant _SC_SEM_NSEMS_MAX
|
constant _SC_SEM_NSEMS_MAX
|
||||||
constant _SC_SEM_VALUE_MAX
|
constant _SC_SEM_VALUE_MAX
|
||||||
constant _SC_SHARED_MEMORY_OBJECTS
|
constant _SC_SHARED_MEMORY_OBJECTS
|
||||||
|
constant _SC_SHELL
|
||||||
|
constant _SC_SIGNALS
|
||||||
constant _SC_SIGQUEUE_MAX
|
constant _SC_SIGQUEUE_MAX
|
||||||
|
constant _SC_SINGLE_PROCESS
|
||||||
|
constant _SC_SPIN_LOCKS
|
||||||
constant _SC_STREAM_MAX
|
constant _SC_STREAM_MAX
|
||||||
constant _SC_SYNCHRONIZED_IO
|
constant _SC_SYNCHRONIZED_IO
|
||||||
constant _SC_THREADS
|
constant _SC_THREADS
|
||||||
|
@ -164,7 +215,10 @@ constant _SC_THREAD_THREADS_MAX
|
||||||
constant _SC_TIMERS
|
constant _SC_TIMERS
|
||||||
constant _SC_TIMER_MAX
|
constant _SC_TIMER_MAX
|
||||||
constant _SC_TTY_NAME_MAX
|
constant _SC_TTY_NAME_MAX
|
||||||
|
constant _SC_TYPED_MEMORY_OBJECTS
|
||||||
constant _SC_TZNAME_MAX
|
constant _SC_TZNAME_MAX
|
||||||
|
constant _SC_USER_GROUPS
|
||||||
|
constant _SC_USER_GROUPS_R
|
||||||
constant _SC_VERSION
|
constant _SC_VERSION
|
||||||
constant _SC_XOPEN_VERSION
|
constant _SC_XOPEN_VERSION
|
||||||
constant _SC_XOPEN_CRYPT
|
constant _SC_XOPEN_CRYPT
|
||||||
|
@ -175,6 +229,7 @@ constant _SC_XOPEN_XCU_VERSION
|
||||||
constant _SC_XOPEN_LEGACY
|
constant _SC_XOPEN_LEGACY
|
||||||
constant _SC_XOPEN_REALTIME
|
constant _SC_XOPEN_REALTIME
|
||||||
constant _SC_XOPEN_REALTIME_THREADS
|
constant _SC_XOPEN_REALTIME_THREADS
|
||||||
|
constant _SC_STREAMS
|
||||||
constant _SC_XBS5_ILP32_OFF32
|
constant _SC_XBS5_ILP32_OFF32
|
||||||
constant _SC_XBS5_ILP32_OFFBIG
|
constant _SC_XBS5_ILP32_OFFBIG
|
||||||
constant _SC_XBS5_ILP64_OFF64
|
constant _SC_XBS5_ILP64_OFF64
|
||||||
|
@ -196,6 +251,10 @@ constant _PC_NO_TRUNC
|
||||||
constant _PC_PATH_MAX
|
constant _PC_PATH_MAX
|
||||||
constant _PC_PIPE_BUF
|
constant _PC_PIPE_BUF
|
||||||
constant _PC_PRIO_IO
|
constant _PC_PRIO_IO
|
||||||
|
constant _PC_REC_INCR_XFER_SIZE
|
||||||
|
constant _PC_REC_MAX_XFER_SIZE
|
||||||
|
constant _PC_REC_MIN_XFER_SIZE
|
||||||
|
constant _PC_REC_XFER_ALIGN
|
||||||
constant _PC_SYNC_IO
|
constant _PC_SYNC_IO
|
||||||
constant _PC_VDISABLE
|
constant _PC_VDISABLE
|
||||||
|
|
||||||
|
@ -207,7 +266,7 @@ type size_t
|
||||||
type ssize_t
|
type ssize_t
|
||||||
type uid_t
|
type uid_t
|
||||||
type gid_t
|
type gid_t
|
||||||
type uid_t
|
type off_t
|
||||||
type pid_t
|
type pid_t
|
||||||
|
|
||||||
type useconds_t
|
type useconds_t
|
||||||
|
@ -277,6 +336,8 @@ function ssize_t read (int, void*, size_t)
|
||||||
function int readlink (const char*, char*, size_t)
|
function int readlink (const char*, char*, size_t)
|
||||||
function int rmdir (const char*)
|
function int rmdir (const char*)
|
||||||
function {void*} sbrk (intptr_t)
|
function {void*} sbrk (intptr_t)
|
||||||
|
function int setegid (gid_t)
|
||||||
|
function int seteuid (uid_t)
|
||||||
function int setgid (gid_t)
|
function int setgid (gid_t)
|
||||||
function int setpgid (pid_t, pid_t)
|
function int setpgid (pid_t, pid_t)
|
||||||
function pid_t setpgrp (void)
|
function pid_t setpgrp (void)
|
||||||
|
|
|
@ -7,8 +7,8 @@ extern int __gethostent_r (struct hostent *__restrict __result_buf,
|
||||||
struct hostent **__restrict __result,
|
struct hostent **__restrict __result,
|
||||||
int *__restrict __h_errnop);
|
int *__restrict __h_errnop);
|
||||||
|
|
||||||
extern int __gethostbyaddr_r (__const char *__restrict __addr,
|
extern int __gethostbyaddr_r (__const void *__restrict __addr,
|
||||||
size_t __len, int __type,
|
socklen_t __len, int __type,
|
||||||
struct hostent *__restrict __result_buf,
|
struct hostent *__restrict __result_buf,
|
||||||
char *__restrict __buf, size_t __buflen,
|
char *__restrict __buf, size_t __buflen,
|
||||||
struct hostent **__restrict __result,
|
struct hostent **__restrict __result,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
#define LOOKUP_TYPE struct hostent
|
#define LOOKUP_TYPE struct hostent
|
||||||
#define FUNCTION_NAME gethostbyaddr
|
#define FUNCTION_NAME gethostbyaddr
|
||||||
#define DATABASE_NAME hosts
|
#define DATABASE_NAME hosts
|
||||||
#define ADD_PARAMS const char *addr, size_t len, int type
|
#define ADD_PARAMS const void *addr, socklen_t len, int type
|
||||||
#define ADD_VARIABLES addr, len, type
|
#define ADD_VARIABLES addr, len, type
|
||||||
#define BUFLEN 1024
|
#define BUFLEN 1024
|
||||||
#define NEED_H_ERRNO 1
|
#define NEED_H_ERRNO 1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
#define LOOKUP_TYPE struct hostent
|
#define LOOKUP_TYPE struct hostent
|
||||||
#define FUNCTION_NAME gethostbyaddr
|
#define FUNCTION_NAME gethostbyaddr
|
||||||
#define DATABASE_NAME hosts
|
#define DATABASE_NAME hosts
|
||||||
#define ADD_PARAMS const char *addr, size_t len, int type
|
#define ADD_PARAMS const void *addr, socklen_t len, int type
|
||||||
#define ADD_VARIABLES addr, len, type
|
#define ADD_VARIABLES addr, len, type
|
||||||
#define NEED_H_ERRNO 1
|
#define NEED_H_ERRNO 1
|
||||||
#define NEED__RES 1
|
#define NEED__RES 1
|
||||||
|
@ -32,9 +32,9 @@
|
||||||
/* If the addr parameter is the IPv6 unspecified address no query must
|
/* If the addr parameter is the IPv6 unspecified address no query must
|
||||||
be performed. */
|
be performed. */
|
||||||
#define PREPROCESS \
|
#define PREPROCESS \
|
||||||
if (__builtin_expect (len == sizeof (struct in6_addr) \
|
if (len == sizeof (struct in6_addr) \
|
||||||
&& memcmp (&in6addr_any, addr, \
|
&& __builtin_expect (memcmp (&in6addr_any, addr, \
|
||||||
sizeof (struct in6_addr)) == 0, 0)) \
|
sizeof (struct in6_addr)), 1) == 0) \
|
||||||
{ \
|
{ \
|
||||||
*h_errnop = HOST_NOT_FOUND; \
|
*h_errnop = HOST_NOT_FOUND; \
|
||||||
*result = NULL; \
|
*result = NULL; \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (C) 1999 Free Software Foundation, Inc.
|
/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
|
|
||||||
struct hostent *
|
struct hostent *
|
||||||
getipnodebyaddr (const char *addr, size_t len, int type, int *error_num)
|
getipnodebyaddr (const void *addr, socklen_t len, int type, int *error_num)
|
||||||
{
|
{
|
||||||
size_t buffer_size;
|
size_t buffer_size;
|
||||||
char *buffer;
|
char *buffer;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
|
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
|
||||||
|
|
||||||
|
@ -359,7 +359,7 @@ _nss_nis_gethostbyname_r (const char *name, struct hostent *host, char *buffer,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum nss_status
|
enum nss_status
|
||||||
_nss_nis_gethostbyaddr_r (char *addr, size_t addrlen, int af,
|
_nss_nis_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af,
|
||||||
struct hostent *host, char *buffer, size_t buflen,
|
struct hostent *host, char *buffer, size_t buflen,
|
||||||
int *errnop, int *h_errnop)
|
int *errnop, int *h_errnop)
|
||||||
{
|
{
|
||||||
|
@ -380,7 +380,7 @@ _nss_nis_gethostbyaddr_r (char *addr, size_t addrlen, int af,
|
||||||
return NSS_STATUS_TRYAGAIN;
|
return NSS_STATUS_TRYAGAIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
buf = inet_ntoa (*(struct in_addr *) addr);
|
buf = inet_ntoa (*(const struct in_addr *) addr);
|
||||||
|
|
||||||
retval = yperr2nss (yp_match (domain, "hosts.byaddr", buf,
|
retval = yperr2nss (yp_match (domain, "hosts.byaddr", buf,
|
||||||
strlen (buf), &result, &len));
|
strlen (buf), &result, &len));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
|
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
|
||||||
|
|
||||||
|
@ -446,7 +446,7 @@ _nss_nisplus_gethostbyname_r (const char *name, struct hostent *host,
|
||||||
}
|
}
|
||||||
|
|
||||||
enum nss_status
|
enum nss_status
|
||||||
_nss_nisplus_gethostbyaddr_r (const char *addr, size_t addrlen, int af,
|
_nss_nisplus_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af,
|
||||||
struct hostent *host, char *buffer,
|
struct hostent *host, char *buffer,
|
||||||
size_t buflen, int *errnop, int *herrnop)
|
size_t buflen, int *errnop, int *herrnop)
|
||||||
{
|
{
|
||||||
|
@ -467,7 +467,7 @@ _nss_nisplus_gethostbyaddr_r (const char *addr, size_t addrlen, int af,
|
||||||
int retval, parse_res;
|
int retval, parse_res;
|
||||||
|
|
||||||
sprintf (buf, "[addr=%s],%s",
|
sprintf (buf, "[addr=%s],%s",
|
||||||
inet_ntoa (*(struct in_addr *) addr), tablename_val);
|
inet_ntoa (*(const struct in_addr *) addr), tablename_val);
|
||||||
result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
|
result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
|
||||||
|
|
||||||
retval = niserr2nss (result->status);
|
retval = niserr2nss (result->status);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
#define LOOKUP_TYPE struct hostent
|
#define LOOKUP_TYPE struct hostent
|
||||||
#define FUNCTION_NAME gethostbyaddr
|
#define FUNCTION_NAME gethostbyaddr
|
||||||
#define DATABASE_NAME hosts
|
#define DATABASE_NAME hosts
|
||||||
#define ADD_PARAMS const char *addr, size_t len, int type
|
#define ADD_PARAMS const void *addr, socklen_t len, int type
|
||||||
#define ADD_VARIABLES addr, len, type
|
#define ADD_VARIABLES addr, len, type
|
||||||
#define NEED_H_ERRNO 1
|
#define NEED_H_ERRNO 1
|
||||||
#define NEED__RES 1
|
#define NEED__RES 1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ __nscd_gethostbyname2_r (const char *name, int af, struct hostent *resultbuf,
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
__nscd_gethostbyaddr_r (const char *addr, size_t len, int type,
|
__nscd_gethostbyaddr_r (const void *addr, socklen_t len, int type,
|
||||||
struct hostent *resultbuf, char *buffer, size_t buflen,
|
struct hostent *resultbuf, char *buffer, size_t buflen,
|
||||||
int *h_errnop)
|
int *h_errnop)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
|
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ extern int __nscd_gethostbyname2_r (const char *name, int af,
|
||||||
struct hostent *resultbuf,
|
struct hostent *resultbuf,
|
||||||
char *buffer, size_t buflen,
|
char *buffer, size_t buflen,
|
||||||
int *h_errnop);
|
int *h_errnop);
|
||||||
extern int __nscd_gethostbyaddr_r (const char *addr, size_t len, int type,
|
extern int __nscd_gethostbyaddr_r (const void *addr, socklen_t len, int type,
|
||||||
struct hostent *resultbuf,
|
struct hostent *resultbuf,
|
||||||
char *buffer, size_t buflen,
|
char *buffer, size_t buflen,
|
||||||
int *h_errnop);
|
int *h_errnop);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Hosts file parser in nss_files module.
|
/* Hosts file parser in nss_files module.
|
||||||
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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -109,7 +109,7 @@ DB_LOOKUP (hostbyaddr, ,,
|
||||||
if (result->h_length == len
|
if (result->h_length == len
|
||||||
&& ! memcmp (addr, result->h_addr_list[0], len))
|
&& ! memcmp (addr, result->h_addr_list[0], len))
|
||||||
break;
|
break;
|
||||||
}, const char *addr, int len, int af)
|
}, const void *addr, socklen_t len, int af)
|
||||||
|
|
||||||
#undef EXTRA_ARGS_VALUE
|
#undef EXTRA_ARGS_VALUE
|
||||||
#define EXTRA_ARGS_VALUE \
|
#define EXTRA_ARGS_VALUE \
|
||||||
|
|
|
@ -624,8 +624,8 @@ gethostbyname2(name, af)
|
||||||
|
|
||||||
struct hostent *
|
struct hostent *
|
||||||
gethostbyaddr(addr, len, af)
|
gethostbyaddr(addr, len, af)
|
||||||
const char *addr; /* XXX should have been def'd as u_char! */
|
const void *addr;
|
||||||
size_t len;
|
socklen_t len;
|
||||||
int af;
|
int af;
|
||||||
{
|
{
|
||||||
const u_char *uaddr = (const u_char *)addr;
|
const u_char *uaddr = (const u_char *)addr;
|
||||||
|
|
|
@ -107,7 +107,7 @@ struct hostent
|
||||||
char *h_name; /* Official name of host. */
|
char *h_name; /* Official name of host. */
|
||||||
char **h_aliases; /* Alias list. */
|
char **h_aliases; /* Alias list. */
|
||||||
int h_addrtype; /* Host address type. */
|
int h_addrtype; /* Host address type. */
|
||||||
int h_length; /* Length of address. */
|
socklen_t h_length; /* Length of address. */
|
||||||
char **h_addr_list; /* List of addresses from name server. */
|
char **h_addr_list; /* List of addresses from name server. */
|
||||||
#define h_addr h_addr_list[0] /* Address, for backward compatibility. */
|
#define h_addr h_addr_list[0] /* Address, for backward compatibility. */
|
||||||
};
|
};
|
||||||
|
@ -125,7 +125,7 @@ extern struct hostent *gethostent (void) __THROW;
|
||||||
|
|
||||||
/* Return entry from host data base which address match ADDR with
|
/* Return entry from host data base which address match ADDR with
|
||||||
length LEN and type TYPE. */
|
length LEN and type TYPE. */
|
||||||
extern struct hostent *gethostbyaddr (__const char *__addr, size_t __len,
|
extern struct hostent *gethostbyaddr (__const void *__addr, __socklen_t __len,
|
||||||
int __type) __THROW;
|
int __type) __THROW;
|
||||||
|
|
||||||
/* Return entry from host data base for host with NAME. */
|
/* Return entry from host data base for host with NAME. */
|
||||||
|
@ -141,7 +141,7 @@ extern struct hostent *gethostbyname2 (__const char *__name, int __af) __THROW;
|
||||||
#ifdef __USE_UNIX98
|
#ifdef __USE_UNIX98
|
||||||
/* Return entry from host data base which address match ADDR with
|
/* Return entry from host data base which address match ADDR with
|
||||||
length LEN and type TYPE in newly allocated buffer. */
|
length LEN and type TYPE in newly allocated buffer. */
|
||||||
extern struct hostent *getipnodebyaddr (__const char *__addr, size_t __len,
|
extern struct hostent *getipnodebyaddr (__const void *__addr, socklen_t __len,
|
||||||
int __type, int *__error_num) __THROW;
|
int __type, int *__error_num) __THROW;
|
||||||
|
|
||||||
/* Return entry from host data base for host with NAME and newly allocated
|
/* Return entry from host data base for host with NAME and newly allocated
|
||||||
|
@ -172,7 +172,7 @@ extern int gethostent_r (struct hostent *__restrict __result_buf,
|
||||||
struct hostent **__restrict __result,
|
struct hostent **__restrict __result,
|
||||||
int *__restrict __h_errnop) __THROW;
|
int *__restrict __h_errnop) __THROW;
|
||||||
|
|
||||||
extern int gethostbyaddr_r (__const char *__restrict __addr, size_t __len,
|
extern int gethostbyaddr_r (__const void *__restrict __addr, __socklen_t __len,
|
||||||
int __type,
|
int __type,
|
||||||
struct hostent *__restrict __result_buf,
|
struct hostent *__restrict __result_buf,
|
||||||
char *__restrict __buf, size_t __buflen,
|
char *__restrict __buf, size_t __buflen,
|
||||||
|
|
Loading…
Reference in New Issue