4 /* ok, this may be a joke, but I'm working on it */
5 #define _POSIX_VERSION 198808L
7 #define _POSIX_CHOWN_RESTRICTED /* only root can do a chown (I think..) */
8 /* #define _POSIX_NO_TRUNC*/ /* pathname truncation (but see in kernel) */
9 #define _POSIX_VDISABLE '\0' /* character to disable things like ^C */
10 /*#define _POSIX_SAVED_IDS */ /* we'll get to this yet */
11 /*#define _POSIX_JOB_CONTROL */ /* we aren't there quite yet. Soon hopefully */
13 #define STDIN_FILENO 0
14 #define STDOUT_FILENO 1
15 #define STDERR_FILENO 2
18 #define NULL ((void *)0)
32 /* _SC stands for System Configuration. We don't use them much */
34 #define _SC_CHILD_MAX 2
35 #define _SC_CLOCKS_PER_SEC 3
36 #define _SC_NGROUPS_MAX 4
37 #define _SC_OPEN_MAX 5
38 #define _SC_JOB_CONTROL 6
39 #define _SC_SAVED_IDS 7
42 /* more (possibly) configurable things - now pathnames */
43 #define _PC_LINK_MAX 1
44 #define _PC_MAX_CANON 2
45 #define _PC_MAX_INPUT 3
46 #define _PC_NAME_MAX 4
47 #define _PC_PATH_MAX 5
48 #define _PC_PIPE_BUF 6
49 #define _PC_NO_TRUNC 7
50 #define _PC_VDISABLE 8
51 #define _PC_CHOWN_RESTRICTED 9
54 #include <sys/times.h>
55 #include <sys/utsname.h>
60 #define __NR_setup 0 /* used only by init, to get system going */
67 #define __NR_waitpid 7
70 #define __NR_unlink 10
71 #define __NR_execve 11
80 #define __NR_getpid 20
82 #define __NR_umount 22
83 #define __NR_setuid 23
84 #define __NR_getuid 24
86 #define __NR_ptrace 26
93 #define __NR_access 33
98 #define __NR_rename 38
100 #define __NR_rmdir 40
103 #define __NR_times 43
106 #define __NR_setgid 46
107 #define __NR_getgid 47
108 #define __NR_signal 48
109 #define __NR_geteuid 49
110 #define __NR_getegid 50
114 #define __NR_ioctl 54
115 #define __NR_fcntl 55
117 #define __NR_setpgid 57
118 #define __NR_ulimit 58
119 #define __NR_uname 59
120 #define __NR_umask 60
121 #define __NR_chroot 61
122 #define __NR_ustat 62
124 #define __NR_getppid 64
125 #define __NR_getpgrp 65
126 #define __NR_setsid 66
127 #define __NR_sigaction 67
129 #define _syscall0(type,name) \
133 __asm__ volatile ("int $0x80" \
135 : "0" (__NR_##name)); \
142 #define _syscall1(type,name,atype,a) \
146 __asm__ volatile ("int $0x80" \
148 : "0" (__NR_##name),"b" (a)); \
155 #define _syscall2(type,name,atype,a,btype,b) \
156 type name(atype a,btype b) \
159 __asm__ volatile ("int $0x80" \
161 : "0" (__NR_##name),"b" (a),"c" (b)); \
168 #define _syscall3(type,name,atype,a,btype,b,ctype,c) \
169 type name(atype a,btype b,ctype c) \
172 __asm__ volatile ("int $0x80" \
174 : "0" (__NR_##name),"b" (a),"c" (b),"d" (c)); \
176 errno=-__res , __res = -1; \
180 #endif /* __LIBRARY__ */
184 int access(const char * filename
, mode_t mode
);
185 int acct(const char * filename
);
187 int brk(void * end_data_segment
);
188 void * sbrk(ptrdiff_t increment
);
189 int chdir(const char * filename
);
190 int chmod(const char * filename
, mode_t mode
);
191 int chown(const char * filename
, uid_t owner
, gid_t group
);
192 int chroot(const char * filename
);
193 int close(int fildes
);
194 int creat(const char * filename
, mode_t mode
);
196 int execve(const char * filename
, char ** argv
, char ** envp
);
197 int execv(const char * pathname
, char ** argv
);
198 int execvp(const char * file
, char ** argv
);
199 int execl(const char * pathname
, char * arg0
, ...);
200 int execlp(const char * file
, char * arg0
, ...);
201 int execle(const char * pathname
, char * arg0
, ...);
202 volatile void exit(int status
);
203 volatile void _exit(int status
);
204 int fcntl(int fildes
, int cmd
, ...);
211 int ioctl(int fildes
, int cmd
, ...);
212 int kill(pid_t pid
, int signal
);
213 int link(const char * filename1
, const char * filename2
);
214 int lseek(int fildes
, off_t offset
, int origin
);
215 int mknod(const char * filename
, mode_t mode
, dev_t dev
);
216 int mount(const char * specialfile
, const char * dir
, int rwflag
);
218 int open(const char * filename
, int flag
, ...);
220 int pipe(int * fildes
);
221 int read(int fildes
, char * buf
, off_t count
);
223 int setpgid(pid_t pid
,pid_t pgid
);
224 int setuid(uid_t uid
);
225 int setgid(gid_t gid
);
226 void (*signal(int sig
, void (*fn
)(int)))(int);
227 int stat(const char * filename
, struct stat
* stat_buf
);
228 int fstat(int fildes
, struct stat
* stat_buf
);
229 int stime(time_t * tptr
);
231 time_t time(time_t * tloc
);
232 time_t times(struct tms
* tbuf
);
233 int ulimit(int cmd
, long limit
);
234 mode_t
umask(mode_t mask
);
235 int umount(const char * specialfile
);
236 int uname(struct utsname
* name
);
237 int unlink(const char * filename
);
238 int ustat(dev_t dev
, struct ustat
* ubuf
);
239 int utime(const char * filename
, struct utimbuf
* times
);
240 pid_t
waitpid(pid_t pid
,int * wait_stat
,int options
);
241 pid_t
wait(int * wait_stat
);
242 int write(int fildes
, const char * buf
, off_t count
);
243 int dup2(int oldfd
, int newfd
);