aboutsummaryrefslogtreecommitdiff
path: root/conform
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-04-30 04:17:35 +0000
committerUlrich Drepper <drepper@redhat.com>2000-04-30 04:17:35 +0000
commit9d4d69b88b5e601029d86ce037552bceea931c0b (patch)
treeb3acfc4ef9dc7495e191c44651df11c3184a0550 /conform
parentd2dc3fc9b61a4ae180a03ffd386f7a26b7b1213a (diff)
downloadglibc-9d4d69b88b5e601029d86ce037552bceea931c0b.tar.xz
glibc-9d4d69b88b5e601029d86ce037552bceea931c0b.zip
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.
Diffstat (limited to 'conform')
-rw-r--r--conform/conformtest.pl18
-rw-r--r--conform/data/arpa/inet.h-data31
-rw-r--r--conform/data/ctype.h-data2
-rw-r--r--conform/data/fcntl.h-data41
-rw-r--r--conform/data/net/if.h-data15
-rw-r--r--conform/data/netdb.h-data60
-rw-r--r--conform/data/netinet/in.h-data84
-rw-r--r--conform/data/netinet/tcp.h-data3
-rw-r--r--conform/data/pthread.h-data22
-rw-r--r--conform/data/sched.h-data5
-rw-r--r--conform/data/semaphore.h-data1
-rw-r--r--conform/data/signal.h-data1
-rw-r--r--conform/data/spawn.h-data36
-rw-r--r--conform/data/stdlib.h-data3
-rw-r--r--conform/data/sys/mman.h-data17
-rw-r--r--conform/data/sys/socket.h-data108
-rw-r--r--conform/data/sys/stat.h-data5
-rw-r--r--conform/data/sys/types.h-data3
-rw-r--r--conform/data/sys/un.h-data8
-rw-r--r--conform/data/sys/utsname.h-data11
-rw-r--r--conform/data/time.h-data7
-rw-r--r--conform/data/unistd.h-data65
22 files changed, 535 insertions, 11 deletions
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-