From 9d4d69b88b5e601029d86ce037552bceea931c0b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 30 Apr 2000 04:17:35 +0000 Subject: 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 * conform/data/arpa/inet.h-data: New file. --- conform/conformtest.pl | 18 ++++--- conform/data/arpa/inet.h-data | 31 ++++++++++++ conform/data/ctype.h-data | 2 + conform/data/fcntl.h-data | 41 +++++++++++++++ conform/data/net/if.h-data | 15 ++++++ conform/data/netdb.h-data | 60 ++++++++++++++++++++++ conform/data/netinet/in.h-data | 84 +++++++++++++++++++++++++++++++ conform/data/netinet/tcp.h-data | 3 ++ conform/data/pthread.h-data | 22 ++++++++ conform/data/sched.h-data | 5 ++ conform/data/semaphore.h-data | 1 + conform/data/signal.h-data | 1 + conform/data/spawn.h-data | 36 ++++++++++++++ conform/data/stdlib.h-data | 3 ++ conform/data/sys/mman.h-data | 17 +++++++ conform/data/sys/socket.h-data | 108 ++++++++++++++++++++++++++++++++++++++++ conform/data/sys/stat.h-data | 5 ++ conform/data/sys/types.h-data | 3 ++ conform/data/sys/un.h-data | 8 +++ conform/data/sys/utsname.h-data | 11 ++++ conform/data/time.h-data | 7 ++- conform/data/unistd.h-data | 65 +++++++++++++++++++++++- 22 files changed, 535 insertions(+), 11 deletions(-) create mode 100644 conform/data/arpa/inet.h-data create mode 100644 conform/data/net/if.h-data create mode 100644 conform/data/netdb.h-data create mode 100644 conform/data/netinet/in.h-data create mode 100644 conform/data/netinet/tcp.h-data create mode 100644 conform/data/spawn.h-data create mode 100644 conform/data/sys/socket.h-data create mode 100644 conform/data/sys/un.h-data create mode 100644 conform/data/sys/utsname.h-data (limited to 'conform') diff --git a/conform/conformtest.pl b/conform/conformtest.pl index 0608d9ff15..a7d984ab6c 100644 --- a/conform/conformtest.pl +++ b/conform/conformtest.pl @@ -6,18 +6,20 @@ $CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500"; # List of the headers we are testing. @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", + "termios.h", "tar.h", "sys/wait.h", "sys/utsname.h", "sys/un.h", + "sys/uio.h", "sys/types.h", "sys/times.h", "sys/timeb.h", + "sys/time.h", "sys/statvfs.h", "sys/stat.h", "sys/socket.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", + "spawn.h", "signal.h", "setjmp.h", "semaphore.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", "inttypes.h", "iconv.h", "grp.h", "glob.h", "ftw.h", "fnmatch.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. @keywords = ('auto', 'break', 'case', 'char', 'const', 'continue', 'default', diff --git a/conform/data/arpa/inet.h-data b/conform/data/arpa/inet.h-data new file mode 100644 index 0000000000..6a98d334ae --- /dev/null +++ b/conform/data/arpa/inet.h-data @@ -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 diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data index 190c5678c2..f0aa947873 100644 --- a/conform/data/ctype.h-data +++ b/conform/data/ctype.h-data @@ -15,6 +15,8 @@ function int toupper (int) #ifndef ISO function int isascii (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 _tolower (int) diff --git a/conform/data/fcntl.h-data b/conform/data/fcntl.h-data index cf34c2b9ce..0fbe7d57fe 100644 --- a/conform/data/fcntl.h-data +++ b/conform/data/fcntl.h-data @@ -7,6 +7,8 @@ constant F_SETFL constant F_GETLK constant F_SETLK constant F_SETLKW +constant F_GETOWN +constant F_SETOWN constant FD_CLOEXEC @@ -14,6 +16,10 @@ constant F_RDLCK constant F_UNLCK constant F_WRLCK +constant SEEK_SET +constant SEEK_CUR +constant SEED_END + constant O_CREAT constant O_EXCL constant O_NOCTTY @@ -31,6 +37,38 @@ constant O_RDONLY constant O_RDWR 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} element {struct flock} short l_type @@ -46,6 +84,9 @@ type pid_t function int creat (const char*, mode_t) function int fcntl (int, 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 unistd.h diff --git a/conform/data/net/if.h-data b/conform/data/net/if.h-data new file mode 100644 index 0000000000..8a462522d1 --- /dev/null +++ b/conform/data/net/if.h-data @@ -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 diff --git a/conform/data/netdb.h-data b/conform/data/netdb.h-data new file mode 100644 index 0000000000..99773b8dc7 --- /dev/null +++ b/conform/data/netdb.h-data @@ -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 diff --git a/conform/data/netinet/in.h-data b/conform/data/netinet/in.h-data new file mode 100644 index 0000000000..81f1b78cfc --- /dev/null +++ b/conform/data/netinet/in.h-data @@ -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 diff --git a/conform/data/netinet/tcp.h-data b/conform/data/netinet/tcp.h-data new file mode 100644 index 0000000000..bd71a35265 --- /dev/null +++ b/conform/data/netinet/tcp.h-data @@ -0,0 +1,3 @@ +#ifndef ISO +macro TCP_NODELAY +#endif diff --git a/conform/data/pthread.h-data b/conform/data/pthread.h-data index f437814528..5d455f5d69 100644 --- a/conform/data/pthread.h-data +++ b/conform/data/pthread.h-data @@ -27,6 +27,8 @@ constant PTHREAD_RWLOCK_INITILIZER # endif type pthread_attr_t +type pthread_barrier_t +type pthread_barrierattr_t type pthread_cond_t type pthread_condattr_t type pthread_key_t @@ -35,6 +37,7 @@ type pthread_mutexattr_t type pthread_once_t type pthread_rwlock_t type pthread_rwlockattr_t +type pthread_spinlock_t type pthread_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_setstackaddr (pthread_attr_t*, void*) 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_cleanup_push (void (*) (void*), void*) 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_wait (pthread_cond_t*, pthread_mutex_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_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_create (pthread_t*, const pthread_attr_t*, void *(*) (void*), void*) function int pthread_deteach (pthread_t) @@ -81,6 +93,7 @@ function int pthread_exit (void*) # ifndef POSIX function int pthread_getconcurrency (void) # endif +function int pthread_getcpuclockid (pthread_t, clockid_t*) function int pthread_getschedparam (pthread_t, int*, struct sched_param*) function {void*} pthread_getspecific (pthread_key_t) 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_lock (pthread_mutex_t*) 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_unlock (pthread_mutex_t*) function int pthread_mutexattr_destroy (pthread_mutexattr_t*) @@ -107,6 +121,8 @@ function int pthread_once (pthread_once_t*, void (*) (void)) # ifndef POSIX function int pthread_rwlock_init (pthread_rwlock_t*, const pthread_rwlockattr_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_trywrlock (pthread_rwlock_t*) function int pthread_rwlock_unlock (pthread_rwlock_t*) @@ -124,6 +140,12 @@ function int pthread_setconcurrency (int) # endif function int pthread_setschedparam (pthread_t, int, const struct sched_param*) 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) allow-header sched.h diff --git a/conform/data/sched.h-data b/conform/data/sched.h-data index 186efb16d5..4cc11efdc8 100644 --- a/conform/data/sched.h-data +++ b/conform/data/sched.h-data @@ -1,9 +1,14 @@ #ifndef ISO type {struct sched_param} 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_RR +constant SCHED_SPORADIC constant SCHED_OTHER function int sched_get_priority_max (int) diff --git a/conform/data/semaphore.h-data b/conform/data/semaphore.h-data index 8a59746f51..df29e0c01b 100644 --- a/conform/data/semaphore.h-data +++ b/conform/data/semaphore.h-data @@ -9,6 +9,7 @@ function int sem_getvalue (sem_t*, int*) function int sem_init (sem_t*, int, unsigned int) function {sem_t*} sem_open (const char*, int, ...) function int sem_post (sem_t*) +function int sem_timedwait (sem_t*, const struct timespec*) function int sem_trywait (sem_t*) function int sem_unlink (const char*) function int sem_wait (sem_t*) diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data index ee6ec52e3c..4fcbf9a5a5 100644 --- a/conform/data/signal.h-data +++ b/conform/data/signal.h-data @@ -34,6 +34,7 @@ constant SIGFPE constant SIGHUP constant SIGILL constant SIGINT +constant SIGIO constant SIGKILL constant SIGPIPE constant SIGQUIT diff --git a/conform/data/spawn.h-data b/conform/data/spawn.h-data new file mode 100644 index 0000000000..d50dbff6bf --- /dev/null +++ b/conform/data/spawn.h-data @@ -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 diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data index 74dc452084..ce6bc20059 100644 --- a/conform/data/stdlib.h-data +++ b/conform/data/stdlib.h-data @@ -55,6 +55,7 @@ function {char*} mktemp (char*) function int mkstemp (char*) function {long int} mrand48 (void) function {long int} nrand48 (unsigned short int[3]) +function int posix_memalign (void**, size_t, size_t) function {char*} ptsname (int) function int putenv (char*) 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 {char*} realpath (const char*, char*) function {unsigned short int*} seed48 (unsigned short int[3]) +function int setenv (const char*, const char*, int) function void setkey (const char*) function {char*} setstate (const char*) 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 ttyslot (void) function int unlockpt (int) +function int unsetenv (const char*) function {void*} valloc (size_t) function size_t wcstombs (char*, const wchar_t*, size_t) function int wctomb (char*, wchar_t) diff --git a/conform/data/sys/mman.h-data b/conform/data/sys/mman.h-data index 8a696d349b..d744a9ef22 100644 --- a/conform/data/sys/mman.h-data +++ b/conform/data/sys/mman.h-data @@ -16,10 +16,24 @@ constant MCL_FUTURE 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 off_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 mlockall (int) 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 munlockall (void) 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_unlink (const char*) diff --git a/conform/data/sys/socket.h-data b/conform/data/sys/socket.h-data new file mode 100644 index 0000000000..13eed1ece4 --- /dev/null +++ b/conform/data/sys/socket.h-data @@ -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 diff --git a/conform/data/sys/stat.h-data b/conform/data/sys/stat.h-data index 97ab81287d..afdbd2c888 100644 --- a/conform/data/sys/stat.h-data +++ b/conform/data/sys/stat.h-data @@ -1,3 +1,5 @@ +#ifndef ISO + type {struct stat} element {struct stat} dev_t st_dev @@ -59,10 +61,12 @@ macro S_ISLNK # macro S_TYPEISMQ # macro S_TYPEISSEM # macro S_TYPEISSHM +# macro S_TYPEISTMO function int chmod (const char*, mode_t) function int fchmod (int, mode_t) function int fstat (int, struct stat*) +function int isfdtype (int, int) function int lstat (const char*, struct stat*) function int mkdir (const char*, mode_t) function int mkfifo (const char*, mode_t) @@ -73,3 +77,4 @@ function mode_t umask (mode_t) allow st_* allow S_* allow *_t +#endif diff --git a/conform/data/sys/types.h-data b/conform/data/sys/types.h-data index 6a08c1940e..ed7236b8b6 100644 --- a/conform/data/sys/types.h-data +++ b/conform/data/sys/types.h-data @@ -14,6 +14,8 @@ type nlink_t type off_t type pid_t type pthread_attr_t +type pthread_barrier_t +type pthread_barrierattr_t type pthread_cond_t type pthread_condattr_t type pthread_key_t @@ -22,6 +24,7 @@ type pthread_mutexattr_t type pthread_once_t type pthread_rwlock_t type pthread_rwlockattr_t +type pthread_spinlock_t type pthread_t type size_t type ssize_t diff --git a/conform/data/sys/un.h-data b/conform/data/sys/un.h-data new file mode 100644 index 0000000000..e8e18fbd8f --- /dev/null +++ b/conform/data/sys/un.h-data @@ -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 diff --git a/conform/data/sys/utsname.h-data b/conform/data/sys/utsname.h-data new file mode 100644 index 0000000000..9f7d4fd91e --- /dev/null +++ b/conform/data/sys/utsname.h-data @@ -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 diff --git a/conform/data/time.h-data b/conform/data/time.h-data index 045ed49624..7284760992 100644 --- a/conform/data/time.h-data +++ b/conform/data/time.h-data @@ -13,6 +13,8 @@ element {struct tm} int tm_isdst constant NULL constant CLK_TCK constant CLOCKS_PER_SEC +constant CLOCK_PROCESS_CPUTIME_ID +constant CLOCK_THREAD_CPUTIME_ID type {struct timespec} @@ -26,6 +28,7 @@ element {struct itimerspec} {struct timespec} it_value constant CLOCK_REALTIME constant TIME_ABSTIME +constant CLOCK_MONOTONIC type clock_t type clockid_t @@ -38,15 +41,17 @@ 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_getcpuclockid (pid_t, clockid_t*) function int clock_getres (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 {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*} gmtime_r (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*) diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data index e3008e7be4..5bec906ebd 100644 --- a/conform/data/unistd.h-data +++ b/conform/data/unistd.h-data @@ -1,5 +1,4 @@ constant _POSIX_VERSION -constant _POSIX2_VERSION constant _POSIX2_C_VERSION constant _XOPEN_VERSION constant _XOPEN_XCU_VERSION @@ -15,17 +14,31 @@ constant _XOPEN_XPG3 constant _XOPEN_XPG4 constant _XOPEN_UNIX +constant _POSIX_ADVISORY_INFO +constant _POSIX_ASYNCHRONOUS_IO +constant _POSIX_BARRIERS constant _POSIX_CHOWN_RESTRICTED +constant _POSIX_CLOCK_SELECTION +constant _POSIX_CPUTIME constant _POSIX_NO_TRUNC constant _POSIX_VDISABLE constant _POSIX_SAVED_IDS 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_THREAD_ATTR_STACKADDR constant _POSIX_THREAD_ATTR_STACKSIZE constant _POSIX_THREAD_PROCESS_SHARED constant _POSIX_THREAD_SAFE_FUNCTIONS +constant _POSIX_THREAD_SPORADIC_SERVER constant _POSIX2_C_DEV constant _POSIX2_FORT_DEV @@ -37,6 +50,7 @@ constant _XOPEN_LEGACY constant _XOPEN_REALTIME constant _XOPEN_REALTIME_THREADS constant _XOPEN_SHM +constant _XOPEN_STREAMS allow _XBS5_ILP32_OFF32 allow _XBS5_ILP32_OFBIG allow _XBS5_LP64_OFF64 @@ -51,6 +65,7 @@ constant _POSIX_SEMAPHORES constant _POSIX_SHARED_MEMORY_OBJECTS constant _POSIX_SYNCHRONIZED_IO constant _POSIX_TIMERS +constant _POSIX_TIMEOUTS constant _POSIX_FSYNC constant _POSIX_MAPPED_FILES @@ -66,6 +81,13 @@ constant _POSIX_ASYNC_IO constant _POSIX_PRIO_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 R_OK @@ -101,6 +123,12 @@ constant _SC_2_C_VERSION constant _SC_2_FORT_DEV constant _SC_2_FORT_RUN 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_UPE constant _SC_2_VERSION @@ -110,15 +138,26 @@ constant _SC_AIO_MAX constant _SC_AIO_PRIO_DELTA_MAX constant _SC_ASYNCHRONOUS_IO constant _SC_ATEXIT_MAX +constant _SC_BARRIERS +constant _SC_BASE 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_CLOCK_SELECTION constant _SC_COLL_WEIGHTS_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_FD_MGMT +constant _SC_FIFO +constant _SC_FILE_ATTRIBUTES +constant _SC_FILE_LOCKING +constant _SC_FILE_SYSTEM constant _SC_FSYNC constant _SC_GETGR_R_SIZE_MAX constant _SC_GETPW_R_SIZE_MAX @@ -129,24 +168,36 @@ constant _SC_LOGIN_NAME_MAX constant _SC_MAPPED_FILES constant _SC_MEMLOCK constant _SC_MEMLOCK_RANGE +constant _SC_MEMORY_PROTECTION +constant _SC_MESSAGE_PASSING +constant _SC_MONOTONIC_CLOCK constant _SC_MQ_OPEN_MAX constant _SC_MQ_PRIO_MAX +constant _SC_MULTIPLE_PROCESS +constant _SC_NETWORKING constant _SC_NGROUPS_MAX constant _SC_OPEN_MAX constant _SC_PAGESIZE constant _SC_PAGE_SIZE constant _SC_PASS_MAX +constant _SC_PIPE constant _SC_PRIORITIZED_IO constant _SC_PRIORITY_SCHEDULING constant _SC_RE_DUP_MAX +constant _SC_READER_WRITER_LOCKS constant _SC_REALTIME_SIGNALS +constant _SC_REGEXP 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_SHELL +constant _SC_SIGNALS constant _SC_SIGQUEUE_MAX +constant _SC_SINGLE_PROCESS +constant _SC_SPIN_LOCKS constant _SC_STREAM_MAX constant _SC_SYNCHRONIZED_IO constant _SC_THREADS @@ -164,7 +215,10 @@ constant _SC_THREAD_THREADS_MAX constant _SC_TIMERS constant _SC_TIMER_MAX constant _SC_TTY_NAME_MAX +constant _SC_TYPED_MEMORY_OBJECTS constant _SC_TZNAME_MAX +constant _SC_USER_GROUPS +constant _SC_USER_GROUPS_R constant _SC_VERSION constant _SC_XOPEN_VERSION constant _SC_XOPEN_CRYPT @@ -175,6 +229,7 @@ constant _SC_XOPEN_XCU_VERSION constant _SC_XOPEN_LEGACY constant _SC_XOPEN_REALTIME constant _SC_XOPEN_REALTIME_THREADS +constant _SC_STREAMS constant _SC_XBS5_ILP32_OFF32 constant _SC_XBS5_ILP32_OFFBIG constant _SC_XBS5_ILP64_OFF64 @@ -196,6 +251,10 @@ constant _PC_NO_TRUNC constant _PC_PATH_MAX constant _PC_PIPE_BUF 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_VDISABLE @@ -207,7 +266,7 @@ type size_t type ssize_t type uid_t type gid_t -type uid_t +type off_t type pid_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 rmdir (const char*) function {void*} sbrk (intptr_t) +function int setegid (gid_t) +function int seteuid (uid_t) function int setgid (gid_t) function int setpgid (pid_t, pid_t) function pid_t setpgrp (void) -- cgit v1.2.3