summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2019-02-20 12:00:12 -0500
committerJakob Kaivo <jkk@ung.org>2019-02-20 12:00:12 -0500
commit52b8c93b7180eac72721d59315aae2b592e7b3a1 (patch)
treed304c2e253c56ca39df04e5d346309f08f67c445
parent49836ed4fa13e431fdbb52e418499853df8693c6 (diff)
add symbols from POSIX.1b-1993
-rw-r--r--src/aio/AIO_ALLDONE.c5
-rw-r--r--src/aio/AIO_CANCELED.c6
-rw-r--r--src/aio/AIO_NOTCANCELED.c5
-rw-r--r--src/aio/LIO_NOP.c5
-rw-r--r--src/aio/LIO_NOWAIT.c5
-rw-r--r--src/aio/LIO_READ.c5
-rw-r--r--src/aio/LIO_WAIT.c5
-rw-r--r--src/aio/LIO_WRITE.c5
-rw-r--r--src/aio/aio_cancel.c11
-rw-r--r--src/aio/aio_error.c11
-rw-r--r--src/aio/aio_fsync.c11
-rw-r--r--src/aio/aio_read.c10
-rw-r--r--src/aio/aio_return.c11
-rw-r--r--src/aio/aio_suspend.c11
-rw-r--r--src/aio/aio_write.c11
-rw-r--r--src/aio/lio_listio.c11
-rw-r--r--src/aio/struct_aiocb.c15
-rw-r--r--src/errno/ECANCELED.c6
-rw-r--r--src/errno/ENOTSUP.c7
-rw-r--r--src/fcntl/O_DSYNC.c5
-rw-r--r--src/fcntl/O_RSYNC.c5
-rw-r--r--src/limits/AIO_LISTIO_MAX.c8
-rw-r--r--src/limits/AIO_MAX.c8
-rw-r--r--src/limits/AIO_PRIO_DELTA_MAX.c8
-rw-r--r--src/limits/DELAYTIMER_MAX.c8
-rw-r--r--src/limits/MQ_OPEN_MAX.c8
-rw-r--r--src/limits/MQ_PRIO_MAX.c8
-rw-r--r--src/limits/RTSIG_MAX.c7
-rw-r--r--src/limits/SEM_NSEMS_MAX.c7
-rw-r--r--src/limits/SEM_VALUE_MAX.c7
-rw-r--r--src/limits/SIGQUEUE_MAX.c7
-rw-r--r--src/limits/TIMER_MAX.c7
-rw-r--r--src/limits/_POSIX_AIO_LISTIO_MAX.c7
-rw-r--r--src/limits/_POSIX_AIO_MAX.c6
-rw-r--r--src/limits/_POSIX_CLOCKRES_MIN.c6
-rw-r--r--src/limits/_POSIX_DELAYTIMER_MAX.c6
-rw-r--r--src/limits/_POSIX_MQ_OPEN_MAX.c6
-rw-r--r--src/limits/_POSIX_MQ_PRIO_MAX.c6
-rw-r--r--src/limits/_POSIX_RTSIG_MAX.c6
-rw-r--r--src/limits/_POSIX_SEM_NSEMS_MAX.c6
-rw-r--r--src/limits/_POSIX_SEM_VALUE_MAX.c6
-rw-r--r--src/limits/_POSIX_SIGQUEUE_MAX.c6
-rw-r--r--src/limits/_POSIX_TIMER_MAX.c6
-rw-r--r--src/mqueue/mq_close.c11
-rw-r--r--src/mqueue/mq_getattr.c11
-rw-r--r--src/mqueue/mq_notify.c11
-rw-r--r--src/mqueue/mq_open.c11
-rw-r--r--src/mqueue/mq_receive.c11
-rw-r--r--src/mqueue/mq_send.c11
-rw-r--r--src/mqueue/mq_setattr.c11
-rw-r--r--src/mqueue/mq_unlink.c11
-rw-r--r--src/mqueue/mqd_t.c5
-rw-r--r--src/mqueue/struct_mq_attr.c12
-rw-r--r--src/nonstd/_FTM/_POSIX_C_SOURCE.c0
-rw-r--r--src/nonstd/__pthread_per_thread.c24
-rw-r--r--src/sched/SCHED_FIFO.c5
-rw-r--r--src/sched/SCHED_OTHER.c6
-rw-r--r--src/sched/SCHED_RR.c6
-rw-r--r--src/sched/sched_get_priority_max.c11
-rw-r--r--src/sched/sched_get_priority_min.c11
-rw-r--r--src/sched/sched_getparam.c11
-rw-r--r--src/sched/sched_getscheduler.c11
-rw-r--r--src/sched/sched_rr_get_interval.c11
-rw-r--r--src/sched/sched_setparam.c11
-rw-r--r--src/sched/sched_setscheduler.c11
-rw-r--r--src/sched/sched_yield.c11
-rw-r--r--src/sched/struct_sched_param.c15
-rw-r--r--src/semaphore/sem_close.c11
-rw-r--r--src/semaphore/sem_destroy.c11
-rw-r--r--src/semaphore/sem_getvalue.c11
-rw-r--r--src/semaphore/sem_init.c11
-rw-r--r--src/semaphore/sem_open.c11
-rw-r--r--src/semaphore/sem_post.c11
-rw-r--r--src/semaphore/sem_t.c5
-rw-r--r--src/semaphore/sem_trywait.c11
-rw-r--r--src/semaphore/sem_unlink.c11
-rw-r--r--src/semaphore/sem_wait.c11
-rw-r--r--src/signal/SIGEV_NONE.c5
-rw-r--r--src/signal/SIGEV_SIGNAL.c5
-rw-r--r--src/signal/SIGRTMAX.c5
-rw-r--r--src/signal/SIGRTMIN.c5
-rw-r--r--src/signal/SI_ASYNCIO.c5
-rw-r--r--src/signal/SI_MESGQ.c5
-rw-r--r--src/signal/SI_QUEUE.c5
-rw-r--r--src/signal/SI_TIMER.c5
-rw-r--r--src/signal/SI_USER.c5
-rw-r--r--src/signal/sigqueue.c10
-rw-r--r--src/signal/sigtimedwait.c10
-rw-r--r--src/signal/sigwaitinfo.c10
-rw-r--r--src/signal/struct_sigevent.c13
-rw-r--r--src/signal/union_sigval.c10
-rw-r--r--src/sys/mman/MAP_FAILED.c7
-rw-r--r--src/sys/mman/MCL_CURRENT.c7
-rw-r--r--src/sys/mman/MCL_FUTURE.c7
-rw-r--r--src/sys/mman/mlock.c10
-rw-r--r--src/sys/mman/mlockall.c10
-rw-r--r--src/sys/mman/munlock.c10
-rw-r--r--src/sys/mman/munlockall.c10
-rw-r--r--src/sys/mman/shm_open.c10
-rw-r--r--src/sys/mman/shm_unlink.c10
-rw-r--r--src/sys/stat/S_TYPEISMQ.c5
-rw-r--r--src/sys/stat/S_TYPEISSEM.c5
-rw-r--r--src/sys/stat/S_TYPEISSHM.c5
-rw-r--r--src/sys/types/clockid_t.c6
-rw-r--r--src/sys/types/timer_t.c6
-rw-r--r--src/time/CLOCK_REALTIME.c5
-rw-r--r--src/time/TIMER_ABSTIME.c5
-rw-r--r--src/time/clock_getres.c11
-rw-r--r--src/time/clock_gettime.c11
-rw-r--r--src/time/clock_settime.c11
-rw-r--r--src/time/nanosleep.c10
-rw-r--r--src/time/struct_itimerspec.c10
-rw-r--r--src/time/struct_timespec.c10
-rw-r--r--src/time/timer_create.c11
-rw-r--r--src/time/timer_delete.c11
-rw-r--r--src/time/timer_getoverrun.c11
-rw-r--r--src/time/timer_gettime.c11
-rw-r--r--src/time/timer_settime.c11
-rw-r--r--src/unistd/_PC_ASYNC_IO.c5
-rw-r--r--src/unistd/_PC_PRIO_IO.c5
-rw-r--r--src/unistd/_PC_SYNC_IO.c5
-rw-r--r--src/unistd/_POSIX_ASYNCHRONOUS_IO.c6
-rw-r--r--src/unistd/_POSIX_ASYNC_IO.c5
-rw-r--r--src/unistd/_POSIX_FSYNC.c5
-rw-r--r--src/unistd/_POSIX_MAPPED_FILES.c5
-rw-r--r--src/unistd/_POSIX_MEMLOCK.c5
-rw-r--r--src/unistd/_POSIX_MEMLOCK_RANGE.c6
-rw-r--r--src/unistd/_POSIX_MEMORY_PROTECTION.c6
-rw-r--r--src/unistd/_POSIX_MESSAGE_PASSING.c6
-rw-r--r--src/unistd/_POSIX_PRIORITIZED_IO.c6
-rw-r--r--src/unistd/_POSIX_PRIORITY_SCHEDULING.c6
-rw-r--r--src/unistd/_POSIX_PRIO_IO.c5
-rw-r--r--src/unistd/_POSIX_REALTIME_SIGNALS.c5
-rw-r--r--src/unistd/_POSIX_SEMAPHORES.c6
-rw-r--r--src/unistd/_POSIX_SHARED_MEMORY_OBJECTS.c6
-rw-r--r--src/unistd/_POSIX_SYNCHRONIZED_IO.c6
-rw-r--r--src/unistd/_POSIX_SYNC_IO.c5
-rw-r--r--src/unistd/_POSIX_TIMERS.c6
-rw-r--r--src/unistd/_SC_AIO_LISTIO_MAX.c5
-rw-r--r--src/unistd/_SC_AIO_MAX.c5
-rw-r--r--src/unistd/_SC_AIO_PRIO_DELTA_MAX.c5
-rw-r--r--src/unistd/_SC_ASYNCHRONOUS_IO.c5
-rw-r--r--src/unistd/_SC_DELAYTIMER_MAX.c5
-rw-r--r--src/unistd/_SC_FSYNC.c5
-rw-r--r--src/unistd/_SC_MAPPED_FILES.c5
-rw-r--r--src/unistd/_SC_MEMLOCK.c5
-rw-r--r--src/unistd/_SC_MEMLOCK_RANGE.c5
-rw-r--r--src/unistd/_SC_MEMORY_PROTECTION.c5
-rw-r--r--src/unistd/_SC_MESSAGE_PASSING.c5
-rw-r--r--src/unistd/_SC_MQ_OPEN_MAX.c5
-rw-r--r--src/unistd/_SC_MQ_PRIO_MAX.c5
-rw-r--r--src/unistd/_SC_PRIORITIZED_IO.c5
-rw-r--r--src/unistd/_SC_PRIORITY_SCHEDULING.c5
-rw-r--r--src/unistd/_SC_REALTIME_SIGNALS.c5
-rw-r--r--src/unistd/_SC_RTSIG_MAX.c5
-rw-r--r--src/unistd/_SC_SEMAPHORES.c5
-rw-r--r--src/unistd/_SC_SEM_NSEMS_MAX.c5
-rw-r--r--src/unistd/_SC_SEM_VALUE_MAX.c5
-rw-r--r--src/unistd/_SC_SHARED_MEMORY_OBJECTS.c5
-rw-r--r--src/unistd/_SC_SIGQUEUE_MAX.c5
-rw-r--r--src/unistd/_SC_SYNCHRONIZED_IO.c5
-rw-r--r--src/unistd/_SC_TIMERS.c5
-rw-r--r--src/unistd/_SC_TIMER_MAX.c5
-rw-r--r--src/unistd/fdatasync.c11
164 files changed, 1249 insertions, 0 deletions
diff --git a/src/aio/AIO_ALLDONE.c b/src/aio/AIO_ALLDONE.c
new file mode 100644
index 00000000..2b860c99
--- /dev/null
+++ b/src/aio/AIO_ALLDONE.c
@@ -0,0 +1,5 @@
+#include <aio.h>
+#define AIO_ALLDONE 0
+/*
+POSIX(199309)
+*/
diff --git a/src/aio/AIO_CANCELED.c b/src/aio/AIO_CANCELED.c
new file mode 100644
index 00000000..50fb1539
--- /dev/null
+++ b/src/aio/AIO_CANCELED.c
@@ -0,0 +1,6 @@
+#include <aio.h>
+#define AIO_CANCELED 1
+
+/*
+POSIX(199309)
+*/
diff --git a/src/aio/AIO_NOTCANCELED.c b/src/aio/AIO_NOTCANCELED.c
new file mode 100644
index 00000000..712e6879
--- /dev/null
+++ b/src/aio/AIO_NOTCANCELED.c
@@ -0,0 +1,5 @@
+#include <aio.h>
+#define AIO_NOTCANCELED 2
+/*
+POSIX(199309)
+*/
diff --git a/src/aio/LIO_NOP.c b/src/aio/LIO_NOP.c
new file mode 100644
index 00000000..8ed85e76
--- /dev/null
+++ b/src/aio/LIO_NOP.c
@@ -0,0 +1,5 @@
+#include <aio.h>
+#define LIO_NOP 0
+/*
+POSIX(199309)
+*/
diff --git a/src/aio/LIO_NOWAIT.c b/src/aio/LIO_NOWAIT.c
new file mode 100644
index 00000000..c0949ba4
--- /dev/null
+++ b/src/aio/LIO_NOWAIT.c
@@ -0,0 +1,5 @@
+#include <aio.h>
+#define LIO_NOWAIT 1
+/*
+POSIX(199309)
+*/
diff --git a/src/aio/LIO_READ.c b/src/aio/LIO_READ.c
new file mode 100644
index 00000000..1c496b55
--- /dev/null
+++ b/src/aio/LIO_READ.c
@@ -0,0 +1,5 @@
+#include <aio.h>
+#define LIO_READ 2
+/*
+POSIX(199309)
+*/
diff --git a/src/aio/LIO_WAIT.c b/src/aio/LIO_WAIT.c
new file mode 100644
index 00000000..cdb2d496
--- /dev/null
+++ b/src/aio/LIO_WAIT.c
@@ -0,0 +1,5 @@
+#include <aio.h>
+#define LIO_WAIT 3
+/*
+POSIX(199309)
+*/
diff --git a/src/aio/LIO_WRITE.c b/src/aio/LIO_WRITE.c
new file mode 100644
index 00000000..666fb97b
--- /dev/null
+++ b/src/aio/LIO_WRITE.c
@@ -0,0 +1,5 @@
+#include <aio.h>
+#define LIO_WRITE 4
+/*
+POSIX(199309)
+*/
diff --git a/src/aio/aio_cancel.c b/src/aio/aio_cancel.c
new file mode 100644
index 00000000..faddae7f
--- /dev/null
+++ b/src/aio/aio_cancel.c
@@ -0,0 +1,11 @@
+#include <aio.h>
+
+int aio_cancel(int fildes, struct aiocb *aiocbp)
+{
+ return AIO_NOTCANCELED;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/aio/aio_error.c b/src/aio/aio_error.c
new file mode 100644
index 00000000..c291543c
--- /dev/null
+++ b/src/aio/aio_error.c
@@ -0,0 +1,11 @@
+#include <aio.h>
+
+int aio_error(const struct aiocb * aiocbp)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/aio/aio_fsync.c b/src/aio/aio_fsync.c
new file mode 100644
index 00000000..126512f0
--- /dev/null
+++ b/src/aio/aio_fsync.c
@@ -0,0 +1,11 @@
+#include <aio.h>
+
+int aio_fsync(int op, struct aiocb * aiocbp)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/aio/aio_read.c b/src/aio/aio_read.c
new file mode 100644
index 00000000..c9d6c898
--- /dev/null
+++ b/src/aio/aio_read.c
@@ -0,0 +1,10 @@
+#include <aio.h>
+
+int aio_read(struct aiocb * aiocbp)
+{
+ return -1;
+}
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/aio/aio_return.c b/src/aio/aio_return.c
new file mode 100644
index 00000000..7a98ed0a
--- /dev/null
+++ b/src/aio/aio_return.c
@@ -0,0 +1,11 @@
+#include <aio.h>
+
+ssize_t aio_return(struct aiocb *aiocbp)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/aio/aio_suspend.c b/src/aio/aio_suspend.c
new file mode 100644
index 00000000..714d029a
--- /dev/null
+++ b/src/aio/aio_suspend.c
@@ -0,0 +1,11 @@
+#include <aio.h>
+
+int aio_suspend(const struct aiocb * const list[], int nent, const struct timespec * timeout)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/aio/aio_write.c b/src/aio/aio_write.c
new file mode 100644
index 00000000..4c08312d
--- /dev/null
+++ b/src/aio/aio_write.c
@@ -0,0 +1,11 @@
+#include <aio.h>
+
+int aio_write(struct aiocb * aiocbp)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/aio/lio_listio.c b/src/aio/lio_listio.c
new file mode 100644
index 00000000..d5178956
--- /dev/null
+++ b/src/aio/lio_listio.c
@@ -0,0 +1,11 @@
+#include <aio.h>
+
+int lio_listio(int mode, struct aiocb * const list[restrict], int nent, struct sigevent * restrict sig)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/aio/struct_aiocb.c b/src/aio/struct_aiocb.c
new file mode 100644
index 00000000..177d8ffa
--- /dev/null
+++ b/src/aio/struct_aiocb.c
@@ -0,0 +1,15 @@
+#include <aio.h>
+
+struct aiocb {
+ int aio_fildes;
+ off_t aio_offset;
+ volatile void * aio_buf;
+ size_t aio_nbytes;
+ int aio_reqprio;
+ struct sigevent aio_sigevent;
+ int aio_lio_opcode;
+};
+
+/*
+POSIX(199309)
+*/
diff --git a/src/errno/ECANCELED.c b/src/errno/ECANCELED.c
new file mode 100644
index 00000000..e3774971
--- /dev/null
+++ b/src/errno/ECANCELED.c
@@ -0,0 +1,6 @@
+#include <errno.h>
+#define ECANCELED (20)
+/** Operation canceled **/
+/*
+POSIX(199309)
+*/
diff --git a/src/errno/ENOTSUP.c b/src/errno/ENOTSUP.c
new file mode 100644
index 00000000..a80761a8
--- /dev/null
+++ b/src/errno/ENOTSUP.c
@@ -0,0 +1,7 @@
+#include <errno.h>
+#define ENOTSUP (68)
+/** Not supported **/
+
+/*
+POSIX(199309)
+*/
diff --git a/src/fcntl/O_DSYNC.c b/src/fcntl/O_DSYNC.c
new file mode 100644
index 00000000..bb1778f7
--- /dev/null
+++ b/src/fcntl/O_DSYNC.c
@@ -0,0 +1,5 @@
+#include <fcntl.h>
+#define O_DSYNC (1<<9)
+/*
+POSIX(199309)
+*/
diff --git a/src/fcntl/O_RSYNC.c b/src/fcntl/O_RSYNC.c
new file mode 100644
index 00000000..a867c13d
--- /dev/null
+++ b/src/fcntl/O_RSYNC.c
@@ -0,0 +1,5 @@
+#include <fcntl.h>
+#define O_RSYNC (1<<11)
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/AIO_LISTIO_MAX.c b/src/limits/AIO_LISTIO_MAX.c
new file mode 100644
index 00000000..c749d3f8
--- /dev/null
+++ b/src/limits/AIO_LISTIO_MAX.c
@@ -0,0 +1,8 @@
+#include <limits.h>
+/* #undefine AIO_LISTIO_MAX */
+/* MIN: _POSIX_AIO_LISTIO_MAX */
+/* MAY-BE-UNDEFINED */
+/** maximum number of I/O operations in a single list I/O call **/
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/AIO_MAX.c b/src/limits/AIO_MAX.c
new file mode 100644
index 00000000..f89127fa
--- /dev/null
+++ b/src/limits/AIO_MAX.c
@@ -0,0 +1,8 @@
+#include <limits.h>
+/* #undefine AIO_MAX */
+/* MIN: _POSIX_AIO_MAX */
+/* MAY-BE-UNDEFINED */
+/** maximum number of outstanding asynchronous I/O operations **/
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/AIO_PRIO_DELTA_MAX.c b/src/limits/AIO_PRIO_DELTA_MAX.c
new file mode 100644
index 00000000..d846a502
--- /dev/null
+++ b/src/limits/AIO_PRIO_DELTA_MAX.c
@@ -0,0 +1,8 @@
+#include <limits.h>
+/* #undefine AIO_PRIO_DELTA_MAX */
+/* MIN: 0 */
+/* MAY-BE-UNDEFINED */
+/** maximum amount a process can decrease its own asynchronous I/O priority **/
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/DELAYTIMER_MAX.c b/src/limits/DELAYTIMER_MAX.c
new file mode 100644
index 00000000..dd07137c
--- /dev/null
+++ b/src/limits/DELAYTIMER_MAX.c
@@ -0,0 +1,8 @@
+#include <limits.h>
+/* #undefine DELAYTIMER_MAX */
+/* MIN: _POSIX_DELAYTIMER_MAX */
+/* MAY-BE-UNEFINED */
+/** maximum number of timer expiration overruns **/
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/MQ_OPEN_MAX.c b/src/limits/MQ_OPEN_MAX.c
new file mode 100644
index 00000000..13710c0c
--- /dev/null
+++ b/src/limits/MQ_OPEN_MAX.c
@@ -0,0 +1,8 @@
+#include <limits.h>
+/* #undefine MQ_OPEN_MAX */
+/* MIN: _POSIX_MQ_OPEN_MAX */
+/* MAY-BE-UNEFINED */
+/** the maximum number of open message queue descriptors a process can have **/
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/MQ_PRIO_MAX.c b/src/limits/MQ_PRIO_MAX.c
new file mode 100644
index 00000000..dfd40a4f
--- /dev/null
+++ b/src/limits/MQ_PRIO_MAX.c
@@ -0,0 +1,8 @@
+#include <limits.h>
+/* #undefine MQ_PRIO_MAX */
+/* MIN: _POSIX_MQ_PRIO_MAX */
+/* MAY-BE-UNEFINED */
+/** the maximum number of message priorities supported **/
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/RTSIG_MAX.c b/src/limits/RTSIG_MAX.c
new file mode 100644
index 00000000..589d56d5
--- /dev/null
+++ b/src/limits/RTSIG_MAX.c
@@ -0,0 +1,7 @@
+#include <limits.h>
+/* #undefine RTSIG_MAX */
+/* MIN: _POSIX_RTSIG_MAX */
+/* MAY-BE-UNEFINED */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/SEM_NSEMS_MAX.c b/src/limits/SEM_NSEMS_MAX.c
new file mode 100644
index 00000000..3ef21e9a
--- /dev/null
+++ b/src/limits/SEM_NSEMS_MAX.c
@@ -0,0 +1,7 @@
+#include <limits.h>
+/* #undefine SEM_NSEMS_MAX */
+/* MIN: _POSIX_SEM_NSEMS_MAX */
+/* MAY-BE-UNEFINED */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/SEM_VALUE_MAX.c b/src/limits/SEM_VALUE_MAX.c
new file mode 100644
index 00000000..2d7accbe
--- /dev/null
+++ b/src/limits/SEM_VALUE_MAX.c
@@ -0,0 +1,7 @@
+#include <limits.h>
+/* #undefine SEM_VALUE_MAX */
+/* MIN: _POSIX_SEM_VALUE_MAX */
+/* MAY-BE-UNEFINED */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/SIGQUEUE_MAX.c b/src/limits/SIGQUEUE_MAX.c
new file mode 100644
index 00000000..5af41edf
--- /dev/null
+++ b/src/limits/SIGQUEUE_MAX.c
@@ -0,0 +1,7 @@
+#include <limits.h>
+/* #undefine SIGQUEUE_MAX */
+/* MIN: _POSIX_SIGQUEUE_MAX */
+/* MAY-BE-UNEFINED */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/TIMER_MAX.c b/src/limits/TIMER_MAX.c
new file mode 100644
index 00000000..00f1e6b2
--- /dev/null
+++ b/src/limits/TIMER_MAX.c
@@ -0,0 +1,7 @@
+#include <limits.h>
+/* #undefine TIMER_MAX */
+/* MIN: _POSIX_TIMER_MAX */
+/* MAY-BE-UNEFINED */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_AIO_LISTIO_MAX.c b/src/limits/_POSIX_AIO_LISTIO_MAX.c
new file mode 100644
index 00000000..15b5ebac
--- /dev/null
+++ b/src/limits/_POSIX_AIO_LISTIO_MAX.c
@@ -0,0 +1,7 @@
+#include <limits.h>
+#define _POSIX_AIO_LISTIO_MAX (2)
+/* DEF */
+
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_AIO_MAX.c b/src/limits/_POSIX_AIO_MAX.c
new file mode 100644
index 00000000..c1726fa3
--- /dev/null
+++ b/src/limits/_POSIX_AIO_MAX.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_AIO_MAX (1)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_CLOCKRES_MIN.c b/src/limits/_POSIX_CLOCKRES_MIN.c
new file mode 100644
index 00000000..9319a08d
--- /dev/null
+++ b/src/limits/_POSIX_CLOCKRES_MIN.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_CLOCKRES_MIN (20000000)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_DELAYTIMER_MAX.c b/src/limits/_POSIX_DELAYTIMER_MAX.c
new file mode 100644
index 00000000..986bdc0f
--- /dev/null
+++ b/src/limits/_POSIX_DELAYTIMER_MAX.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_DELAYTIMER_MAX (32)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_MQ_OPEN_MAX.c b/src/limits/_POSIX_MQ_OPEN_MAX.c
new file mode 100644
index 00000000..8777f3bc
--- /dev/null
+++ b/src/limits/_POSIX_MQ_OPEN_MAX.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_MQ_OPEN_MAX (8)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_MQ_PRIO_MAX.c b/src/limits/_POSIX_MQ_PRIO_MAX.c
new file mode 100644
index 00000000..fd05666f
--- /dev/null
+++ b/src/limits/_POSIX_MQ_PRIO_MAX.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_MQ_PRIO_MAX (32)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_RTSIG_MAX.c b/src/limits/_POSIX_RTSIG_MAX.c
new file mode 100644
index 00000000..31a04a5f
--- /dev/null
+++ b/src/limits/_POSIX_RTSIG_MAX.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_RTSIG_MAX (8)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_SEM_NSEMS_MAX.c b/src/limits/_POSIX_SEM_NSEMS_MAX.c
new file mode 100644
index 00000000..8470b3b8
--- /dev/null
+++ b/src/limits/_POSIX_SEM_NSEMS_MAX.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_SEM_NSEMS_MAX (256)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_SEM_VALUE_MAX.c b/src/limits/_POSIX_SEM_VALUE_MAX.c
new file mode 100644
index 00000000..4fff31e5
--- /dev/null
+++ b/src/limits/_POSIX_SEM_VALUE_MAX.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_SEM_VALUE_MAX (32767)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_SIGQUEUE_MAX.c b/src/limits/_POSIX_SIGQUEUE_MAX.c
new file mode 100644
index 00000000..e5222340
--- /dev/null
+++ b/src/limits/_POSIX_SIGQUEUE_MAX.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_SIGQUEUE_MAX (32)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/limits/_POSIX_TIMER_MAX.c b/src/limits/_POSIX_TIMER_MAX.c
new file mode 100644
index 00000000..539f8bb3
--- /dev/null
+++ b/src/limits/_POSIX_TIMER_MAX.c
@@ -0,0 +1,6 @@
+#include <limits.h>
+#define _POSIX_TIMER_MAX (32)
+/* DEF */
+/*
+POSIX(199309)
+*/
diff --git a/src/mqueue/mq_close.c b/src/mqueue/mq_close.c
new file mode 100644
index 00000000..4831b829
--- /dev/null
+++ b/src/mqueue/mq_close.c
@@ -0,0 +1,11 @@
+#include <mqueue.h>
+
+int mq_close(mqd_t mqdes)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/mqueue/mq_getattr.c b/src/mqueue/mq_getattr.c
new file mode 100644
index 00000000..0ff4b292
--- /dev/null
+++ b/src/mqueue/mq_getattr.c
@@ -0,0 +1,11 @@
+#include <mqueue.h>
+
+int mq_getattr(mqd_t mqdes, struct mq_attr * mqstat)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/mqueue/mq_notify.c b/src/mqueue/mq_notify.c
new file mode 100644
index 00000000..779112e7
--- /dev/null
+++ b/src/mqueue/mq_notify.c
@@ -0,0 +1,11 @@
+#include <mqueue.h>
+
+int mq_notify(mqd_t mqdes, const struct sigevent * notification)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/mqueue/mq_open.c b/src/mqueue/mq_open.c
new file mode 100644
index 00000000..4e364ac5
--- /dev/null
+++ b/src/mqueue/mq_open.c
@@ -0,0 +1,11 @@
+#include <mqueue.h>
+
+mqd_t mq_open(const char * name, int oflag, ...)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/mqueue/mq_receive.c b/src/mqueue/mq_receive.c
new file mode 100644
index 00000000..c5ea5e97
--- /dev/null
+++ b/src/mqueue/mq_receive.c
@@ -0,0 +1,11 @@
+#include <mqueue.h>
+
+ssize_t mq_receive(mqd_t mqdes, char * msg_ptr, size_t msg_len, unsigned * msg_prio)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/mqueue/mq_send.c b/src/mqueue/mq_send.c
new file mode 100644
index 00000000..4f78af7d
--- /dev/null
+++ b/src/mqueue/mq_send.c
@@ -0,0 +1,11 @@
+#include <mqueue.h>
+
+int mq_send(mqd_t mqdes, const char * msg_ptr, size_t msg_len, unsigned msg_prio)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/mqueue/mq_setattr.c b/src/mqueue/mq_setattr.c
new file mode 100644
index 00000000..4690c691
--- /dev/null
+++ b/src/mqueue/mq_setattr.c
@@ -0,0 +1,11 @@
+#include <mqueue.h>
+
+int mq_setattr(mqd_t mqdes, const struct mq_attr * restrict mqstat, struct mq_attr * restrict omqstat)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/mqueue/mq_unlink.c b/src/mqueue/mq_unlink.c
new file mode 100644
index 00000000..e11c195d
--- /dev/null
+++ b/src/mqueue/mq_unlink.c
@@ -0,0 +1,11 @@
+#include <mqueue.h>
+
+int mq_unlink(const char * name)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/mqueue/mqd_t.c b/src/mqueue/mqd_t.c
new file mode 100644
index 00000000..3d6e5deb
--- /dev/null
+++ b/src/mqueue/mqd_t.c
@@ -0,0 +1,5 @@
+#include <mqueue.h>
+typedef unsigned long int mqd_t;
+/*
+POSIX(199309)
+*/
diff --git a/src/mqueue/struct_mq_attr.c b/src/mqueue/struct_mq_attr.c
new file mode 100644
index 00000000..36a58d80
--- /dev/null
+++ b/src/mqueue/struct_mq_attr.c
@@ -0,0 +1,12 @@
+#include <mqueue.h>
+
+struct mq_attr {
+ long mq_flags;
+ long mq_maxmsg;
+ long mq_msgsize;
+ long mq_curmsgs;
+};
+
+/*
+POSIX(199309)
+*/
diff --git a/src/nonstd/_FTM/_POSIX_C_SOURCE.c b/src/nonstd/_FTM/_POSIX_C_SOURCE.c
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/src/nonstd/_FTM/_POSIX_C_SOURCE.c
diff --git a/src/nonstd/__pthread_per_thread.c b/src/nonstd/__pthread_per_thread.c
new file mode 100644
index 00000000..0dff3999
--- /dev/null
+++ b/src/nonstd/__pthread_per_thread.c
@@ -0,0 +1,24 @@
+#include "pthread.h"
+
+static pthread_key_t __per_thread_key;
+
+static void __make_key(void)
+{
+ pthread_key_create(&key, NULL);
+}
+
+static struct per_thread *per_thread(void)
+{
+ static pthread_once_t key_once = PTHREAD_ONCE_INIT;
+ struct per_thread *pt;
+ pthread_once(&key_once, __make_key);
+ if ((pt = pthread_getspecific(key)) == NULL) {
+ pt = calloc(1, sizeof (*pt));
+ pthread_setspecific(key, pt);
+ }
+ return pt;
+}
+
+/*
+LINK(pthread)
+*/
diff --git a/src/sched/SCHED_FIFO.c b/src/sched/SCHED_FIFO.c
new file mode 100644
index 00000000..7002d376
--- /dev/null
+++ b/src/sched/SCHED_FIFO.c
@@ -0,0 +1,5 @@
+#include <sched.h>
+#define SCHED_FIFO (0)
+/*
+POSIX(199309)
+*/
diff --git a/src/sched/SCHED_OTHER.c b/src/sched/SCHED_OTHER.c
new file mode 100644
index 00000000..e949a6cc
--- /dev/null
+++ b/src/sched/SCHED_OTHER.c
@@ -0,0 +1,6 @@
+#include <sched.h>
+#define SCHED_OTHER (3)
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sched/SCHED_RR.c b/src/sched/SCHED_RR.c
new file mode 100644
index 00000000..ce611c8f
--- /dev/null
+++ b/src/sched/SCHED_RR.c
@@ -0,0 +1,6 @@
+#include <sched.h>
+#define SCHED_RR (1)
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sched/sched_get_priority_max.c b/src/sched/sched_get_priority_max.c
new file mode 100644
index 00000000..134cbb6c
--- /dev/null
+++ b/src/sched/sched_get_priority_max.c
@@ -0,0 +1,11 @@
+#include <sched.h>
+
+int sched_get_priority_max(int policy)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/sched/sched_get_priority_min.c b/src/sched/sched_get_priority_min.c
new file mode 100644
index 00000000..38033b8b
--- /dev/null
+++ b/src/sched/sched_get_priority_min.c
@@ -0,0 +1,11 @@
+#include <sched.h>
+
+int sched_get_priority_min(int policy)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/sched/sched_getparam.c b/src/sched/sched_getparam.c
new file mode 100644
index 00000000..b3588713
--- /dev/null
+++ b/src/sched/sched_getparam.c
@@ -0,0 +1,11 @@
+#include <sched.h>
+
+int sched_getparam(pid_t pid, struct sched_param * param)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/sched/sched_getscheduler.c b/src/sched/sched_getscheduler.c
new file mode 100644
index 00000000..81f26c14
--- /dev/null
+++ b/src/sched/sched_getscheduler.c
@@ -0,0 +1,11 @@
+#include <sched.h>
+
+int sched_getscheduler(pid_t pid)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/sched/sched_rr_get_interval.c b/src/sched/sched_rr_get_interval.c
new file mode 100644
index 00000000..2710adcd
--- /dev/null
+++ b/src/sched/sched_rr_get_interval.c
@@ -0,0 +1,11 @@
+#include <sched.h>
+
+int sched_rr_get_interval(pid_t pid, struct timespec * interval)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/sched/sched_setparam.c b/src/sched/sched_setparam.c
new file mode 100644
index 00000000..3dfe578a
--- /dev/null
+++ b/src/sched/sched_setparam.c
@@ -0,0 +1,11 @@
+#include <sched.h>
+
+int sched_setparam(pid_t pid, const struct sched_param * param)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/sched/sched_setscheduler.c b/src/sched/sched_setscheduler.c
new file mode 100644
index 00000000..4e8365c4
--- /dev/null
+++ b/src/sched/sched_setscheduler.c
@@ -0,0 +1,11 @@
+#include <sched.h>
+
+int sched_setscheduler(pid_t pid, int policy, const struct sched_param * param)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/sched/sched_yield.c b/src/sched/sched_yield.c
new file mode 100644
index 00000000..c9bf7661
--- /dev/null
+++ b/src/sched/sched_yield.c
@@ -0,0 +1,11 @@
+#include <sched.h>
+
+int sched_yield(void)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/sched/struct_sched_param.c b/src/sched/struct_sched_param.c
new file mode 100644
index 00000000..1ef5bf55
--- /dev/null
+++ b/src/sched/struct_sched_param.c
@@ -0,0 +1,15 @@
+#include <sched.h>
+
+struct sched_param {
+ int sched_priority;
+ #if defined _POSIX_SS || defined _POSIX_TSP
+ int sched_ss_low_priority;
+ struct timespec sched_ss_repl_period;
+ struct timespec sched_ss_init_budget;
+ int sched_ss_max_repl;
+ #endif
+};
+
+/*
+POSIX(199309)
+*/
diff --git a/src/semaphore/sem_close.c b/src/semaphore/sem_close.c
new file mode 100644
index 00000000..3f0e6c36
--- /dev/null
+++ b/src/semaphore/sem_close.c
@@ -0,0 +1,11 @@
+#include <semaphore.h>
+
+int sem_close(sem_t *sem)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/semaphore/sem_destroy.c b/src/semaphore/sem_destroy.c
new file mode 100644
index 00000000..c0f0e33c
--- /dev/null
+++ b/src/semaphore/sem_destroy.c
@@ -0,0 +1,11 @@
+#include <semaphore.h>
+
+int sem_destroy(sem_t * sem)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/semaphore/sem_getvalue.c b/src/semaphore/sem_getvalue.c
new file mode 100644
index 00000000..1b50bc93
--- /dev/null
+++ b/src/semaphore/sem_getvalue.c
@@ -0,0 +1,11 @@
+#include <semaphore.h>
+
+int sem_getvalue(sem_t * restrict sem, int * restrict sval)
+{
+ return *sval;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/semaphore/sem_init.c b/src/semaphore/sem_init.c
new file mode 100644
index 00000000..64ddc10f
--- /dev/null
+++ b/src/semaphore/sem_init.c
@@ -0,0 +1,11 @@
+#include <semaphore.h>
+
+int sem_init(sem_t * sem, int pshared, unsigned value)
+{
+ return pshared;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/semaphore/sem_open.c b/src/semaphore/sem_open.c
new file mode 100644
index 00000000..04ba0144
--- /dev/null
+++ b/src/semaphore/sem_open.c
@@ -0,0 +1,11 @@
+#include <semaphore.h>
+
+sem_t * sem_open(const char * name, int oflag, ...)
+{
+ return SEM_FAILED;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/semaphore/sem_post.c b/src/semaphore/sem_post.c
new file mode 100644
index 00000000..de43da36
--- /dev/null
+++ b/src/semaphore/sem_post.c
@@ -0,0 +1,11 @@
+#include <semaphore.h>
+
+int sem_post(sem_t * sem)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/semaphore/sem_t.c b/src/semaphore/sem_t.c
new file mode 100644
index 00000000..e0fcb4cc
--- /dev/null
+++ b/src/semaphore/sem_t.c
@@ -0,0 +1,5 @@
+#include <semaphore.h>
+typedef struct __sem_t sem_t;
+/*
+POSIX(199309)
+*/
diff --git a/src/semaphore/sem_trywait.c b/src/semaphore/sem_trywait.c
new file mode 100644
index 00000000..02696b9d
--- /dev/null
+++ b/src/semaphore/sem_trywait.c
@@ -0,0 +1,11 @@
+#include <semaphore.h>
+
+int sem_trywait(sem_t * sem)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/semaphore/sem_unlink.c b/src/semaphore/sem_unlink.c
new file mode 100644
index 00000000..0be65021
--- /dev/null
+++ b/src/semaphore/sem_unlink.c
@@ -0,0 +1,11 @@
+#include <semaphore.h>
+
+int sem_unlink(const char * name)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/semaphore/sem_wait.c b/src/semaphore/sem_wait.c
new file mode 100644
index 00000000..8bf012a4
--- /dev/null
+++ b/src/semaphore/sem_wait.c
@@ -0,0 +1,11 @@
+#include <semaphore.h>
+
+int sem_wait(sem_t * sem)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/signal/SIGEV_NONE.c b/src/signal/SIGEV_NONE.c
new file mode 100644
index 00000000..5dc6b7d2
--- /dev/null
+++ b/src/signal/SIGEV_NONE.c
@@ -0,0 +1,5 @@
+#include <signal.h>
+#define SIGEV_NONE (0)
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/SIGEV_SIGNAL.c b/src/signal/SIGEV_SIGNAL.c
new file mode 100644
index 00000000..aec400c4
--- /dev/null
+++ b/src/signal/SIGEV_SIGNAL.c
@@ -0,0 +1,5 @@
+#include <signal.h>
+#define SIGEV_SIGNAL (1)
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/SIGRTMAX.c b/src/signal/SIGRTMAX.c
new file mode 100644
index 00000000..8821bcf1
--- /dev/null
+++ b/src/signal/SIGRTMAX.c
@@ -0,0 +1,5 @@
+#include <signal.h>
+#define SIGRTMAX /* maximum real time signal */
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/SIGRTMIN.c b/src/signal/SIGRTMIN.c
new file mode 100644
index 00000000..ccbd6fee
--- /dev/null
+++ b/src/signal/SIGRTMIN.c
@@ -0,0 +1,5 @@
+#include <signal.h>
+#define SIGRTMIN /* minimum real-time signal */
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/SI_ASYNCIO.c b/src/signal/SI_ASYNCIO.c
new file mode 100644
index 00000000..8c43051a
--- /dev/null
+++ b/src/signal/SI_ASYNCIO.c
@@ -0,0 +1,5 @@
+#include <signal.h>
+#define SI_ASYNCIO (14)
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/SI_MESGQ.c b/src/signal/SI_MESGQ.c
new file mode 100644
index 00000000..c432db39
--- /dev/null
+++ b/src/signal/SI_MESGQ.c
@@ -0,0 +1,5 @@
+#include <signal.h>
+#define SI_MESGQ (15)
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/SI_QUEUE.c b/src/signal/SI_QUEUE.c
new file mode 100644
index 00000000..d5f7bea9
--- /dev/null
+++ b/src/signal/SI_QUEUE.c
@@ -0,0 +1,5 @@
+#include <signal.h>
+#define SI_QUEUE (12)
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/SI_TIMER.c b/src/signal/SI_TIMER.c
new file mode 100644
index 00000000..1cbc0529
--- /dev/null
+++ b/src/signal/SI_TIMER.c
@@ -0,0 +1,5 @@
+#include <signal.h>
+#define SI_TIMER (13)
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/SI_USER.c b/src/signal/SI_USER.c
new file mode 100644
index 00000000..2d39d96e
--- /dev/null
+++ b/src/signal/SI_USER.c
@@ -0,0 +1,5 @@
+#include <signal.h>
+#define SI_USER (11)
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/sigqueue.c b/src/signal/sigqueue.c
new file mode 100644
index 00000000..6f4b6864
--- /dev/null
+++ b/src/signal/sigqueue.c
@@ -0,0 +1,10 @@
+#include <signal.h>
+
+int sigqueue(pid_t pid, int signo, const union sigval value)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/sigtimedwait.c b/src/signal/sigtimedwait.c
new file mode 100644
index 00000000..74443089
--- /dev/null
+++ b/src/signal/sigtimedwait.c
@@ -0,0 +1,10 @@
+#include <signal.h>
+
+int sigtimedwait(const sigset_t * restrict set, siginfo_t * restrict info, const struct timespec * restrict timeout)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/sigwaitinfo.c b/src/signal/sigwaitinfo.c
new file mode 100644
index 00000000..6af01e10
--- /dev/null
+++ b/src/signal/sigwaitinfo.c
@@ -0,0 +1,10 @@
+#include <signal.h>
+
+int sigwaitinfo(const sigset_t * restrict set, siginfo_t * restrict info)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/struct_sigevent.c b/src/signal/struct_sigevent.c
new file mode 100644
index 00000000..ac0713f9
--- /dev/null
+++ b/src/signal/struct_sigevent.c
@@ -0,0 +1,13 @@
+#include <signal.h>
+
+struct sigevent {
+ int sigev_notify;
+ int sigev_signo;
+ union sigval sigev_value;
+ void (*sigev_notify_function)(union sigval);
+ pthread_attr_t *siegev_notify_attributes;
+};
+
+/*
+POSIX(199309)
+*/
diff --git a/src/signal/union_sigval.c b/src/signal/union_sigval.c
new file mode 100644
index 00000000..c2f7ecb4
--- /dev/null
+++ b/src/signal/union_sigval.c
@@ -0,0 +1,10 @@
+#include <signal.h>
+
+union sigval {
+ int sival_int;
+ void *sival_ptr;
+};
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/mman/MAP_FAILED.c b/src/sys/mman/MAP_FAILED.c
new file mode 100644
index 00000000..468ff528
--- /dev/null
+++ b/src/sys/mman/MAP_FAILED.c
@@ -0,0 +1,7 @@
+#include <sys/mman.h>
+
+#define MAP_FAILED ((void*)-1)
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/mman/MCL_CURRENT.c b/src/sys/mman/MCL_CURRENT.c
new file mode 100644
index 00000000..85d542ba
--- /dev/null
+++ b/src/sys/mman/MCL_CURRENT.c
@@ -0,0 +1,7 @@
+#include <sys/mman.h>
+
+#define MCL_CURRENT /* TODO */
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/mman/MCL_FUTURE.c b/src/sys/mman/MCL_FUTURE.c
new file mode 100644
index 00000000..a0d70688
--- /dev/null
+++ b/src/sys/mman/MCL_FUTURE.c
@@ -0,0 +1,7 @@
+#include <sys/mman.h>
+
+#define MCL_FUTURE /* TODO */
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/mman/mlock.c b/src/sys/mman/mlock.c
new file mode 100644
index 00000000..c73d2a3c
--- /dev/null
+++ b/src/sys/mman/mlock.c
@@ -0,0 +1,10 @@
+#include <sys/mman.h>
+
+int mlock(const void *addr, size_t len)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/mman/mlockall.c b/src/sys/mman/mlockall.c
new file mode 100644
index 00000000..06f51ecf
--- /dev/null
+++ b/src/sys/mman/mlockall.c
@@ -0,0 +1,10 @@
+#include <sys/mman.h>
+
+int mlockall(int flags)
+{
+ return flags;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/mman/munlock.c b/src/sys/mman/munlock.c
new file mode 100644
index 00000000..7445ade1
--- /dev/null
+++ b/src/sys/mman/munlock.c
@@ -0,0 +1,10 @@
+#include <sys/mman.h>
+
+int munlock(const void *addr, size_t len)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/mman/munlockall.c b/src/sys/mman/munlockall.c
new file mode 100644
index 00000000..0bb8d4b1
--- /dev/null
+++ b/src/sys/mman/munlockall.c
@@ -0,0 +1,10 @@
+#include <sys/mman.h>
+
+int munlockall(void)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/mman/shm_open.c b/src/sys/mman/shm_open.c
new file mode 100644
index 00000000..1e13c2a0
--- /dev/null
+++ b/src/sys/mman/shm_open.c
@@ -0,0 +1,10 @@
+#include <sys/mman.h>
+
+int shm_open(const char *name, int oflag, mode_t mode)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/mman/shm_unlink.c b/src/sys/mman/shm_unlink.c
new file mode 100644
index 00000000..d0f046f8
--- /dev/null
+++ b/src/sys/mman/shm_unlink.c
@@ -0,0 +1,10 @@
+#include <sys/mman.h>
+
+int shm_unlink(const char *name)
+{
+ return -1;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/stat/S_TYPEISMQ.c b/src/sys/stat/S_TYPEISMQ.c
new file mode 100644
index 00000000..cb15b80a
--- /dev/null
+++ b/src/sys/stat/S_TYPEISMQ.c
@@ -0,0 +1,5 @@
+#include <sys/stat.h>
+#define S_TYPEISMQ(buf) /* TODO */
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/stat/S_TYPEISSEM.c b/src/sys/stat/S_TYPEISSEM.c
new file mode 100644
index 00000000..60dd471d
--- /dev/null
+++ b/src/sys/stat/S_TYPEISSEM.c
@@ -0,0 +1,5 @@
+#include <sys/stat.h>
+#define S_TYPEISSEM(buf) /* TODO */
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/stat/S_TYPEISSHM.c b/src/sys/stat/S_TYPEISSHM.c
new file mode 100644
index 00000000..3e6b1653
--- /dev/null
+++ b/src/sys/stat/S_TYPEISSHM.c
@@ -0,0 +1,5 @@
+#include <sys/stat.h>
+#define S_TYPEISSHM(buf) /* TODO */
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/types/clockid_t.c b/src/sys/types/clockid_t.c
new file mode 100644
index 00000000..7b05b621
--- /dev/null
+++ b/src/sys/types/clockid_t.c
@@ -0,0 +1,6 @@
+#include <sys/types.h>
+typedef unsigned long int clockid_t;
+
+/*
+POSIX(199309)
+*/
diff --git a/src/sys/types/timer_t.c b/src/sys/types/timer_t.c
new file mode 100644
index 00000000..49ca4526
--- /dev/null
+++ b/src/sys/types/timer_t.c
@@ -0,0 +1,6 @@
+#include <sys/types.h>
+typedef unsigned long int timer_t;
+
+/*
+POSIX(199309)
+*/
diff --git a/src/time/CLOCK_REALTIME.c b/src/time/CLOCK_REALTIME.c
new file mode 100644
index 00000000..fc72f017
--- /dev/null
+++ b/src/time/CLOCK_REALTIME.c
@@ -0,0 +1,5 @@
+#include <time.h>
+#define CLOCK_REALTIME (3)
+/*
+POSIX(199309)
+*/
diff --git a/src/time/TIMER_ABSTIME.c b/src/time/TIMER_ABSTIME.c
new file mode 100644
index 00000000..1625e95b
--- /dev/null
+++ b/src/time/TIMER_ABSTIME.c
@@ -0,0 +1,5 @@
+#include <time.h>
+#define TIMER_ABSTIME (0)
+/*
+POSIX(199309)
+*/
diff --git a/src/time/clock_getres.c b/src/time/clock_getres.c
new file mode 100644
index 00000000..34c437d8
--- /dev/null
+++ b/src/time/clock_getres.c
@@ -0,0 +1,11 @@
+#include <time.h>
+
+int clock_getres(clockid_t clock_id, struct timespec *res)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/time/clock_gettime.c b/src/time/clock_gettime.c
new file mode 100644
index 00000000..5f35cf93
--- /dev/null
+++ b/src/time/clock_gettime.c
@@ -0,0 +1,11 @@
+#include <time.h>
+
+int clock_gettime(clockid_t clock_id, struct timespec *tp)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/time/clock_settime.c b/src/time/clock_settime.c
new file mode 100644
index 00000000..27ae656c
--- /dev/null
+++ b/src/time/clock_settime.c
@@ -0,0 +1,11 @@
+#include <time.h>
+
+int clock_settime(clockid_t clock_id, const struct timespec *tp)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/time/nanosleep.c b/src/time/nanosleep.c
new file mode 100644
index 00000000..61dd85fc
--- /dev/null
+++ b/src/time/nanosleep.c
@@ -0,0 +1,10 @@
+#include <time.h>
+
+int nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+*/
diff --git a/src/time/struct_itimerspec.c b/src/time/struct_itimerspec.c
new file mode 100644
index 00000000..20dc4a43
--- /dev/null
+++ b/src/time/struct_itimerspec.c
@@ -0,0 +1,10 @@
+#include <time.h>
+
+struct itimerspec {
+ struct timespec it_interval;
+ struct timespec it_value;
+};
+
+/*
+POSIX(199309)
+*/
diff --git a/src/time/struct_timespec.c b/src/time/struct_timespec.c
new file mode 100644
index 00000000..ecf0c8ef
--- /dev/null
+++ b/src/time/struct_timespec.c
@@ -0,0 +1,10 @@
+#include <time.h>
+
+struct timespec {
+ time_t tv_sec; /* Seconds */
+ long tv_nsec; /* Nanoseonds */
+};
+
+/*
+POSIX(199309)
+*/
diff --git a/src/time/timer_create.c b/src/time/timer_create.c
new file mode 100644
index 00000000..3c52a589
--- /dev/null
+++ b/src/time/timer_create.c
@@ -0,0 +1,11 @@
+#include <time.h>
+
+int timer_create(clockid_t clockid, struct sigevent *restrict evp, timer_t *restrict timerid)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/time/timer_delete.c b/src/time/timer_delete.c
new file mode 100644
index 00000000..82ffa586
--- /dev/null
+++ b/src/time/timer_delete.c
@@ -0,0 +1,11 @@
+#include <time.h>
+
+int timer_delete(timer_t timerid)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/time/timer_getoverrun.c b/src/time/timer_getoverrun.c
new file mode 100644
index 00000000..bd82d768
--- /dev/null
+++ b/src/time/timer_getoverrun.c
@@ -0,0 +1,11 @@
+#include <time.h>
+
+int timer_getoverrun(timer_t timerid)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/time/timer_gettime.c b/src/time/timer_gettime.c
new file mode 100644
index 00000000..ce9e078c
--- /dev/null
+++ b/src/time/timer_gettime.c
@@ -0,0 +1,11 @@
+#include <time.h>
+
+int timer_gettime(timer_t timerid, struct itimerspec *value)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/time/timer_settime.c b/src/time/timer_settime.c
new file mode 100644
index 00000000..3ba34f5f
--- /dev/null
+++ b/src/time/timer_settime.c
@@ -0,0 +1,11 @@
+#include <time.h>
+
+int timer_settime(timer_t timerid, int flags, const struct itimerspec * restrict value, struct itimerspec * restrict ovalue)
+{
+ return 0;
+}
+
+/*
+POSIX(199309)
+LINK(rt)
+*/
diff --git a/src/unistd/_PC_ASYNC_IO.c b/src/unistd/_PC_ASYNC_IO.c
new file mode 100644
index 00000000..dce54d64
--- /dev/null
+++ b/src/unistd/_PC_ASYNC_IO.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _PC_ASYNC_IO 2
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_PC_PRIO_IO.c b/src/unistd/_PC_PRIO_IO.c
new file mode 100644
index 00000000..a7fb2784
--- /dev/null
+++ b/src/unistd/_PC_PRIO_IO.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _PC_PRIO_IO 12
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_PC_SYNC_IO.c b/src/unistd/_PC_SYNC_IO.c
new file mode 100644
index 00000000..c9c8921b
--- /dev/null
+++ b/src/unistd/_PC_SYNC_IO.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _PC_SYNC_IO 18
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_ASYNCHRONOUS_IO.c b/src/unistd/_POSIX_ASYNCHRONOUS_IO.c
new file mode 100644
index 00000000..32855cc9
--- /dev/null
+++ b/src/unistd/_POSIX_ASYNCHRONOUS_IO.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#define _POSIX_ASYNCHRONOUS_IO 200809L
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_ASYNC_IO.c b/src/unistd/_POSIX_ASYNC_IO.c
new file mode 100644
index 00000000..dc896913
--- /dev/null
+++ b/src/unistd/_POSIX_ASYNC_IO.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _POSIX_ASYNC_IO 200809L
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_FSYNC.c b/src/unistd/_POSIX_FSYNC.c
new file mode 100644
index 00000000..591f74ef
--- /dev/null
+++ b/src/unistd/_POSIX_FSYNC.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _POSIX_FSYNC (-1)
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_MAPPED_FILES.c b/src/unistd/_POSIX_MAPPED_FILES.c
new file mode 100644
index 00000000..8d26f4b4
--- /dev/null
+++ b/src/unistd/_POSIX_MAPPED_FILES.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _POSIX_MAPPED_FILES 200809L
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_MEMLOCK.c b/src/unistd/_POSIX_MEMLOCK.c
new file mode 100644
index 00000000..5b814d37
--- /dev/null
+++ b/src/unistd/_POSIX_MEMLOCK.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _POSIX_MEMLOCK (-1)
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_MEMLOCK_RANGE.c b/src/unistd/_POSIX_MEMLOCK_RANGE.c
new file mode 100644
index 00000000..6b42c768
--- /dev/null
+++ b/src/unistd/_POSIX_MEMLOCK_RANGE.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#define _POSIX_MEMLOCK_RANGE (-1)
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_MEMORY_PROTECTION.c b/src/unistd/_POSIX_MEMORY_PROTECTION.c
new file mode 100644
index 00000000..a24f59e3
--- /dev/null
+++ b/src/unistd/_POSIX_MEMORY_PROTECTION.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#define _POSIX_MEMORY_PROTECTION 200809L
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_MESSAGE_PASSING.c b/src/unistd/_POSIX_MESSAGE_PASSING.c
new file mode 100644
index 00000000..c146700c
--- /dev/null
+++ b/src/unistd/_POSIX_MESSAGE_PASSING.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#define _POSIX_MESSAGE_PASSING (-1)
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_PRIORITIZED_IO.c b/src/unistd/_POSIX_PRIORITIZED_IO.c
new file mode 100644
index 00000000..d72d6a95
--- /dev/null
+++ b/src/unistd/_POSIX_PRIORITIZED_IO.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#define _POSIX_PRIORITIZED_IO (-1)
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_PRIORITY_SCHEDULING.c b/src/unistd/_POSIX_PRIORITY_SCHEDULING.c
new file mode 100644
index 00000000..990167a2
--- /dev/null
+++ b/src/unistd/_POSIX_PRIORITY_SCHEDULING.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#define _POSIX_PRIORITY_SCHEDULING (-1)
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_PRIO_IO.c b/src/unistd/_POSIX_PRIO_IO.c
new file mode 100644
index 00000000..438fdd76
--- /dev/null
+++ b/src/unistd/_POSIX_PRIO_IO.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _POSIX_PRIO_IO 200809L
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_REALTIME_SIGNALS.c b/src/unistd/_POSIX_REALTIME_SIGNALS.c
new file mode 100644
index 00000000..5377fa85
--- /dev/null
+++ b/src/unistd/_POSIX_REALTIME_SIGNALS.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _POSIX_REALTIME_SIGNALS 200809L
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_SEMAPHORES.c b/src/unistd/_POSIX_SEMAPHORES.c
new file mode 100644
index 00000000..3b862191
--- /dev/null
+++ b/src/unistd/_POSIX_SEMAPHORES.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#define _POSIX_SEMAPHORES 200809L
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_SHARED_MEMORY_OBJECTS.c b/src/unistd/_POSIX_SHARED_MEMORY_OBJECTS.c
new file mode 100644
index 00000000..21263d7a
--- /dev/null
+++ b/src/unistd/_POSIX_SHARED_MEMORY_OBJECTS.c
@@ -0,0 +1,6 @@
+#inlcude <unistd.h>
+#define _POSIX_SHARED_MEMORY_OBJECTS (-1)
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_SYNCHRONIZED_IO.c b/src/unistd/_POSIX_SYNCHRONIZED_IO.c
new file mode 100644
index 00000000..e5ac5538
--- /dev/null
+++ b/src/unistd/_POSIX_SYNCHRONIZED_IO.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#define _POSIX_SYNCHRONIZED_IO (-1)
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_SYNC_IO.c b/src/unistd/_POSIX_SYNC_IO.c
new file mode 100644
index 00000000..2478f840
--- /dev/null
+++ b/src/unistd/_POSIX_SYNC_IO.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _POSIX_SYNC_IO 200809L
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_POSIX_TIMERS.c b/src/unistd/_POSIX_TIMERS.c
new file mode 100644
index 00000000..9a0b9c84
--- /dev/null
+++ b/src/unistd/_POSIX_TIMERS.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#define _POSIX_TIMERS 200809L
+
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_AIO_LISTIO_MAX.c b/src/unistd/_SC_AIO_LISTIO_MAX.c
new file mode 100644
index 00000000..b42fb6ab
--- /dev/null
+++ b/src/unistd/_SC_AIO_LISTIO_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_AIO_LISTIO_MAX 16
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_AIO_MAX.c b/src/unistd/_SC_AIO_MAX.c
new file mode 100644
index 00000000..3ca8dc20
--- /dev/null
+++ b/src/unistd/_SC_AIO_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_AIO_MAX 17
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_AIO_PRIO_DELTA_MAX.c b/src/unistd/_SC_AIO_PRIO_DELTA_MAX.c
new file mode 100644
index 00000000..ca70d203
--- /dev/null
+++ b/src/unistd/_SC_AIO_PRIO_DELTA_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_AIO_PRIO_DELTA_MAX 18
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_ASYNCHRONOUS_IO.c b/src/unistd/_SC_ASYNCHRONOUS_IO.c
new file mode 100644
index 00000000..cf73f736
--- /dev/null
+++ b/src/unistd/_SC_ASYNCHRONOUS_IO.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_ASYNCHRONOUS_IO 20
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_DELAYTIMER_MAX.c b/src/unistd/_SC_DELAYTIMER_MAX.c
new file mode 100644
index 00000000..160473ad
--- /dev/null
+++ b/src/unistd/_SC_DELAYTIMER_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_DELAYTIMER_MAX 32
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_FSYNC.c b/src/unistd/_SC_FSYNC.c
new file mode 100644
index 00000000..8d895063
--- /dev/null
+++ b/src/unistd/_SC_FSYNC.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_FSYNC 34
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_MAPPED_FILES.c b/src/unistd/_SC_MAPPED_FILES.c
new file mode 100644
index 00000000..d2fe3ff7
--- /dev/null
+++ b/src/unistd/_SC_MAPPED_FILES.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_MAPPED_FILES 43
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_MEMLOCK.c b/src/unistd/_SC_MEMLOCK.c
new file mode 100644
index 00000000..7e62b5b1
--- /dev/null
+++ b/src/unistd/_SC_MEMLOCK.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_MEMLOCK 44
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_MEMLOCK_RANGE.c b/src/unistd/_SC_MEMLOCK_RANGE.c
new file mode 100644
index 00000000..b47ad9ba
--- /dev/null
+++ b/src/unistd/_SC_MEMLOCK_RANGE.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_MEMLOCK_RANGE 45
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_MEMORY_PROTECTION.c b/src/unistd/_SC_MEMORY_PROTECTION.c
new file mode 100644
index 00000000..75e3d3be
--- /dev/null
+++ b/src/unistd/_SC_MEMORY_PROTECTION.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_MEMORY_PROTECTION 46
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_MESSAGE_PASSING.c b/src/unistd/_SC_MESSAGE_PASSING.c
new file mode 100644
index 00000000..372b00c9
--- /dev/null
+++ b/src/unistd/_SC_MESSAGE_PASSING.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_MESSAGE_PASSING 47
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_MQ_OPEN_MAX.c b/src/unistd/_SC_MQ_OPEN_MAX.c
new file mode 100644
index 00000000..1a717caf
--- /dev/null
+++ b/src/unistd/_SC_MQ_OPEN_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_MQ_OPEN_MAX 49
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_MQ_PRIO_MAX.c b/src/unistd/_SC_MQ_PRIO_MAX.c
new file mode 100644
index 00000000..ddb97822
--- /dev/null
+++ b/src/unistd/_SC_MQ_PRIO_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_MQ_PRIO_MAX 50
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_PRIORITIZED_IO.c b/src/unistd/_SC_PRIORITIZED_IO.c
new file mode 100644
index 00000000..befe8ada
--- /dev/null
+++ b/src/unistd/_SC_PRIORITIZED_IO.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_PRIORITIZED_IO /* TODO */
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_PRIORITY_SCHEDULING.c b/src/unistd/_SC_PRIORITY_SCHEDULING.c
new file mode 100644
index 00000000..0c961dd2
--- /dev/null
+++ b/src/unistd/_SC_PRIORITY_SCHEDULING.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_PRIORITY_SCHEDULING 56
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_REALTIME_SIGNALS.c b/src/unistd/_SC_REALTIME_SIGNALS.c
new file mode 100644
index 00000000..c0cfaaa3
--- /dev/null
+++ b/src/unistd/_SC_REALTIME_SIGNALS.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_REALTIME_SIGNALS 60
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_RTSIG_MAX.c b/src/unistd/_SC_RTSIG_MAX.c
new file mode 100644
index 00000000..ca6778c8
--- /dev/null
+++ b/src/unistd/_SC_RTSIG_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_RTSIG_MAX 62
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_SEMAPHORES.c b/src/unistd/_SC_SEMAPHORES.c
new file mode 100644
index 00000000..3db19c48
--- /dev/null
+++ b/src/unistd/_SC_SEMAPHORES.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_SEMAPHORES 66
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_SEM_NSEMS_MAX.c b/src/unistd/_SC_SEM_NSEMS_MAX.c
new file mode 100644
index 00000000..698e49cd
--- /dev/null
+++ b/src/unistd/_SC_SEM_NSEMS_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_SEM_NSEMS_MAX 64
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_SEM_VALUE_MAX.c b/src/unistd/_SC_SEM_VALUE_MAX.c
new file mode 100644
index 00000000..95798bd8
--- /dev/null
+++ b/src/unistd/_SC_SEM_VALUE_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_SEM_VALUE_MAX 65
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_SHARED_MEMORY_OBJECTS.c b/src/unistd/_SC_SHARED_MEMORY_OBJECTS.c
new file mode 100644
index 00000000..d5c897fb
--- /dev/null
+++ b/src/unistd/_SC_SHARED_MEMORY_OBJECTS.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_SHARED_MEMORY_OBJECTS 67
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_SIGQUEUE_MAX.c b/src/unistd/_SC_SIGQUEUE_MAX.c
new file mode 100644
index 00000000..cb7edaf0
--- /dev/null
+++ b/src/unistd/_SC_SIGQUEUE_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_SIGQUEUE_MAX 69
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_SYNCHRONIZED_IO.c b/src/unistd/_SC_SYNCHRONIZED_IO.c
new file mode 100644
index 00000000..8ecc9281
--- /dev/null
+++ b/src/unistd/_SC_SYNCHRONIZED_IO.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_SYNCHRONIZED_IO 76
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_TIMERS.c b/src/unistd/_SC_TIMERS.c
new file mode 100644
index 00000000..9d661053
--- /dev/null
+++ b/src/unistd/_SC_TIMERS.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_TIMERS 95
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/_SC_TIMER_MAX.c b/src/unistd/_SC_TIMER_MAX.c
new file mode 100644
index 00000000..b20b7bcf
--- /dev/null
+++ b/src/unistd/_SC_TIMER_MAX.c
@@ -0,0 +1,5 @@
+#include <unistd.h>
+#define _SC_TIMER_MAX 94
+/*
+POSIX(199309)
+*/
diff --git a/src/unistd/fdatasync.c b/src/unistd/fdatasync.c
new file mode 100644
index 00000000..3de269ec
--- /dev/null
+++ b/src/unistd/fdatasync.c
@@ -0,0 +1,11 @@
+#include <unistd.h>
+#include "__nonstd.h"
+
+int fdatasync(int fildes)
+{
+ __SC(int, fildes);
+}
+
+/*
+POSIX(199309)
+*/