root/include/unistd.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   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>
  57 
  58 #ifdef __LIBRARY__
  59 
  60 #define __NR_setup      0       /* used only by init, to get system going */
  61 #define __NR_exit       1
  62 #define __NR_fork       2
  63 #define __NR_read       3
  64 #define __NR_write      4
  65 #define __NR_open       5
  66 #define __NR_close      6
  67 #define __NR_waitpid    7
  68 #define __NR_creat      8
  69 #define __NR_link       9
  70 #define __NR_unlink     10
  71 #define __NR_execve     11
  72 #define __NR_chdir      12
  73 #define __NR_time       13
  74 #define __NR_mknod      14
  75 #define __NR_chmod      15
  76 #define __NR_chown      16
  77 #define __NR_break      17
  78 #define __NR_stat       18
  79 #define __NR_lseek      19
  80 #define __NR_getpid     20
  81 #define __NR_mount      21
  82 #define __NR_umount     22
  83 #define __NR_setuid     23
  84 #define __NR_getuid     24
  85 #define __NR_stime      25
  86 #define __NR_ptrace     26
  87 #define __NR_alarm      27
  88 #define __NR_fstat      28
  89 #define __NR_pause      29
  90 #define __NR_utime      30
  91 #define __NR_stty       31
  92 #define __NR_gtty       32
  93 #define __NR_access     33
  94 #define __NR_nice       34
  95 #define __NR_ftime      35
  96 #define __NR_sync       36
  97 #define __NR_kill       37
  98 #define __NR_rename     38
  99 #define __NR_mkdir      39
 100 #define __NR_rmdir      40
 101 #define __NR_dup        41
 102 #define __NR_pipe       42
 103 #define __NR_times      43
 104 #define __NR_prof       44
 105 #define __NR_brk        45
 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
 111 #define __NR_acct       51
 112 #define __NR_phys       52
 113 #define __NR_lock       53
 114 #define __NR_ioctl      54
 115 #define __NR_fcntl      55
 116 #define __NR_mpx        56
 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
 123 #define __NR_dup2       63
 124 #define __NR_getppid    64
 125 #define __NR_getpgrp    65
 126 #define __NR_setsid     66
 127 #define __NR_sigaction  67
 128 
 129 #define _syscall0(type,name) \
 130 type name(void) \
 131 { \
 132 type __res; \
 133 __asm__ volatile ("int $0x80" \
 134         : "=a" (__res) \
 135         : "0" (__NR_##name)); \
 136 if (__res >= 0) \
 137         return __res; \
 138 errno = -__res; \
 139 return -1; \
 140 }
 141 
 142 #define _syscall1(type,name,atype,a) \
 143 type name(atype a) \
 144 { \
 145 type __res; \
 146 __asm__ volatile ("int $0x80" \
 147         : "=a" (__res) \
 148         : "0" (__NR_##name),"b" (a)); \
 149 if (__res >= 0) \
 150         return __res; \
 151 errno = -__res; \
 152 return -1; \
 153 }
 154 
 155 #define _syscall2(type,name,atype,a,btype,b) \
 156 type name(atype a,btype b) \
 157 { \
 158 type __res; \
 159 __asm__ volatile ("int $0x80" \
 160         : "=a" (__res) \
 161         : "0" (__NR_##name),"b" (a),"c" (b)); \
 162 if (__res >= 0) \
 163         return __res; \
 164 errno = -__res; \
 165 return -1; \
 166 }
 167 
 168 #define _syscall3(type,name,atype,a,btype,b,ctype,c) \
 169 type name(atype a,btype b,ctype c) \
 170 { \
 171 type __res; \
 172 __asm__ volatile ("int $0x80" \
 173         : "=a" (__res) \
 174         : "0" (__NR_##name),"b" (a),"c" (b),"d" (c)); \
 175 if (__res<0) \
 176         errno=-__res , __res = -1; \
 177 return __res;\
 178 }
 179 
 180 #endif /* __LIBRARY__ */
 181 
 182 extern int errno;
 183 
 184 int access(const char * filename, mode_t mode);
 185 int acct(const char * filename);
 186 int alarm(int sec);
 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);
 195 int dup(int fildes);
 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, ...);
 205 int fork(void);
 206 int getpid(void);
 207 int getuid(void);
 208 int geteuid(void);
 209 int getgid(void);
 210 int getegid(void);
 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);
 217 int nice(int val);
 218 int open(const char * filename, int flag, ...);
 219 int pause(void);
 220 int pipe(int * fildes);
 221 int read(int fildes, char * buf, off_t count);
 222 int setpgrp(void);
 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);
 230 int sync(void);
 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);
 244 int getppid(void);
 245 pid_t getpgrp(void);
 246 pid_t setsid(void);
 247 
 248 #endif

/* [previous][next][first][last][top][bottom][index][help] */