aboutsummaryrefslogtreecommitdiff
path: root/conform
diff options
context:
space:
mode:
Diffstat (limited to 'conform')
-rw-r--r--conform/conformtest.pl3
-rw-r--r--conform/data/pthread.h-data134
-rw-r--r--conform/data/pwd.h-data23
-rw-r--r--conform/data/regex.h-data41
-rw-r--r--conform/data/sched.h-data22
-rw-r--r--conform/data/search.h-data28
6 files changed, 250 insertions, 1 deletions
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 80114dd..8a49474 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -4,7 +4,8 @@ $CC = "gcc";
$CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500";
# List of the headers we are testing.
-@headers = ("poll.h", "nl_types.h", "ndbm.h", "mqueue.h", "monetary.h",
+@headers = ("search.h", "sched.h", "regex.h", "pwd.h", "pthread.h",
+ "poll.h", "nl_types.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",
diff --git a/conform/data/pthread.h-data b/conform/data/pthread.h-data
new file mode 100644
index 0000000..63091db
--- /dev/null
+++ b/conform/data/pthread.h-data
@@ -0,0 +1,134 @@
+#ifdef ISO
+constant PTHREAD_CANCEL_ASYNCHRONOUS
+constant PTHREAD_CANCEL_ENABLE
+constant PTHREAD_CANCEL_DEFERRED
+constant PTHREAD_CANCEL_DISABLE
+constant PTHREAD_CANCELED
+constant PTHREAD_COND_INITIALIZER
+constant PTHREAD_CREATE_DETACHED
+constant PTHREAD_CREATE_JOINABLE
+constant PTHREAD_EXPLICIT_SCHED
+constant PTHREAD_INHERIT_SCHED
+constant PTHREAD_ONCE_INIT
+constant PTHREAD_PRIO_INHERIT
+constant PTHREAD_PRIO_NONE
+constant PTHREAD_PRIO_PROTECT
+constant PTHREAD_PROCESS_SHARED
+constant PTHREAD_PROCESS_PRIVATE
+constant PTHREAD_SCOPE_PROCESS
+constant PTHREAD_SCOPE_SYSTEM
+# ifndef POSIX
+constant PTHREAD_MUTEX_DEFAULT
+constant PTHREAD_MUTEX_ERRORCHECK
+constant PTHREAD_MUTEX_NORMAL
+constant PTHREAD_MUTEX_INITIALIZER
+constant PTHREAD_MUTEX_RECURSIVE
+constant PTHREAD_RWLOCK_INITILIZER
+# endif
+
+type pthread_attr_t
+type pthread_cond_t
+type pthread_condattr_t
+type pthread_key_t
+type pthread_mutex_t
+type pthread_mutexattr_t
+type pthread_once_t
+type pthread_rwlock_t
+type pthread_rwlockattr_t
+type pthread_t
+
+function int pthread_attr_destroy (pthread_attr_t*)
+function int pthread_attr_getdetachstate (const pthread_attr_t*, int*)
+# ifndef POSIX
+function int pthread_attr_getguardsize (const pthread_attr_t*, size_t*)
+# endif
+function int pthread_attr_getinheritsched (const pthread_attr_t*, int*)
+function int pthread_attr_getschedparam (const pthread_attr_t*, struct sched_param*)
+function int pthread_attr_getschedpolicy (const pthread_attr_t*, int*)
+function int pthread_attr_getscope (const pthread_attr_t*, int*)
+function int pthread_attr_getstackaddr (const pthread_attr_t*, void**)
+function int pthread_attr_getstacksize (const pthread_attr_t*, size_t*)
+function int pthread_attr_init (pthread_attr_t*)
+function int pthread_attr_setdetachstate (pthread_attr_t*, int)
+# ifndef POSIX
+function int pthread_attr_setguardsize (pthread_attr_t*, size_t)
+# endif
+function int pthread_attr_setinheritsched (pthread_attr_t*, int)
+function int pthread_attr_setschedparam (pthread_attr_t*, const struct sched_param*)
+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_cancel (pthread_t)
+# function int pthread_cleanup_push (void (*) (void*), void*)
+macro pthread_cleanup_push
+# function int pthread_cleanup_pop (int)
+macro pthread_cleanup_pop
+function int pthread_cond_broadcast (pthread_cond_t*)
+function int pthread_cond_destroy (pthread_cond_t*)
+function int pthread_cond_init (pthread_cond_t, const pthread_condattr_t*)
+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_getpshared (const pthread_condattr_t*, int*)
+function int pthread_condattr_init (pthread_condattr_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)
+function int pthread_equal (pthread_t, pthread_t)
+function int pthread_exit (void*)
+# ifndef POSIX
+function int pthread_getconcurrency (void)
+# endif
+function int pthread_getschedparam (pthread_t, int*, struct sched_param*)
+function {void*} pthread_getspecific (pthread_key_t)
+function int pthread_join (pthread_t, void**)
+function int pthread_key_create (pthread_key_t*, void (*)(void*))
+function int pthread_key_delete (pthread_key_t)
+function int pthread_mutex_destroy (pthread_mutex_t*)
+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_trylock (pthread_mutex_t*)
+function int pthread_mutex_unlock (pthread_mutex_t*)
+function int pthread_mutexattr_destroy (pthread_mutexattr_t*)
+function int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t*, int*)
+function int pthread_mutexattr_getprotocol (const pthread_mutexattr_t*, int*)
+function int pthread_mutexattr_getpshared (const pthread_mutexattr_t*, int*)
+function int pthread_mutexattr_gettype (const pthread_mutexattr_t*, int*)
+function int pthread_mutexattr_init (pthread_mutexattr_t*)
+function int pthread_mutexattr_setprioceiling (pthread_mutexattr_t*, int)
+function int pthread_mutexattr_setprotocol (pthread_mutexattr_t*, int)
+function int pthread_mutexattr_setpshared (pthread_mutexattr_t*, int)
+function int pthread_mutexattr_settype (pthread_mutexattr_t*, int)
+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_tryrdlock (pthread_rwlock_t*)
+function int pthread_rwlock_trywrlock (pthread_rwlock_t*)
+function int pthread_rwlock_unlock (pthread_rwlock_t*)
+function int pthread_rwlock_wrlock (pthread_rwlock_t*)
+function int pthread_rwlockattr_destroy (pthread_rwlockattr_t*)
+function int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t*, int*)
+function int pthread_rwlockattr_init (pthread_rwlockatttr*)
+function int pthread_rwlockattr_setpsahred (pthread_rwlockattr_t*, int)
+#endif
+function pthread_t pthread_self (void)
+function int pthread_setcancelstate (int, int*)
+function int pthread_setcanceltype (int, int*)
+#ifndef POSIX
+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 void pthread_testcancel (void)
+
+allow-header sched.h
+allow-header time.h
+
+allow PTHREAD_*
+allow pthread_*
+#endif
diff --git a/conform/data/pwd.h-data b/conform/data/pwd.h-data
new file mode 100644
index 0000000..1c8c7be
--- /dev/null
+++ b/conform/data/pwd.h-data
@@ -0,0 +1,23 @@
+#ifndef ISO
+type {struct passwd}
+element {struct passwd} {char*} pw_name
+element {struct passwd} uid_t pw_uid
+element {struct passwd} gid_t pw_gid
+element {struct passwd} {char*} pw_dir
+element {struct passwd} {char*} pw_shell
+
+# ifndef POSIX
+type uid_t
+type gid_t
+# endif
+
+function {struct passwd*} getpwnam (const char*)
+function {struct passwd*} getpwuid (uid_t)
+function int getpwnam_r (const char*, struct passwd*, char*, size_t, struct passwd**)
+function int getpwuid_r (uid_t, struct passwd*, char*, size_t, struct passwd**)
+function void endpwent (void)
+function {struct passwd*} getpwent (void)
+funciton void setpwent (void)
+
+allow pw_*
+#endif
diff --git a/conform/data/regex.h-data b/conform/data/regex.h-data
new file mode 100644
index 0000000..b6e7f45
--- /dev/null
+++ b/conform/data/regex.h-data
@@ -0,0 +1,41 @@
+#ifndef ISO
+type regex_t
+element regex_t re_nsub
+
+type regoff_t
+
+type regmatch_t
+element regmatch_t regoff_t rm_so
+element regmatch_t regoff_t rm_eo
+
+constant REG_EXTENDED
+constant REG_ICASE
+constant REG_NOSUB
+constant REG_NEWLINE
+
+constant REG_NOTBOL
+constant REG_NOTEOL
+
+constant REG_NOMATCH
+constant REG_BADPAT
+constant REG_ECOLLATE
+constant REG_ECTYPE
+constant REG_EESCAPE
+constant REG_ESUBREG
+constant REG_EBRACK
+constant REG_EPAREN
+constant REG_EBRACE
+constant REG_BADBR
+constant REG_ESPACE
+constant REG_BADRPT
+constant REG_ENOSYS
+
+function int regcomp (regex_t*, const char*, int)
+function int regexec (const regex_t*, const char*, size_t, regmatch_t[], int)
+function size_t regerror (int, const regex_t*, char*, size_t)
+function void regfree (regex_t*)
+
+allow REG_*
+allow re_*
+allow rm_*
+#endif
diff --git a/conform/data/sched.h-data b/conform/data/sched.h-data
new file mode 100644
index 0000000..8194bcb
--- /dev/null
+++ b/conform/data/sched.h-data
@@ -0,0 +1,22 @@
+#ifndef ISO
+type {struct sched_param}
+element {struct sched_param} int sched_priority
+
+constant SCHED_FIFO
+constant SCHED_RR
+constant SCHED_OTHER
+
+function int sched_get_priority_max (int)
+function int sched_get_priority_min (int)
+function int sched_getparam (pid_t, struct sched_param*)
+function int sched_getscheduler (pid_t)
+function int sched_rr_get_interval (pid_t, struct timespec*)
+function int sched_setparam (pid_t, const struct sched_param*)
+function int sched_setscheduler (pid_t, int, const struct sched_param*)
+function int sched_yield (void)
+
+allow-header time.h
+
+allow sched_*
+allow SCHED_*
+#endif
diff --git a/conform/data/search.h-data b/conform/data/search.h-data
new file mode 100644
index 0000000..e7c81d3
--- /dev/null
+++ b/conform/data/search.h-data
@@ -0,0 +1,28 @@
+#if !defined ISO && !defined POSIX
+type ENTRY
+type {struct entry}
+element {struct entry} {char*} key
+element {struct entry} {void*} data
+
+type ACTION
+constant FIND
+constant ENTER
+
+type VISIT
+constant preorder
+constant postorder
+constant endorder
+constant leaf
+
+function int hcreate (size_t)
+function void hdestroy (void)
+function {ENTRY*} hsearch (ENTRY, ACTION)
+function void insque (void*, void*)
+function {void*} lfind (const void*, const void*, size_t*, size_t, int (*)(const void*, const void*))
+function {void*} lsearch (const void*, void*, size_t*, size_t, int (*)(const void*, const void*))
+function void remque (void*)
+function {void*} tdelete (const void*, void**, int(*)(const void*, const void*))
+function {void*} tfind (const void*, void*const*, int(*)(const void*, const void*)) tfind (const void*, void*const*, int(*)(const void*, const void*))
+function {void*} tsearch (const void*, void**, int(*)(const void*, const void*))
+function void twalk (const void*, void (*) (const void*, VISIT, int))
+#endif