home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-m32r / unistd.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  13.0 KB  |  475 lines

  1. #ifndef _ASM_M32R_UNISTD_H
  2. #define _ASM_M32R_UNISTD_H
  3.  
  4. /* $Id$ */
  5.  
  6. #include <asm/syscall.h>    /* SYSCALL_* */
  7.  
  8. /*
  9.  * This file contains the system call numbers.
  10.  */
  11.  
  12. #define __NR_restart_syscall      0
  13. #define __NR_exit          1
  14. #define __NR_fork          2
  15. #define __NR_read          3
  16. #define __NR_write          4
  17. #define __NR_open          5
  18. #define __NR_close          6
  19. #define __NR_waitpid          7
  20. #define __NR_creat          8
  21. #define __NR_link          9
  22. #define __NR_unlink         10
  23. #define __NR_execve         11
  24. #define __NR_chdir         12
  25. #define __NR_time         13
  26. #define __NR_mknod         14
  27. #define __NR_chmod         15
  28. /* 16 is unused */
  29. /* 17 is unused */
  30. /* 18 is unused */
  31. #define __NR_lseek         19
  32. #define __NR_getpid         20
  33. #define __NR_mount         21
  34. #define __NR_umount         22
  35. /* 23 is unused */
  36. /* 24 is unused */
  37. #define __NR_stime         25
  38. #define __NR_ptrace         26
  39. #define __NR_alarm         27
  40. /* 28 is unused */
  41. #define __NR_pause         29
  42. #define __NR_utime         30
  43. /* 31 is unused */
  44. #define __NR_cachectl         32 /* old #define __NR_gtty         32*/
  45. #define __NR_access         33
  46. /* 34 is unused */
  47. /* 35 is unused */
  48. #define __NR_sync         36
  49. #define __NR_kill         37
  50. #define __NR_rename         38
  51. #define __NR_mkdir         39
  52. #define __NR_rmdir         40
  53. #define __NR_dup         41
  54. #define __NR_pipe         42
  55. #define __NR_times         43
  56. /* 44 is unused */
  57. #define __NR_brk         45
  58. /* 46 is unused */
  59. /* 47 is unused (getgid16) */
  60. /* 48 is unused */
  61. /* 49 is unused */
  62. /* 50 is unused */
  63. #define __NR_acct         51
  64. #define __NR_umount2         52
  65. /* 53 is unused */
  66. #define __NR_ioctl         54
  67. /* 55 is unused (fcntl) */
  68. /* 56 is unused */
  69. #define __NR_setpgid         57
  70. /* 58 is unused */
  71. /* 59 is unused */
  72. #define __NR_umask         60
  73. #define __NR_chroot         61
  74. #define __NR_ustat         62
  75. #define __NR_dup2         63
  76. #define __NR_getppid         64
  77. #define __NR_getpgrp         65
  78. #define __NR_setsid         66
  79. /* 67 is unused */
  80. /* 68 is unused*/
  81. /* 69 is unused*/
  82. /* 70 is unused */
  83. /* 71 is unused */
  84. /* 72 is unused */
  85. /* 73 is unused */
  86. #define __NR_sethostname     74
  87. #define __NR_setrlimit         75
  88. /* 76 is unused (old getrlimit) */
  89. #define __NR_getrusage         77
  90. #define __NR_gettimeofday     78
  91. #define __NR_settimeofday     79
  92. /* 80 is unused */
  93. /* 81 is unused */
  94. /* 82 is unused */
  95. #define __NR_symlink         83
  96. /* 84 is unused */
  97. #define __NR_readlink         85
  98. #define __NR_uselib         86
  99. #define __NR_swapon         87
  100. #define __NR_reboot         88
  101. /* 89 is unused */
  102. /* 90 is unused */
  103. #define __NR_munmap         91
  104. #define __NR_truncate         92
  105. #define __NR_ftruncate         93
  106. #define __NR_fchmod         94
  107. /* 95 is unused */
  108. #define __NR_getpriority     96
  109. #define __NR_setpriority     97
  110. /* 98 is unused */
  111. #define __NR_statfs         99
  112. #define __NR_fstatfs        100
  113. /* 101 is unused */
  114. #define __NR_socketcall        102
  115. #define __NR_syslog        103
  116. #define __NR_setitimer        104
  117. #define __NR_getitimer        105
  118. #define __NR_stat        106
  119. #define __NR_lstat        107
  120. #define __NR_fstat        108
  121. /* 109 is unused */
  122. /* 110 is unused */
  123. #define __NR_vhangup        111
  124. /* 112 is unused */
  125. /* 113 is unused */
  126. #define __NR_wait4        114
  127. #define __NR_swapoff        115
  128. #define __NR_sysinfo        116
  129. #define __NR_ipc        117
  130. #define __NR_fsync        118
  131. /* 119 is unused */
  132. #define __NR_clone        120
  133. #define __NR_setdomainname    121
  134. #define __NR_uname        122
  135. /* 123 is unused */
  136. #define __NR_adjtimex        124
  137. #define __NR_mprotect        125
  138. /* 126 is unused */
  139. /* 127 is unused */
  140. #define __NR_init_module    128
  141. #define __NR_delete_module    129
  142. /* 130 is unused */
  143. #define __NR_quotactl        131
  144. #define __NR_getpgid        132
  145. #define __NR_fchdir        133
  146. #define __NR_bdflush        134
  147. #define __NR_sysfs        135
  148. #define __NR_personality    136
  149. /* 137 is unused */
  150. /* 138 is unused */
  151. /* 139 is unused */
  152. #define __NR__llseek        140
  153. #define __NR_getdents        141
  154. #define __NR__newselect        142
  155. #define __NR_flock        143
  156. #define __NR_msync        144
  157. #define __NR_readv        145
  158. #define __NR_writev        146
  159. #define __NR_getsid        147
  160. #define __NR_fdatasync        148
  161. #define __NR__sysctl        149
  162. #define __NR_mlock        150
  163. #define __NR_munlock        151
  164. #define __NR_mlockall        152
  165. #define __NR_munlockall        153
  166. #define __NR_sched_setparam        154
  167. #define __NR_sched_getparam        155
  168. #define __NR_sched_setscheduler        156
  169. #define __NR_sched_getscheduler        157
  170. #define __NR_sched_yield        158
  171. #define __NR_sched_get_priority_max    159
  172. #define __NR_sched_get_priority_min    160
  173. #define __NR_sched_rr_get_interval    161
  174. #define __NR_nanosleep        162
  175. #define __NR_mremap        163
  176. /* 164 is unused */
  177. /* 165 is unused */
  178. #define __NR_tas        166
  179. /* 167 is unused */
  180. #define __NR_poll        168
  181. #define __NR_nfsservctl        169
  182. /* 170 is unused */
  183. /* 171 is unused */
  184. #define __NR_prctl              172
  185. #define __NR_rt_sigreturn    173
  186. #define __NR_rt_sigaction    174
  187. #define __NR_rt_sigprocmask    175
  188. #define __NR_rt_sigpending    176
  189. #define __NR_rt_sigtimedwait    177
  190. #define __NR_rt_sigqueueinfo    178
  191. #define __NR_rt_sigsuspend    179
  192. #define __NR_pread64        180
  193. #define __NR_pwrite64        181
  194. /* 182 is unused */
  195. #define __NR_getcwd        183
  196. #define __NR_capget        184
  197. #define __NR_capset        185
  198. #define __NR_sigaltstack    186
  199. #define __NR_sendfile        187
  200. /* 188 is unused */
  201. /* 189 is unused */
  202. #define __NR_vfork        190
  203. #define __NR_ugetrlimit        191    /* SuS compliant getrlimit */
  204. #define __NR_mmap2        192
  205. #define __NR_truncate64        193
  206. #define __NR_ftruncate64    194
  207. #define __NR_stat64        195
  208. #define __NR_lstat64        196
  209. #define __NR_fstat64        197
  210. #define __NR_lchown32        198
  211. #define __NR_getuid32        199
  212. #define __NR_getgid32        200
  213. #define __NR_geteuid32        201
  214. #define __NR_getegid32        202
  215. #define __NR_setreuid32        203
  216. #define __NR_setregid32        204
  217. #define __NR_getgroups32    205
  218. #define __NR_setgroups32    206
  219. #define __NR_fchown32        207
  220. #define __NR_setresuid32    208
  221. #define __NR_getresuid32    209
  222. #define __NR_setresgid32    210
  223. #define __NR_getresgid32    211
  224. #define __NR_chown32        212
  225. #define __NR_setuid32        213
  226. #define __NR_setgid32        214
  227. #define __NR_setfsuid32        215
  228. #define __NR_setfsgid32        216
  229. #define __NR_pivot_root        217
  230. #define __NR_mincore        218
  231. #define __NR_madvise        219
  232. #define __NR_getdents64        220
  233. #define __NR_fcntl64        221
  234. /* 222 is unused */
  235. /* 223 is unused */
  236. #define __NR_gettid        224
  237. #define __NR_readahead        225
  238. #define __NR_setxattr        226
  239. #define __NR_lsetxattr        227
  240. #define __NR_fsetxattr        228
  241. #define __NR_getxattr        229
  242. #define __NR_lgetxattr        230
  243. #define __NR_fgetxattr        231
  244. #define __NR_listxattr        232
  245. #define __NR_llistxattr        233
  246. #define __NR_flistxattr        234
  247. #define __NR_removexattr    235
  248. #define __NR_lremovexattr    236
  249. #define __NR_fremovexattr    237
  250. #define __NR_tkill        238
  251. #define __NR_sendfile64        239
  252. #define __NR_futex        240
  253. #define __NR_sched_setaffinity    241
  254. #define __NR_sched_getaffinity    242
  255. #define __NR_set_thread_area    243
  256. #define __NR_get_thread_area    244
  257. #define __NR_io_setup        245
  258. #define __NR_io_destroy        246
  259. #define __NR_io_getevents    247
  260. #define __NR_io_submit        248
  261. #define __NR_io_cancel        249
  262. #define __NR_fadvise64        250
  263. /* 251 is unused */
  264. #define __NR_exit_group        252
  265. #define __NR_lookup_dcookie    253
  266. #define __NR_epoll_create    254
  267. #define __NR_epoll_ctl        255
  268. #define __NR_epoll_wait        256
  269. #define __NR_remap_file_pages    257
  270. #define __NR_set_tid_address    258
  271. #define __NR_timer_create    259
  272. #define __NR_timer_settime    (__NR_timer_create+1)
  273. #define __NR_timer_gettime    (__NR_timer_create+2)
  274. #define __NR_timer_getoverrun    (__NR_timer_create+3)
  275. #define __NR_timer_delete    (__NR_timer_create+4)
  276. #define __NR_clock_settime    (__NR_timer_create+5)
  277. #define __NR_clock_gettime    (__NR_timer_create+6)
  278. #define __NR_clock_getres    (__NR_timer_create+7)
  279. #define __NR_clock_nanosleep    (__NR_timer_create+8)
  280. #define __NR_statfs64        268
  281. #define __NR_fstatfs64        269
  282. #define __NR_tgkill        270
  283. #define __NR_utimes        271
  284. #define __NR_fadvise64_64    272
  285. #define __NR_vserver        273
  286. #define __NR_mbind        274
  287. #define __NR_get_mempolicy    275
  288. #define __NR_set_mempolicy    276
  289. #define __NR_mq_open        277
  290. #define __NR_mq_unlink        (__NR_mq_open+1)
  291. #define __NR_mq_timedsend    (__NR_mq_open+2)
  292. #define __NR_mq_timedreceive    (__NR_mq_open+3)
  293. #define __NR_mq_notify        (__NR_mq_open+4)
  294. #define __NR_mq_getsetattr    (__NR_mq_open+5)
  295. #define __NR_kexec_load        283
  296. #define __NR_waitid        284
  297.  
  298. #ifdef __KERNEL__
  299.  
  300. #define NR_syscalls 285
  301.  
  302. /* user-visible error numbers are in the range -1 - -124: see
  303.  * <asm-m32r/errno.h>
  304.  */
  305.  
  306. #define __syscall_return(type, res) \
  307. do { \
  308.     if ((unsigned long)(res) >= (unsigned long)(-(124 + 1))) { \
  309.     /* Avoid using "res" which is declared to be in register r0; \
  310.        errno might expand to a function call and clobber it.  */ \
  311.         int __err = -(res); \
  312.         errno = __err; \
  313.         res = -1; \
  314.     } \
  315.     return (type) (res); \
  316. } while (0)
  317.  
  318. #define _syscall0(type,name) \
  319. type name(void) \
  320. { \
  321. register long __scno __asm__ ("r7") = __NR_##name; \
  322. register long __res __asm__("r0"); \
  323. __asm__ __volatile__ (\
  324.     "trap #" SYSCALL_VECTOR "|| nop"\
  325.     : "=r" (__res) \
  326.     : "r" (__scno) \
  327.     : "memory"); \
  328. __syscall_return(type,__res); \
  329. }
  330.  
  331. #define _syscall1(type,name,type1,arg1) \
  332. type name(type1 arg1) \
  333. { \
  334. register long __scno __asm__ ("r7") = __NR_##name; \
  335. register long __res __asm__ ("r0") = (long)(arg1); \
  336. __asm__ __volatile__ (\
  337.     "trap #" SYSCALL_VECTOR "|| nop"\
  338.     : "=r" (__res) \
  339.     : "r" (__scno), "0" (__res) \
  340.     : "memory"); \
  341. __syscall_return(type,__res); \
  342. }
  343.  
  344. #define _syscall2(type,name,type1,arg1,type2,arg2) \
  345. type name(type1 arg1,type2 arg2) \
  346. { \
  347. register long __scno __asm__ ("r7") = __NR_##name; \
  348. register long __arg2 __asm__ ("r1") = (long)(arg2); \
  349. register long __res __asm__ ("r0") = (long)(arg1); \
  350. __asm__ __volatile__ (\
  351.     "trap #" SYSCALL_VECTOR "|| nop"\
  352.     : "=r" (__res) \
  353.     : "r" (__scno), "0" (__res), "r" (__arg2) \
  354.     : "memory"); \
  355. __syscall_return(type,__res); \
  356. }
  357.  
  358. #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
  359. type name(type1 arg1,type2 arg2,type3 arg3) \
  360. { \
  361. register long __scno __asm__ ("r7") = __NR_##name; \
  362. register long __arg3 __asm__ ("r2") = (long)(arg3); \
  363. register long __arg2 __asm__ ("r1") = (long)(arg2); \
  364. register long __res __asm__ ("r0") = (long)(arg1); \
  365. __asm__ __volatile__ (\
  366.     "trap #" SYSCALL_VECTOR "|| nop"\
  367.     : "=r" (__res) \
  368.     : "r" (__scno), "0" (__res), "r" (__arg2), \
  369.         "r" (__arg3) \
  370.     : "memory"); \
  371. __syscall_return(type,__res); \
  372. }
  373.  
  374. #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
  375. type name(type1 arg1,type2 arg2,type3 arg3,type4 arg4) \
  376. { \
  377. register long __scno __asm__ ("r7") = __NR_##name; \
  378. register long __arg4 __asm__ ("r3") = (long)(arg4); \
  379. register long __arg3 __asm__ ("r2") = (long)(arg3); \
  380. register long __arg2 __asm__ ("r1") = (long)(arg2); \
  381. register long __res __asm__ ("r0") = (long)(arg1); \
  382. __asm__ __volatile__ (\
  383.     "trap #" SYSCALL_VECTOR "|| nop"\
  384.     : "=r" (__res) \
  385.     : "r" (__scno), "0" (__res), "r" (__arg2), \
  386.         "r" (__arg3), "r" (__arg4) \
  387.     : "memory"); \
  388. __syscall_return(type,__res); \
  389. }
  390.  
  391. #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
  392.     type5,arg5) \
  393. type name(type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
  394. { \
  395. register long __scno __asm__ ("r7") = __NR_##name; \
  396. register long __arg5 __asm__ ("r4") = (long)(arg5); \
  397. register long __arg4 __asm__ ("r3") = (long)(arg4); \
  398. register long __arg3 __asm__ ("r2") = (long)(arg3); \
  399. register long __arg2 __asm__ ("r1") = (long)(arg2); \
  400. register long __res __asm__ ("r0") = (long)(arg1); \
  401. __asm__ __volatile__ (\
  402.     "trap #" SYSCALL_VECTOR "|| nop"\
  403.     : "=r" (__res) \
  404.     : "r" (__scno), "0" (__res), "r" (__arg2), \
  405.         "r" (__arg3), "r" (__arg4), "r" (__arg5) \
  406.     : "memory"); \
  407. __syscall_return(type,__res); \
  408. }
  409.  
  410. #define __ARCH_WANT_IPC_PARSE_VERSION
  411. #define __ARCH_WANT_STAT64
  412. #define __ARCH_WANT_SYS_ALARM
  413. #define __ARCH_WANT_SYS_GETHOSTNAME
  414. #define __ARCH_WANT_SYS_PAUSE
  415. #define __ARCH_WANT_SYS_TIME
  416. #define __ARCH_WANT_SYS_UTIME
  417. #define __ARCH_WANT_SYS_WAITPID
  418. #define __ARCH_WANT_SYS_SOCKETCALL
  419. #define __ARCH_WANT_SYS_FADVISE64
  420. #define __ARCH_WANT_SYS_GETPGRP
  421. #define __ARCH_WANT_SYS_LLSEEK
  422. #define __ARCH_WANT_SYS_OLD_GETRLIMIT /*will be unused*/
  423. #define __ARCH_WANT_SYS_OLDUMOUNT
  424. #define __ARCH_WANT_SYS_RT_SIGACTION
  425.  
  426. #ifdef __KERNEL_SYSCALLS__
  427.  
  428. #include <linux/compiler.h>
  429. #include <linux/types.h>
  430. #include <linux/linkage.h>
  431. #include <asm/ptrace.h>
  432.  
  433. /*
  434.  * we need this inline - forking from kernel space will result
  435.  * in NO COPY ON WRITE (!!!), until an execve is executed. This
  436.  * is no problem, but for the stack. This is handled by not letting
  437.  * main() use the stack at all after fork(). Thus, no function
  438.  * calls - which means inline code for fork too, as otherwise we
  439.  * would use the stack upon exit from 'fork()'.
  440.  *
  441.  * Actually only pause and fork are needed inline, so that there
  442.  * won't be any messing with the stack from main(), but we define
  443.  * some others too.
  444.  */
  445. static __inline__ _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
  446.  
  447. asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
  448.               unsigned long prot, unsigned long flags,
  449.               unsigned long fd, unsigned long pgoff);
  450. asmlinkage int sys_execve(struct pt_regs regs);
  451. asmlinkage int sys_clone(struct pt_regs regs);
  452. asmlinkage int sys_fork(struct pt_regs regs);
  453. asmlinkage int sys_vfork(struct pt_regs regs);
  454. asmlinkage int sys_pipe(unsigned long __user *fildes);
  455. struct sigaction;
  456. asmlinkage long sys_rt_sigaction(int sig,
  457.                  const struct sigaction __user *act,
  458.                  struct sigaction __user *oact,
  459.                  size_t sigsetsize);
  460.  
  461. #endif /* __KERNEL_SYSCALLS__ */
  462.  
  463. /*
  464.  * "Conditional" syscalls
  465.  *
  466.  * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
  467.  * but it doesn't work on all toolchains, so we just do it by hand
  468.  */
  469. #ifndef cond_syscall
  470. #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
  471. #endif
  472.  
  473. #endif /* __KERNEL__ */
  474. #endif /* _ASM_M32R_UNISTD_H */
  475.