|
|
1.1 root 1: #ifndef _UNISTD_H
2: #define _UNISTD_H
3:
4: /* ok, this may be a joke, but I'm working on it */
5: #define _POSIX_VERSION 198808L
6:
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 */
12:
13: #define STDIN_FILENO 0
14: #define STDOUT_FILENO 1
15: #define STDERR_FILENO 2
16:
17: #ifndef NULL
18: #define NULL ((void *)0)
19: #endif
20:
21: /* access */
22: #define F_OK 0
23: #define X_OK 1
24: #define W_OK 2
25: #define R_OK 4
26:
27: /* lseek */
28: #define SEEK_SET 0
29: #define SEEK_CUR 1
30: #define SEEK_END 2
31:
32: /* _SC stands for System Configuration. We don't use them much */
33: #define _SC_ARG_MAX 1
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
40: #define _SC_VERSION 8
41:
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
52:
53: #include <sys/stat.h>
54: #include <sys/times.h>
55: #include <sys/utsname.h>
56: #include <utime.h>
1.1.1.3 ! root 57: #include <dirent.h>
1.1 root 58:
59: #ifdef __LIBRARY__
60:
61: #define __NR_setup 0 /* used only by init, to get system going */
62: #define __NR_exit 1
63: #define __NR_fork 2
64: #define __NR_read 3
65: #define __NR_write 4
66: #define __NR_open 5
67: #define __NR_close 6
68: #define __NR_waitpid 7
69: #define __NR_creat 8
70: #define __NR_link 9
71: #define __NR_unlink 10
72: #define __NR_execve 11
73: #define __NR_chdir 12
74: #define __NR_time 13
75: #define __NR_mknod 14
76: #define __NR_chmod 15
77: #define __NR_chown 16
78: #define __NR_break 17
1.1.1.3 ! root 79: #define __NR_oldstat 18
1.1 root 80: #define __NR_lseek 19
81: #define __NR_getpid 20
82: #define __NR_mount 21
83: #define __NR_umount 22
84: #define __NR_setuid 23
85: #define __NR_getuid 24
86: #define __NR_stime 25
87: #define __NR_ptrace 26
88: #define __NR_alarm 27
1.1.1.3 ! root 89: #define __NR_oldfstat 28
1.1 root 90: #define __NR_pause 29
91: #define __NR_utime 30
92: #define __NR_stty 31
93: #define __NR_gtty 32
94: #define __NR_access 33
95: #define __NR_nice 34
96: #define __NR_ftime 35
97: #define __NR_sync 36
98: #define __NR_kill 37
99: #define __NR_rename 38
100: #define __NR_mkdir 39
101: #define __NR_rmdir 40
102: #define __NR_dup 41
103: #define __NR_pipe 42
104: #define __NR_times 43
105: #define __NR_prof 44
106: #define __NR_brk 45
107: #define __NR_setgid 46
108: #define __NR_getgid 47
109: #define __NR_signal 48
110: #define __NR_geteuid 49
111: #define __NR_getegid 50
112: #define __NR_acct 51
113: #define __NR_phys 52
114: #define __NR_lock 53
115: #define __NR_ioctl 54
116: #define __NR_fcntl 55
117: #define __NR_mpx 56
118: #define __NR_setpgid 57
119: #define __NR_ulimit 58
1.1.1.3 ! root 120: #define __NR_oldolduname 59
1.1 root 121: #define __NR_umask 60
122: #define __NR_chroot 61
123: #define __NR_ustat 62
124: #define __NR_dup2 63
125: #define __NR_getppid 64
126: #define __NR_getpgrp 65
1.1.1.3 ! root 127: #define __NR_setsid 66
! 128: #define __NR_stat 106
! 129: #define __NR_lstat 107
! 130: #define __NR_fstat 108
! 131: #define __NR_uname 122
! 132: #define __NR_getdents 141
! 133: #define __NR_stat64 195
! 134: #define __NR_ltat64 196
! 135: #define __NR_fstat64 197
! 136: #define __NR_getdents64 220
! 137: #define __NR_fcntl64 221
1.1 root 138:
139: #define _syscall0(type,name) \
140: type name(void) \
141: { \
142: type __res; \
143: __asm__ volatile ("int $0x80" \
144: : "=a" (__res) \
145: : "0" (__NR_##name)); \
146: if (__res >= 0) \
147: return __res; \
148: errno = -__res; \
149: return -1; \
150: }
151:
152: #define _syscall1(type,name,atype,a) \
153: type name(atype a) \
154: { \
155: type __res; \
156: __asm__ volatile ("int $0x80" \
157: : "=a" (__res) \
158: : "0" (__NR_##name),"b" (a)); \
159: if (__res >= 0) \
160: return __res; \
161: errno = -__res; \
162: return -1; \
163: }
164:
165: #define _syscall2(type,name,atype,a,btype,b) \
166: type name(atype a,btype b) \
167: { \
168: type __res; \
169: __asm__ volatile ("int $0x80" \
170: : "=a" (__res) \
171: : "0" (__NR_##name),"b" (a),"c" (b)); \
172: if (__res >= 0) \
173: return __res; \
174: errno = -__res; \
175: return -1; \
176: }
177:
178: #define _syscall3(type,name,atype,a,btype,b,ctype,c) \
179: type name(atype a,btype b,ctype c) \
180: { \
181: type __res; \
182: __asm__ volatile ("int $0x80" \
183: : "=a" (__res) \
184: : "0" (__NR_##name),"b" (a),"c" (b),"d" (c)); \
185: if (__res<0) \
186: errno=-__res , __res = -1; \
187: return __res;\
188: }
189:
190: #endif /* __LIBRARY__ */
191:
192: extern int errno;
193:
194: int access(const char * filename, mode_t mode);
195: int acct(const char * filename);
196: int alarm(int sec);
197: int brk(void * end_data_segment);
198: void * sbrk(ptrdiff_t increment);
199: int chdir(const char * filename);
200: int chmod(const char * filename, mode_t mode);
201: int chown(const char * filename, uid_t owner, gid_t group);
202: int chroot(const char * filename);
203: int close(int fildes);
204: int creat(const char * filename, mode_t mode);
205: int dup(int fildes);
206: int execve(const char * filename, char ** argv, char ** envp);
207: int execv(const char * pathname, char ** argv);
208: int execvp(const char * file, char ** argv);
209: int execl(const char * pathname, char * arg0, ...);
210: int execlp(const char * file, char * arg0, ...);
211: int execle(const char * pathname, char * arg0, ...);
1.1.1.2 root 212: void exit(int status);
213: void _exit(int status);
1.1 root 214: int fcntl(int fildes, int cmd, ...);
1.1.1.2 root 215: //int fork(void);
1.1 root 216: int getpid(void);
217: int getuid(void);
218: int geteuid(void);
219: int getgid(void);
220: int getegid(void);
221: int ioctl(int fildes, int cmd, ...);
222: int kill(pid_t pid, int signal);
223: int link(const char * filename1, const char * filename2);
224: int lseek(int fildes, off_t offset, int origin);
225: int mknod(const char * filename, mode_t mode, dev_t dev);
226: int mount(const char * specialfile, const char * dir, int rwflag);
227: int nice(int val);
228: int open(const char * filename, int flag, ...);
1.1.1.2 root 229: //int pause(void);
1.1 root 230: int pipe(int * fildes);
231: int read(int fildes, char * buf, off_t count);
232: int setpgrp(void);
233: int setpgid(pid_t pid,pid_t pgid);
234: int setuid(uid_t uid);
235: int setgid(gid_t gid);
236: void (*signal(int sig, void (*fn)(int)))(int);
1.1.1.3 ! root 237: int stat64(const char * filename, struct stat64 * stat_buf);
! 238: int fstat64(int fildes, struct stat64 * stat_buf);
1.1 root 239: int stime(time_t * tptr);
1.1.1.2 root 240: //int sync(void);
1.1 root 241: time_t time(time_t * tloc);
242: time_t times(struct tms * tbuf);
243: int ulimit(int cmd, long limit);
244: mode_t umask(mode_t mask);
245: int umount(const char * specialfile);
246: int uname(struct utsname * name);
247: int unlink(const char * filename);
248: int ustat(dev_t dev, struct ustat * ubuf);
249: int utime(const char * filename, struct utimbuf * times);
250: pid_t waitpid(pid_t pid,int * wait_stat,int options);
251: pid_t wait(int * wait_stat);
252: int write(int fildes, const char * buf, off_t count);
253: int dup2(int oldfd, int newfd);
254: int getppid(void);
255: pid_t getpgrp(void);
256: pid_t setsid(void);
1.1.1.3 ! root 257: int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);
! 258: int getdents64(unsigned int fd, struct dirent64 *dirp, unsigned int count);
1.1 root 259:
260: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.