root/include/asm-i386/unistd.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. _syscall0

   1 #ifndef _ASM_I386_UNISTD_H_
   2 #define _ASM_I386_UNISTD_H_
   3 
   4 /*
   5  * This file contains the system call numbers.
   6  */
   7 
   8 #define __NR_setup                0     /* used only by init, to get system going */
   9 #define __NR_exit                 1
  10 #define __NR_fork                 2
  11 #define __NR_read                 3
  12 #define __NR_write                4
  13 #define __NR_open                 5
  14 #define __NR_close                6
  15 #define __NR_waitpid              7
  16 #define __NR_creat                8
  17 #define __NR_link                 9
  18 #define __NR_unlink              10
  19 #define __NR_execve              11
  20 #define __NR_chdir               12
  21 #define __NR_time                13
  22 #define __NR_mknod               14
  23 #define __NR_chmod               15
  24 #define __NR_chown               16
  25 #define __NR_break               17
  26 #define __NR_oldstat             18
  27 #define __NR_lseek               19
  28 #define __NR_getpid              20
  29 #define __NR_mount               21
  30 #define __NR_umount              22
  31 #define __NR_setuid              23
  32 #define __NR_getuid              24
  33 #define __NR_stime               25
  34 #define __NR_ptrace              26
  35 #define __NR_alarm               27
  36 #define __NR_oldfstat            28
  37 #define __NR_pause               29
  38 #define __NR_utime               30
  39 #define __NR_stty                31
  40 #define __NR_gtty                32
  41 #define __NR_access              33
  42 #define __NR_nice                34
  43 #define __NR_ftime               35
  44 #define __NR_sync                36
  45 #define __NR_kill                37
  46 #define __NR_rename              38
  47 #define __NR_mkdir               39
  48 #define __NR_rmdir               40
  49 #define __NR_dup                 41
  50 #define __NR_pipe                42
  51 #define __NR_times               43
  52 #define __NR_prof                44
  53 #define __NR_brk                 45
  54 #define __NR_setgid              46
  55 #define __NR_getgid              47
  56 #define __NR_signal              48
  57 #define __NR_geteuid             49
  58 #define __NR_getegid             50
  59 #define __NR_acct                51
  60 #define __NR_phys                52
  61 #define __NR_lock                53
  62 #define __NR_ioctl               54
  63 #define __NR_fcntl               55
  64 #define __NR_mpx                 56
  65 #define __NR_setpgid             57
  66 #define __NR_ulimit              58
  67 #define __NR_oldolduname         59
  68 #define __NR_umask               60
  69 #define __NR_chroot              61
  70 #define __NR_ustat               62
  71 #define __NR_dup2                63
  72 #define __NR_getppid             64
  73 #define __NR_getpgrp             65
  74 #define __NR_setsid              66
  75 #define __NR_sigaction           67
  76 #define __NR_sgetmask            68
  77 #define __NR_ssetmask            69
  78 #define __NR_setreuid            70
  79 #define __NR_setregid            71
  80 #define __NR_sigsuspend          72
  81 #define __NR_sigpending          73
  82 #define __NR_sethostname         74
  83 #define __NR_setrlimit           75
  84 #define __NR_getrlimit           76
  85 #define __NR_getrusage           77
  86 #define __NR_gettimeofday        78
  87 #define __NR_settimeofday        79
  88 #define __NR_getgroups           80
  89 #define __NR_setgroups           81
  90 #define __NR_select              82
  91 #define __NR_symlink             83
  92 #define __NR_oldlstat            84
  93 #define __NR_readlink            85
  94 #define __NR_uselib              86
  95 #define __NR_swapon              87
  96 #define __NR_reboot              88
  97 #define __NR_readdir             89
  98 #define __NR_mmap                90
  99 #define __NR_munmap              91
 100 #define __NR_truncate            92
 101 #define __NR_ftruncate           93
 102 #define __NR_fchmod              94
 103 #define __NR_fchown              95
 104 #define __NR_getpriority         96
 105 #define __NR_setpriority         97
 106 #define __NR_profil              98
 107 #define __NR_statfs              99
 108 #define __NR_fstatfs            100
 109 #define __NR_ioperm             101
 110 #define __NR_socketcall         102
 111 #define __NR_syslog             103
 112 #define __NR_setitimer          104
 113 #define __NR_getitimer          105
 114 #define __NR_stat               106
 115 #define __NR_lstat              107
 116 #define __NR_fstat              108
 117 #define __NR_olduname           109
 118 #define __NR_iopl               110
 119 #define __NR_vhangup            111
 120 #define __NR_idle               112
 121 #define __NR_vm86               113
 122 #define __NR_wait4              114
 123 #define __NR_swapoff            115
 124 #define __NR_sysinfo            116
 125 #define __NR_ipc                117
 126 #define __NR_fsync              118
 127 #define __NR_sigreturn          119
 128 #define __NR_clone              120
 129 #define __NR_setdomainname      121
 130 #define __NR_uname              122
 131 #define __NR_modify_ldt         123
 132 #define __NR_adjtimex           124
 133 #define __NR_mprotect           125
 134 #define __NR_sigprocmask        126
 135 #define __NR_create_module      127
 136 #define __NR_init_module        128
 137 #define __NR_delete_module      129
 138 #define __NR_get_kernel_syms    130
 139 #define __NR_quotactl           131
 140 #define __NR_getpgid            132
 141 #define __NR_fchdir             133
 142 #define __NR_bdflush            134
 143 #define __NR_sysfs              135
 144 #define __NR_personality        136
 145 #define __NR_afs_syscall        137 /* Syscall for Andrew File System */
 146 #define __NR_setfsuid           138
 147 #define __NR_setfsgid           139
 148 #define __NR__llseek            140
 149 #define __NR_getdents           141
 150 #define __NR__newselect         142
 151 #define __NR_flock              143
 152 #define __NR_msync              144
 153 
 154 /* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
 155 #define _syscall0(type,name) \
 156 type name(void) \
 157 { \
 158 long __res; \
 159 __asm__ volatile ("int $0x80" \
 160         : "=a" (__res) \
 161         : "0" (__NR_##name)); \
 162 if (__res >= 0) \
 163         return (type) __res; \
 164 errno = -__res; \
 165 return -1; \
 166 }
 167 
 168 #define _syscall1(type,name,type1,arg1) \
 169 type name(type1 arg1) \
 170 { \
 171 long __res; \
 172 __asm__ volatile ("int $0x80" \
 173         : "=a" (__res) \
 174         : "0" (__NR_##name),"b" ((long)(arg1))); \
 175 if (__res >= 0) \
 176         return (type) __res; \
 177 errno = -__res; \
 178 return -1; \
 179 }
 180 
 181 #define _syscall2(type,name,type1,arg1,type2,arg2) \
 182 type name(type1 arg1,type2 arg2) \
 183 { \
 184 long __res; \
 185 __asm__ volatile ("int $0x80" \
 186         : "=a" (__res) \
 187         : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \
 188 if (__res >= 0) \
 189         return (type) __res; \
 190 errno = -__res; \
 191 return -1; \
 192 }
 193 
 194 #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
 195 type name(type1 arg1,type2 arg2,type3 arg3) \
 196 { \
 197 long __res; \
 198 __asm__ volatile ("int $0x80" \
 199         : "=a" (__res) \
 200         : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
 201                   "d" ((long)(arg3))); \
 202 if (__res>=0) \
 203         return (type) __res; \
 204 errno=-__res; \
 205 return -1; \
 206 }
 207 
 208 #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
 209 type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
 210 { \
 211 long __res; \
 212 __asm__ volatile ("int $0x80" \
 213         : "=a" (__res) \
 214         : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
 215           "d" ((long)(arg3)),"S" ((long)(arg4))); \
 216 if (__res>=0) \
 217         return (type) __res; \
 218 errno=-__res; \
 219 return -1; \
 220 } 
 221 
 222 #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
 223           type5,arg5) \
 224 type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
 225 { \
 226 long __res; \
 227 __asm__ volatile ("int $0x80" \
 228         : "=a" (__res) \
 229         : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
 230           "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \
 231 if (__res>=0) \
 232         return (type) __res; \
 233 errno=-__res; \
 234 return -1; \
 235 }
 236 
 237 #ifdef __KERNEL_SYSCALLS__
 238 
 239 /*
 240  * we need this inline - forking from kernel space will result
 241  * in NO COPY ON WRITE (!!!), until an execve is executed. This
 242  * is no problem, but for the stack. This is handled by not letting
 243  * main() use the stack at all after fork(). Thus, no function
 244  * calls - which means inline code for fork too, as otherwise we
 245  * would use the stack upon exit from 'fork()'.
 246  *
 247  * Actually only pause and fork are needed inline, so that there
 248  * won't be any messing with the stack from main(), but we define
 249  * some others too.
 250  */
 251 #define __NR__exit __NR_exit
 252 static inline _syscall0(int,idle)
     /* [previous][next][first][last][top][bottom][index][help] */
 253 static inline _syscall0(int,fork)
 254 static inline _syscall2(int,clone,unsigned long,flags,char *,esp)
 255 static inline _syscall0(int,pause)
 256 static inline _syscall0(int,setup)
 257 static inline _syscall0(int,sync)
 258 static inline _syscall0(pid_t,setsid)
 259 static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
 260 static inline _syscall1(int,dup,int,fd)
 261 static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
 262 static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
 263 static inline _syscall1(int,close,int,fd)
 264 static inline _syscall1(int,_exit,int,exitcode)
 265 static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
 266 
 267 static inline pid_t wait(int * wait_stat)
 268 {
 269         return waitpid(-1,wait_stat,0);
 270 }
 271 
 272 #endif
 273 
 274 #endif /* _ASM_I386_UNISTD_H_ */

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