parent
							
								
									296fe41c3b
								
							
						
					
					
						commit
						e36392c535
					
				| @ -0,0 +1,278 @@ | ||||
| #ifndef _UNISTD_H | ||||
| #define _UNISTD_H | ||||
| 
 | ||||
| /* ok, this may be a joke, but I'm working on it */ | ||||
| #define _POSIX_VERSION 198808L | ||||
| 
 | ||||
| #define _POSIX_CHOWN_RESTRICTED	/* only root can do a chown (I think..) */ | ||||
| #define _POSIX_NO_TRUNC		/* no pathname truncation (but see in kernel) */ | ||||
| #define _POSIX_VDISABLE '\0'	/* character to disable things like ^C */ | ||||
| /*#define _POSIX_SAVED_IDS */	/* we'll get to this yet */ | ||||
| /*#define _POSIX_JOB_CONTROL */	/* we aren't there quite yet. Soon hopefully */ | ||||
| 
 | ||||
| #define STDIN_FILENO	0 | ||||
| #define STDOUT_FILENO	1 | ||||
| #define STDERR_FILENO	2 | ||||
| 
 | ||||
| #ifndef NULL | ||||
| #define NULL    ((void *)0) | ||||
| #endif | ||||
| 
 | ||||
| /* access */ | ||||
| #define F_OK	0 | ||||
| #define X_OK	1 | ||||
| #define W_OK	2 | ||||
| #define R_OK	4 | ||||
| 
 | ||||
| /* lseek */ | ||||
| #define SEEK_SET	0 | ||||
| #define SEEK_CUR	1 | ||||
| #define SEEK_END	2 | ||||
| 
 | ||||
| /* _SC stands for System Configuration. We don't use them much */ | ||||
| #define _SC_ARG_MAX		1 | ||||
| #define _SC_CHILD_MAX		2 | ||||
| #define _SC_CLOCKS_PER_SEC	3 | ||||
| #define _SC_NGROUPS_MAX		4 | ||||
| #define _SC_OPEN_MAX		5 | ||||
| #define _SC_JOB_CONTROL		6 | ||||
| #define _SC_SAVED_IDS		7 | ||||
| #define _SC_VERSION		8 | ||||
| 
 | ||||
| /* more (possibly) configurable things - now pathnames */ | ||||
| #define _PC_LINK_MAX		1 | ||||
| #define _PC_MAX_CANON		2 | ||||
| #define _PC_MAX_INPUT		3 | ||||
| #define _PC_NAME_MAX		4 | ||||
| #define _PC_PATH_MAX		5 | ||||
| #define _PC_PIPE_BUF		6 | ||||
| #define _PC_NO_TRUNC		7 | ||||
| #define _PC_VDISABLE		8 | ||||
| #define _PC_CHOWN_RESTRICTED	9 | ||||
| 
 | ||||
| #include <sys/stat.h> | ||||
| #include <sys/times.h> | ||||
| #include <sys/utsname.h> | ||||
| #include <utime.h> | ||||
| 
 | ||||
| #ifdef __LIBRARY__ | ||||
| 
 | ||||
| #define __NR_setup	0	/* used only by init, to get system going */ | ||||
| #define __NR_exit	1 | ||||
| #define __NR_fork	2 | ||||
| #define __NR_read	3 | ||||
| #define __NR_write	4 | ||||
| #define __NR_open	5 | ||||
| #define __NR_close	6 | ||||
| #define __NR_waitpid	7 | ||||
| #define __NR_creat	8 | ||||
| #define __NR_link	9 | ||||
| #define __NR_unlink	10 | ||||
| #define __NR_execve	11 | ||||
| #define __NR_chdir	12 | ||||
| #define __NR_time	13 | ||||
| #define __NR_mknod	14 | ||||
| #define __NR_chmod	15 | ||||
| #define __NR_chown	16 | ||||
| #define __NR_break	17 | ||||
| #define __NR_stat	18 | ||||
| #define __NR_lseek	19 | ||||
| #define __NR_getpid	20 | ||||
| #define __NR_mount	21 | ||||
| #define __NR_umount	22 | ||||
| #define __NR_setuid	23 | ||||
| #define __NR_getuid	24 | ||||
| #define __NR_stime	25 | ||||
| #define __NR_ptrace	26 | ||||
| #define __NR_alarm	27 | ||||
| #define __NR_fstat	28 | ||||
| #define __NR_pause	29 | ||||
| #define __NR_utime	30 | ||||
| #define __NR_stty	31 | ||||
| #define __NR_gtty	32 | ||||
| #define __NR_access	33 | ||||
| #define __NR_nice	34 | ||||
| #define __NR_ftime	35 | ||||
| #define __NR_sync	36 | ||||
| #define __NR_kill	37 | ||||
| #define __NR_rename	38 | ||||
| #define __NR_mkdir	39 | ||||
| #define __NR_rmdir	40 | ||||
| #define __NR_dup	41 | ||||
| #define __NR_pipe	42 | ||||
| #define __NR_times	43 | ||||
| #define __NR_prof	44 | ||||
| #define __NR_brk	45 | ||||
| #define __NR_setgid	46 | ||||
| #define __NR_getgid	47 | ||||
| #define __NR_signal	48 | ||||
| #define __NR_geteuid	49 | ||||
| #define __NR_getegid	50 | ||||
| #define __NR_acct	51 | ||||
| #define __NR_phys	52 | ||||
| #define __NR_lock	53 | ||||
| #define __NR_ioctl	54 | ||||
| #define __NR_fcntl	55 | ||||
| #define __NR_mpx	56 | ||||
| #define __NR_setpgid	57 | ||||
| #define __NR_ulimit	58 | ||||
| #define __NR_uname	59 | ||||
| #define __NR_umask	60 | ||||
| #define __NR_chroot	61 | ||||
| #define __NR_ustat	62 | ||||
| #define __NR_dup2	63 | ||||
| #define __NR_getppid	64 | ||||
| #define __NR_getpgrp	65 | ||||
| #define __NR_setsid	66 | ||||
| #define __NR_sigaction	67 | ||||
| #define __NR_sgetmask	68 | ||||
| #define __NR_ssetmask	69 | ||||
| #define __NR_setreuid	70 | ||||
| #define __NR_setregid	71 | ||||
| #define __NR_sigsuspend	72 | ||||
| #define __NR_sigpending	73 | ||||
| #define __NR_sethostname 74 | ||||
| #define __NR_setrlimit	75 | ||||
| #define __NR_getrlimit	76 | ||||
| #define __NR_getrusage	77 | ||||
| #define __NR_gettimeofday	78 | ||||
| #define __NR_settimeofday	79 | ||||
| #define __NR_getgroups	80 | ||||
| #define __NR_setgroups  81 | ||||
| #define __NR_select	82 | ||||
| #define __NR_symlink	83 | ||||
| #define __NR_lstat	84 | ||||
| #define __NR_readlink	85 | ||||
| #define __NR_uselib	86 | ||||
| #define __NR_execve2 87 | ||||
| #define __NR_getdents 88 | ||||
| #define __NR_pipe2  89 | ||||
| #define __NR_sleep  90 | ||||
| #define __NR_getcwd  91 | ||||
| #define __NR_create_thread 92 | ||||
| #define __NR_endthread 93 | ||||
| #define __NR_syspthread_join 94 | ||||
| 
 | ||||
| #define _syscall0(type,name) \ | ||||
| type name(void) \ | ||||
| { \ | ||||
| long __res; \ | ||||
| __asm__ volatile ("int $0x80" \ | ||||
| 	: "=a" (__res) \ | ||||
| 	: "0" (__NR_##name)); \ | ||||
| if (__res >= 0) \ | ||||
| 	return (type) __res; \ | ||||
| errno = -__res; \ | ||||
| return -1; \ | ||||
| } | ||||
| 
 | ||||
| #define _syscall1(type,name,atype,a) \ | ||||
| type name(atype a) \ | ||||
| { \ | ||||
| long __res; \ | ||||
| __asm__ volatile ("int $0x80" \ | ||||
| 	: "=a" (__res) \ | ||||
| 	: "0" (__NR_##name),"b" ((long)(a))); \ | ||||
| if (__res >= 0) \ | ||||
| 	return (type) __res; \ | ||||
| errno = -__res; \ | ||||
| return -1; \ | ||||
| } | ||||
| 
 | ||||
| #define _syscall2(type,name,atype,a,btype,b) \ | ||||
| type name(atype a,btype b) \ | ||||
| { \ | ||||
| long __res; \ | ||||
| __asm__ volatile ("int $0x80" \ | ||||
| 	: "=a" (__res) \ | ||||
| 	: "0" (__NR_##name),"b" ((long)(a)),"c" ((long)(b))); \ | ||||
| if (__res >= 0) \ | ||||
| 	return (type) __res; \ | ||||
| errno = -__res; \ | ||||
| return -1; \ | ||||
| } | ||||
| 
 | ||||
| #define _syscall3(type,name,atype,a,btype,b,ctype,c) \ | ||||
| type name(atype a,btype b,ctype c) \ | ||||
| { \ | ||||
| long __res; \ | ||||
| __asm__ volatile ("int $0x80" \ | ||||
| 	: "=a" (__res) \ | ||||
| 	: "0" (__NR_##name),"b" ((long)(a)),"c" ((long)(b)),"d" ((long)(c))); \ | ||||
| if (__res>=0) \ | ||||
| 	return (type) __res; \ | ||||
| errno=-__res; \ | ||||
| return -1; \ | ||||
| } | ||||
| 
 | ||||
| #endif /* __LIBRARY__ */ | ||||
| 
 | ||||
| extern int errno; | ||||
| 
 | ||||
| int access(const char * filename, mode_t mode); | ||||
| int acct(const char * filename); | ||||
| int alarm(int sec); | ||||
| int brk(void * end_data_segment); | ||||
| void * sbrk(ptrdiff_t increment); | ||||
| int chdir(const char * filename); | ||||
| int chmod(const char * filename, mode_t mode); | ||||
| int chown(const char * filename, uid_t owner, gid_t group); | ||||
| int chroot(const char * filename); | ||||
| int close(int fildes); | ||||
| int creat(const char * filename, mode_t mode); | ||||
| int dup(int fildes); | ||||
| int execve(const char * filename, char ** argv, char ** envp); | ||||
| int execv(const char * pathname, char ** argv); | ||||
| int execvp(const char * file, char ** argv); | ||||
| int execl(const char * pathname, char * arg0, ...); | ||||
| int execlp(const char * file, char * arg0, ...); | ||||
| int execle(const char * pathname, char * arg0, ...); | ||||
| volatile void exit(int status); | ||||
| volatile void _exit(int status); | ||||
| int fcntl(int fildes, int cmd, ...); | ||||
| int fork(void); | ||||
| int getpid(void); | ||||
| int getuid(void); | ||||
| int geteuid(void); | ||||
| int getgid(void); | ||||
| int getegid(void); | ||||
| int ioctl(int fildes, int cmd, ...); | ||||
| int kill(pid_t pid, int signal); | ||||
| int link(const char * filename1, const char * filename2); | ||||
| int lseek(int fildes, off_t offset, int origin); | ||||
| int mknod(const char * filename, mode_t mode, dev_t dev); | ||||
| int mount(const char * specialfile, const char * dir, int rwflag); | ||||
| int nice(int val); | ||||
| int open(const char * filename, int flag, ...); | ||||
| int pause(void); | ||||
| int pipe(int * fildes); | ||||
| int read(int fildes, char * buf, off_t count); | ||||
| int setpgrp(void); | ||||
| int setpgid(pid_t pid,pid_t pgid); | ||||
| int setuid(uid_t uid); | ||||
| int setgid(gid_t gid); | ||||
| void (*signal(int sig, void (*fn)(int)))(int); | ||||
| int stat(const char * filename, struct stat * stat_buf); | ||||
| int fstat(int fildes, struct stat * stat_buf); | ||||
| int stime(time_t * tptr); | ||||
| int sync(void); | ||||
| time_t time(time_t * tloc); | ||||
| time_t times(struct tms * tbuf); | ||||
| int ulimit(int cmd, long limit); | ||||
| mode_t umask(mode_t mask); | ||||
| int umount(const char * specialfile); | ||||
| int uname(struct utsname * name); | ||||
| int unlink(const char * filename); | ||||
| int ustat(dev_t dev, struct ustat * ubuf); | ||||
| int utime(const char * filename, struct utimbuf * times); | ||||
| pid_t waitpid(pid_t pid,int * wait_stat,int options); | ||||
| pid_t wait(int * wait_stat); | ||||
| int write(int fildes, const char * buf, off_t count); | ||||
| int dup2(int oldfd, int newfd); | ||||
| int getppid(void); | ||||
| pid_t getpgrp(void); | ||||
| pid_t setsid(void); | ||||
| 
 | ||||
| #define __always_inline inline __attribute__((always_inline)) | ||||
| 
 | ||||
| #endif | ||||
					Loading…
					
					
				
		Reference in new issue