summaryrefslogtreecommitdiff
path: root/src/_forced
diff options
context:
space:
mode:
Diffstat (limited to 'src/_forced')
-rw-r--r--src/_forced/_Exit.h4
-rw-r--r--src/_forced/close.h6
-rw-r--r--src/_forced/getpid.h3
-rw-r--r--src/_forced/isatty.h3
-rw-r--r--src/_forced/kill.h2
-rw-r--r--src/_forced/mmap.h11
-rw-r--r--src/_forced/mprotect.h9
-rw-r--r--src/_forced/munmap.h4
-rw-r--r--src/_forced/open.h12
-rw-r--r--src/_forced/rmdir.h2
-rw-r--r--src/_forced/sigaction.h18
-rw-r--r--src/_forced/stat.h7
-rw-r--r--src/_forced/strtoumax.h10
-rw-r--r--src/_forced/unlink.h2
-rw-r--r--src/_forced/vfwscanf.h4
-rw-r--r--src/_forced/vswscanf.h6
-rw-r--r--src/_forced/wcslen.h8
-rw-r--r--src/_forced/write.h6
18 files changed, 117 insertions, 0 deletions
diff --git a/src/_forced/_Exit.h b/src/_forced/_Exit.h
new file mode 100644
index 00000000..0ffc1ba3
--- /dev/null
+++ b/src/_forced/_Exit.h
@@ -0,0 +1,4 @@
+#if __STDC_VERSION__ < 199901L
+static _Noreturn void _Exit(int);
+#include "stdlib/_Exit.c"
+#endif
diff --git a/src/_forced/close.h b/src/_forced/close.h
new file mode 100644
index 00000000..512a66bc
--- /dev/null
+++ b/src/_forced/close.h
@@ -0,0 +1,6 @@
+#ifdef _POSIX_SOURCE
+#include <unistd.h>
+#else
+#include "_syscall.h"
+#define close(_fd) __scall1(close, _fd)
+#endif
diff --git a/src/_forced/getpid.h b/src/_forced/getpid.h
new file mode 100644
index 00000000..4ad048df
--- /dev/null
+++ b/src/_forced/getpid.h
@@ -0,0 +1,3 @@
+#include "_syscall.h"
+#define getpid() __scall0(getpid)
+
diff --git a/src/_forced/isatty.h b/src/_forced/isatty.h
new file mode 100644
index 00000000..0d0a073e
--- /dev/null
+++ b/src/_forced/isatty.h
@@ -0,0 +1,3 @@
+#include "_syscall.h"
+#define isatty(_fd) (-1) /*ioctl(_fd, TCFLSH, 0) */
+#define TCFLSH 0x540B
diff --git a/src/_forced/kill.h b/src/_forced/kill.h
new file mode 100644
index 00000000..a4fd9c32
--- /dev/null
+++ b/src/_forced/kill.h
@@ -0,0 +1,2 @@
+#include "_syscall.h"
+#define kill(pid, sig) __scall2(kill, pid, sig)
diff --git a/src/_forced/mmap.h b/src/_forced/mmap.h
new file mode 100644
index 00000000..65c1ef01
--- /dev/null
+++ b/src/_forced/mmap.h
@@ -0,0 +1,11 @@
+#include "_syscall.h"
+
+#define mmap(_a, _l, _p, _fl, _fd, _o) (void*)__syscall(__sys_mmap, _a, _l, _p, _fl, _fd, _o)
+
+#define PROT_NONE 0x0
+#define PROT_READ 0x1
+#define PROT_WRITE 0x2
+#define MAP_PRIVATE 0x02
+#define MAP_FAILED (void*)(-1)
+#define MAP_ANONYMOUS (0x20)
+
diff --git a/src/_forced/mprotect.h b/src/_forced/mprotect.h
new file mode 100644
index 00000000..5abbe5ed
--- /dev/null
+++ b/src/_forced/mprotect.h
@@ -0,0 +1,9 @@
+#ifdef _POSIX_C_SOURCE
+#include <sys/mman.h>
+#else
+#include "_syscall.h"
+#define mprotect(__ptr, __len, __prot) __syscall(__sys_mprotect, __ptr, __len, __prot)
+#define PROT_NONE 0x0
+#define PROT_READ 0x1
+#define PROT_WRITE 0x2
+#endif
diff --git a/src/_forced/munmap.h b/src/_forced/munmap.h
new file mode 100644
index 00000000..9580100d
--- /dev/null
+++ b/src/_forced/munmap.h
@@ -0,0 +1,4 @@
+#include "_syscall.h"
+
+#define munmap(_a, _l) __syscall(__sys_munmap, _a, _l)
+
diff --git a/src/_forced/open.h b/src/_forced/open.h
new file mode 100644
index 00000000..1764d52e
--- /dev/null
+++ b/src/_forced/open.h
@@ -0,0 +1,12 @@
+#ifdef _POSIX_SOURCE
+#include <fcntl.h>
+#else
+#include "_syscall.h"
+#define open(_p, _f, _m) __scall3(open, _p, _f, _m)
+#define O_RDONLY 00
+#define O_WRONLY 01
+#define O_CREAT 0100
+#define O_TRUNC 01000
+#define O_APPEND 02000
+#define O_RDWR 02
+#endif
diff --git a/src/_forced/rmdir.h b/src/_forced/rmdir.h
new file mode 100644
index 00000000..28ced29f
--- /dev/null
+++ b/src/_forced/rmdir.h
@@ -0,0 +1,2 @@
+#include "_syscall.h"
+#define rmdir(_f) __scall1(rmdir, _f)
diff --git a/src/_forced/sigaction.h b/src/_forced/sigaction.h
new file mode 100644
index 00000000..33398c49
--- /dev/null
+++ b/src/_forced/sigaction.h
@@ -0,0 +1,18 @@
+/* TODO: appropriate #ifdefs */
+
+#define SA_RESTART 0x10000000
+#define SA_RESTORER 0x04000000
+
+typedef unsigned long pid_t;
+typedef unsigned long uid_t;
+typedef unsigned long clock_t;
+#include "signal/sigset_t.h"
+#include "signal/union_sigval.h"
+#include "signal/siginfo_t.h"
+
+#define _POSIX_C_SOURCE 199506L
+#include "signal/struct_sigaction.h"
+
+static int sigaction(int, const struct sigaction * restrict, struct sigaction * restrict);
+
+#include "signal/sigaction.c"
diff --git a/src/_forced/stat.h b/src/_forced/stat.h
new file mode 100644
index 00000000..e0a75dcc
--- /dev/null
+++ b/src/_forced/stat.h
@@ -0,0 +1,7 @@
+#include "_syscall.h"
+struct stat {
+ int st_mode;
+ char padding[1024];
+};
+#define stat(_f, _b) __scall2(stat, _f, _b)
+#define S_ISDIR(_m) ((_m) & 0x00)
diff --git a/src/_forced/strtoumax.h b/src/_forced/strtoumax.h
new file mode 100644
index 00000000..d6f9883e
--- /dev/null
+++ b/src/_forced/strtoumax.h
@@ -0,0 +1,10 @@
+#if __STDC_VERSION__ >= 199901L
+#include <inttypes.h>
+#else
+#include "stdint/intmax_t.h"
+#include "stdint/uintmax_t.h"
+#include "stdint/intptr_t.h"
+#include "stdint/UINTMAX_MAX.h"
+#define strtoumax __strtoumax
+#include "inttypes/strtoumax.c"
+#endif
diff --git a/src/_forced/unlink.h b/src/_forced/unlink.h
new file mode 100644
index 00000000..240c6dd6
--- /dev/null
+++ b/src/_forced/unlink.h
@@ -0,0 +1,2 @@
+#include "_syscall.h"
+#define unlink(_f) __scall1(unlink, _f)
diff --git a/src/_forced/vfwscanf.h b/src/_forced/vfwscanf.h
new file mode 100644
index 00000000..305c06d2
--- /dev/null
+++ b/src/_forced/vfwscanf.h
@@ -0,0 +1,4 @@
+#if __STDC_VERSION__ < 199901L
+#define vfwscanf __vfwscanf
+#include "vfwscanf.c"
+#endif
diff --git a/src/_forced/vswscanf.h b/src/_forced/vswscanf.h
new file mode 100644
index 00000000..1915bc22
--- /dev/null
+++ b/src/_forced/vswscanf.h
@@ -0,0 +1,6 @@
+
+#if __STDC_VERSION__ < 199901L
+#define vswscanf __vswscanf
+#include "vswscanf.c"
+#endif
+
diff --git a/src/_forced/wcslen.h b/src/_forced/wcslen.h
new file mode 100644
index 00000000..665f6afa
--- /dev/null
+++ b/src/_forced/wcslen.h
@@ -0,0 +1,8 @@
+
+#ifdef __STDC_VERSION__
+#include <wchar.h>
+#else
+static size_t wcslen(const wchar_t *);
+#include "wchar/wcslen.c"
+#endif
+
diff --git a/src/_forced/write.h b/src/_forced/write.h
new file mode 100644
index 00000000..dced4529
--- /dev/null
+++ b/src/_forced/write.h
@@ -0,0 +1,6 @@
+#ifdef _POSIX_SOURCE
+#include <unistd.h>
+#else
+#include "_syscall.h"
+#define write(_fd, _buf, _size) __scall3(write, _fd, _buf, _size)
+#endif