|
@@ -0,0 +1,71 @@
|
|
|
+/*
|
|
|
+ * unistd.h - standard system calls
|
|
|
+ */
|
|
|
+/* $Id$ */
|
|
|
+
|
|
|
+#ifndef _UNISTD_H
|
|
|
+#define _UNISTD_H
|
|
|
+
|
|
|
+#include <stddef.h>
|
|
|
+
|
|
|
+/* Types */
|
|
|
+
|
|
|
+typedef int pid_t;
|
|
|
+typedef int mode_t;
|
|
|
+
|
|
|
+/* Constants for file access (open and friends) */
|
|
|
+
|
|
|
+enum
|
|
|
+{
|
|
|
+ O_ACCMODE = 0x3,
|
|
|
+
|
|
|
+ O_RDONLY = 0,
|
|
|
+ O_WRONLY = 1,
|
|
|
+ O_RDWR = 2,
|
|
|
+
|
|
|
+ O_CREAT = 0100,
|
|
|
+ O_TRUNC = 01000,
|
|
|
+ O_APPEND = 02000,
|
|
|
+ O_NONBLOCK = 04000
|
|
|
+};
|
|
|
+
|
|
|
+/* Special variables */
|
|
|
+
|
|
|
+extern char** environ;
|
|
|
+
|
|
|
+/* Implemented system calls */
|
|
|
+
|
|
|
+extern void _exit(int);
|
|
|
+extern pid_t getpid(void);
|
|
|
+extern void* sbrk(intptr_t increment);
|
|
|
+extern int isatty(int d);
|
|
|
+extern off_t lseek(int fildes, off_t offset, int whence);
|
|
|
+extern int close(int d);
|
|
|
+extern int open(const char* path, int access, ...);
|
|
|
+extern int creat(const char* path, mode_t mode);
|
|
|
+extern int read(int fd, void* buffer, size_t count);
|
|
|
+extern int write(int fd, void* buffer, size_t count);
|
|
|
+
|
|
|
+/* Unimplemented system calls (these are just prototypes to let the library
|
|
|
+ * compile). */
|
|
|
+
|
|
|
+extern int fcntl(int fd, int op, ...);
|
|
|
+
|
|
|
+/* Signal handling */
|
|
|
+
|
|
|
+typedef int sig_atomic_t;
|
|
|
+
|
|
|
+#define SIG_ERR ((sighandler_t) -1) /* Error return. */
|
|
|
+#define SIG_DFL ((sighandler_t) 0) /* Default action. */
|
|
|
+#define SIG_IGN ((sighandler_t) 1) /* Ignore signal. */
|
|
|
+
|
|
|
+#define SIGABRT 6 /* Abort (ANSI) */
|
|
|
+#define SIGILL 11 /* Illegal instruction */
|
|
|
+
|
|
|
+#define _NSIG 32 /* Biggest signal number + 1
|
|
|
+ (not including real-time signals). */
|
|
|
+typedef void (*sighandler_t)(int);
|
|
|
+extern sighandler_t signal(int signum, sighandler_t handler);
|
|
|
+extern int raise(int signum);
|
|
|
+
|
|
|
+#endif
|