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-powerpc / unistd.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  14.2 KB  |  505 lines

  1. #ifndef _ASM_PPC_UNISTD_H_
  2. #define _ASM_PPC_UNISTD_H_
  3.  
  4. /*
  5.  * This file contains the system call numbers.
  6.  *
  7.  * This program is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU General Public License
  9.  * as published by the Free Software Foundation; either version
  10.  * 2 of the License, or (at your option) any later version.
  11.  */
  12.  
  13. #define __NR_restart_syscall      0
  14. #define __NR_exit          1
  15. #define __NR_fork          2
  16. #define __NR_read          3
  17. #define __NR_write          4
  18. #define __NR_open          5
  19. #define __NR_close          6
  20. #define __NR_waitpid          7
  21. #define __NR_creat          8
  22. #define __NR_link          9
  23. #define __NR_unlink         10
  24. #define __NR_execve         11
  25. #define __NR_chdir         12
  26. #define __NR_time         13
  27. #define __NR_mknod         14
  28. #define __NR_chmod         15
  29. #define __NR_lchown         16
  30. #define __NR_break         17
  31. #define __NR_oldstat         18
  32. #define __NR_lseek         19
  33. #define __NR_getpid         20
  34. #define __NR_mount         21
  35. #define __NR_umount         22
  36. #define __NR_setuid         23
  37. #define __NR_getuid         24
  38. #define __NR_stime         25
  39. #define __NR_ptrace         26
  40. #define __NR_alarm         27
  41. #define __NR_oldfstat         28
  42. #define __NR_pause         29
  43. #define __NR_utime         30
  44. #define __NR_stty         31
  45. #define __NR_gtty         32
  46. #define __NR_access         33
  47. #define __NR_nice         34
  48. #define __NR_ftime         35
  49. #define __NR_sync         36
  50. #define __NR_kill         37
  51. #define __NR_rename         38
  52. #define __NR_mkdir         39
  53. #define __NR_rmdir         40
  54. #define __NR_dup         41
  55. #define __NR_pipe         42
  56. #define __NR_times         43
  57. #define __NR_prof         44
  58. #define __NR_brk         45
  59. #define __NR_setgid         46
  60. #define __NR_getgid         47
  61. #define __NR_signal         48
  62. #define __NR_geteuid         49
  63. #define __NR_getegid         50
  64. #define __NR_acct         51
  65. #define __NR_umount2         52
  66. #define __NR_lock         53
  67. #define __NR_ioctl         54
  68. #define __NR_fcntl         55
  69. #define __NR_mpx         56
  70. #define __NR_setpgid         57
  71. #define __NR_ulimit         58
  72. #define __NR_oldolduname     59
  73. #define __NR_umask         60
  74. #define __NR_chroot         61
  75. #define __NR_ustat         62
  76. #define __NR_dup2         63
  77. #define __NR_getppid         64
  78. #define __NR_getpgrp         65
  79. #define __NR_setsid         66
  80. #define __NR_sigaction         67
  81. #define __NR_sgetmask         68
  82. #define __NR_ssetmask         69
  83. #define __NR_setreuid         70
  84. #define __NR_setregid         71
  85. #define __NR_sigsuspend         72
  86. #define __NR_sigpending         73
  87. #define __NR_sethostname     74
  88. #define __NR_setrlimit         75
  89. #define __NR_getrlimit         76
  90. #define __NR_getrusage         77
  91. #define __NR_gettimeofday     78
  92. #define __NR_settimeofday     79
  93. #define __NR_getgroups         80
  94. #define __NR_setgroups         81
  95. #define __NR_select         82
  96. #define __NR_symlink         83
  97. #define __NR_oldlstat         84
  98. #define __NR_readlink         85
  99. #define __NR_uselib         86
  100. #define __NR_swapon         87
  101. #define __NR_reboot         88
  102. #define __NR_readdir         89
  103. #define __NR_mmap         90
  104. #define __NR_munmap         91
  105. #define __NR_truncate         92
  106. #define __NR_ftruncate         93
  107. #define __NR_fchmod         94
  108. #define __NR_fchown         95
  109. #define __NR_getpriority     96
  110. #define __NR_setpriority     97
  111. #define __NR_profil         98
  112. #define __NR_statfs         99
  113. #define __NR_fstatfs        100
  114. #define __NR_ioperm        101
  115. #define __NR_socketcall        102
  116. #define __NR_syslog        103
  117. #define __NR_setitimer        104
  118. #define __NR_getitimer        105
  119. #define __NR_stat        106
  120. #define __NR_lstat        107
  121. #define __NR_fstat        108
  122. #define __NR_olduname        109
  123. #define __NR_iopl        110
  124. #define __NR_vhangup        111
  125. #define __NR_idle        112
  126. #define __NR_vm86        113
  127. #define __NR_wait4        114
  128. #define __NR_swapoff        115
  129. #define __NR_sysinfo        116
  130. #define __NR_ipc        117
  131. #define __NR_fsync        118
  132. #define __NR_sigreturn        119
  133. #define __NR_clone        120
  134. #define __NR_setdomainname    121
  135. #define __NR_uname        122
  136. #define __NR_modify_ldt        123
  137. #define __NR_adjtimex        124
  138. #define __NR_mprotect        125
  139. #define __NR_sigprocmask    126
  140. #define __NR_create_module    127
  141. #define __NR_init_module    128
  142. #define __NR_delete_module    129
  143. #define __NR_get_kernel_syms    130
  144. #define __NR_quotactl        131
  145. #define __NR_getpgid        132
  146. #define __NR_fchdir        133
  147. #define __NR_bdflush        134
  148. #define __NR_sysfs        135
  149. #define __NR_personality    136
  150. #define __NR_afs_syscall    137 /* Syscall for Andrew File System */
  151. #define __NR_setfsuid        138
  152. #define __NR_setfsgid        139
  153. #define __NR__llseek        140
  154. #define __NR_getdents        141
  155. #define __NR__newselect        142
  156. #define __NR_flock        143
  157. #define __NR_msync        144
  158. #define __NR_readv        145
  159. #define __NR_writev        146
  160. #define __NR_getsid        147
  161. #define __NR_fdatasync        148
  162. #define __NR__sysctl        149
  163. #define __NR_mlock        150
  164. #define __NR_munlock        151
  165. #define __NR_mlockall        152
  166. #define __NR_munlockall        153
  167. #define __NR_sched_setparam        154
  168. #define __NR_sched_getparam        155
  169. #define __NR_sched_setscheduler        156
  170. #define __NR_sched_getscheduler        157
  171. #define __NR_sched_yield        158
  172. #define __NR_sched_get_priority_max    159
  173. #define __NR_sched_get_priority_min    160
  174. #define __NR_sched_rr_get_interval    161
  175. #define __NR_nanosleep        162
  176. #define __NR_mremap        163
  177. #define __NR_setresuid        164
  178. #define __NR_getresuid        165
  179. #define __NR_query_module    166
  180. #define __NR_poll        167
  181. #define __NR_nfsservctl        168
  182. #define __NR_setresgid        169
  183. #define __NR_getresgid        170
  184. #define __NR_prctl        171
  185. #define __NR_rt_sigreturn    172
  186. #define __NR_rt_sigaction    173
  187. #define __NR_rt_sigprocmask    174
  188. #define __NR_rt_sigpending    175
  189. #define __NR_rt_sigtimedwait    176
  190. #define __NR_rt_sigqueueinfo    177
  191. #define __NR_rt_sigsuspend    178
  192. #define __NR_pread64        179
  193. #define __NR_pwrite64        180
  194. #define __NR_chown        181
  195. #define __NR_getcwd        182
  196. #define __NR_capget        183
  197. #define __NR_capset        184
  198. #define __NR_sigaltstack    185
  199. #define __NR_sendfile        186
  200. #define __NR_getpmsg        187    /* some people actually want streams */
  201. #define __NR_putpmsg        188    /* some people actually want streams */
  202. #define __NR_vfork        189
  203. #define __NR_ugetrlimit        190    /* SuS compliant getrlimit */
  204. #define __NR_readahead        191
  205. #ifndef __powerpc64__            /* these are 32-bit only */
  206. #define __NR_mmap2        192
  207. #define __NR_truncate64        193
  208. #define __NR_ftruncate64    194
  209. #define __NR_stat64        195
  210. #define __NR_lstat64        196
  211. #define __NR_fstat64        197
  212. #endif
  213. #define __NR_pciconfig_read    198
  214. #define __NR_pciconfig_write    199
  215. #define __NR_pciconfig_iobase    200
  216. #define __NR_multiplexer    201
  217. #define __NR_getdents64        202
  218. #define __NR_pivot_root        203
  219. #ifndef __powerpc64__
  220. #define __NR_fcntl64        204
  221. #endif
  222. #define __NR_madvise        205
  223. #define __NR_mincore        206
  224. #define __NR_gettid        207
  225. #define __NR_tkill        208
  226. #define __NR_setxattr        209
  227. #define __NR_lsetxattr        210
  228. #define __NR_fsetxattr        211
  229. #define __NR_getxattr        212
  230. #define __NR_lgetxattr        213
  231. #define __NR_fgetxattr        214
  232. #define __NR_listxattr        215
  233. #define __NR_llistxattr        216
  234. #define __NR_flistxattr        217
  235. #define __NR_removexattr    218
  236. #define __NR_lremovexattr    219
  237. #define __NR_fremovexattr    220
  238. #define __NR_futex        221
  239. #define __NR_sched_setaffinity    222
  240. #define __NR_sched_getaffinity    223
  241. /* 224 currently unused */
  242. #define __NR_tuxcall        225
  243. #ifndef __powerpc64__
  244. #define __NR_sendfile64        226
  245. #endif
  246. #define __NR_io_setup        227
  247. #define __NR_io_destroy        228
  248. #define __NR_io_getevents    229
  249. #define __NR_io_submit        230
  250. #define __NR_io_cancel        231
  251. #define __NR_set_tid_address    232
  252. #define __NR_fadvise64        233
  253. #define __NR_exit_group        234
  254. #define __NR_lookup_dcookie    235
  255. #define __NR_epoll_create    236
  256. #define __NR_epoll_ctl        237
  257. #define __NR_epoll_wait        238
  258. #define __NR_remap_file_pages    239
  259. #define __NR_timer_create    240
  260. #define __NR_timer_settime    241
  261. #define __NR_timer_gettime    242
  262. #define __NR_timer_getoverrun    243
  263. #define __NR_timer_delete    244
  264. #define __NR_clock_settime    245
  265. #define __NR_clock_gettime    246
  266. #define __NR_clock_getres    247
  267. #define __NR_clock_nanosleep    248
  268. #define __NR_swapcontext    249
  269. #define __NR_tgkill        250
  270. #define __NR_utimes        251
  271. #define __NR_statfs64        252
  272. #define __NR_fstatfs64        253
  273. #ifndef __powerpc64__
  274. #define __NR_fadvise64_64    254
  275. #endif
  276. #define __NR_rtas        255
  277. #define __NR_sys_debug_setcontext 256
  278. /* Number 257 is reserved for vserver */
  279. /* 258 currently unused */
  280. #define __NR_mbind        259
  281. #define __NR_get_mempolicy    260
  282. #define __NR_set_mempolicy    261
  283. #define __NR_mq_open        262
  284. #define __NR_mq_unlink        263
  285. #define __NR_mq_timedsend    264
  286. #define __NR_mq_timedreceive    265
  287. #define __NR_mq_notify        266
  288. #define __NR_mq_getsetattr    267
  289. #define __NR_kexec_load        268
  290. #define __NR_add_key        269
  291. #define __NR_request_key    270
  292. #define __NR_keyctl        271
  293. #define __NR_waitid        272
  294. #define __NR_ioprio_set        273
  295. #define __NR_ioprio_get        274
  296. #define __NR_inotify_init    275
  297. #define __NR_inotify_add_watch    276
  298. #define __NR_inotify_rm_watch    277
  299. #define __NR_spu_run        278
  300. #define __NR_spu_create        279
  301. #define __NR_pselect6        280
  302. #define __NR_ppoll        281
  303. #define __NR_unshare        282
  304. #define __NR_splice        283
  305. #define __NR_tee        284
  306. #define __NR_vmsplice        285
  307. #define __NR_openat        286
  308. #define __NR_mkdirat        287
  309. #define __NR_mknodat        288
  310. #define __NR_fchownat        289
  311. #define __NR_futimesat        290
  312. #ifdef __powerpc64__
  313. #define __NR_newfstatat        291
  314. #else
  315. #define __NR_fstatat64        291
  316. #endif
  317. #define __NR_unlinkat        292
  318. #define __NR_renameat        293
  319. #define __NR_linkat        294
  320. #define __NR_symlinkat        295
  321. #define __NR_readlinkat        296
  322. #define __NR_fchmodat        297
  323. #define __NR_faccessat        298
  324. #define __NR_get_robust_list    299
  325. #define __NR_set_robust_list    300
  326.  
  327. #ifdef __KERNEL__
  328.  
  329. #define __NR_syscalls        301
  330.  
  331. #define __NR__exit __NR_exit
  332. #define NR_syscalls    __NR_syscalls
  333.  
  334. #ifndef __ASSEMBLY__
  335.  
  336. /* On powerpc a system call basically clobbers the same registers like a
  337.  * function call, with the exception of LR (which is needed for the
  338.  * "sc; bnslr" sequence) and CR (where only CR0.SO is clobbered to signal
  339.  * an error return status).
  340.  */
  341.  
  342. #define __syscall_nr(nr, type, name, args...)                \
  343.     unsigned long __sc_ret, __sc_err;                \
  344.     {                                \
  345.         register unsigned long __sc_0  __asm__ ("r0");        \
  346.         register unsigned long __sc_3  __asm__ ("r3");        \
  347.         register unsigned long __sc_4  __asm__ ("r4");        \
  348.         register unsigned long __sc_5  __asm__ ("r5");        \
  349.         register unsigned long __sc_6  __asm__ ("r6");        \
  350.         register unsigned long __sc_7  __asm__ ("r7");        \
  351.         register unsigned long __sc_8  __asm__ ("r8");        \
  352.                                     \
  353.         __sc_loadargs_##nr(name, args);                \
  354.         __asm__ __volatile__                    \
  355.             ("sc           \n\t"                \
  356.              "mfcr %0      "                \
  357.             : "=&r" (__sc_0),                \
  358.               "=&r" (__sc_3),  "=&r" (__sc_4),        \
  359.               "=&r" (__sc_5),  "=&r" (__sc_6),        \
  360.               "=&r" (__sc_7),  "=&r" (__sc_8)        \
  361.             : __sc_asm_input_##nr                \
  362.             : "cr0", "ctr", "memory",            \
  363.               "r9", "r10","r11", "r12");            \
  364.         __sc_ret = __sc_3;                    \
  365.         __sc_err = __sc_0;                    \
  366.     }                                \
  367.     if (__sc_err & 0x10000000)                    \
  368.     {                                \
  369.         errno = __sc_ret;                    \
  370.         __sc_ret = -1;                        \
  371.     }                                \
  372.     return (type) __sc_ret
  373.  
  374. #define __sc_loadargs_0(name, dummy...)                    \
  375.     __sc_0 = __NR_##name
  376. #define __sc_loadargs_1(name, arg1)                    \
  377.     __sc_loadargs_0(name);                        \
  378.     __sc_3 = (unsigned long) (arg1)
  379. #define __sc_loadargs_2(name, arg1, arg2)                \
  380.     __sc_loadargs_1(name, arg1);                    \
  381.     __sc_4 = (unsigned long) (arg2)
  382. #define __sc_loadargs_3(name, arg1, arg2, arg3)                \
  383.     __sc_loadargs_2(name, arg1, arg2);                \
  384.     __sc_5 = (unsigned long) (arg3)
  385. #define __sc_loadargs_4(name, arg1, arg2, arg3, arg4)            \
  386.     __sc_loadargs_3(name, arg1, arg2, arg3);            \
  387.     __sc_6 = (unsigned long) (arg4)
  388. #define __sc_loadargs_5(name, arg1, arg2, arg3, arg4, arg5)        \
  389.     __sc_loadargs_4(name, arg1, arg2, arg3, arg4);            \
  390.     __sc_7 = (unsigned long) (arg5)
  391. #define __sc_loadargs_6(name, arg1, arg2, arg3, arg4, arg5, arg6)    \
  392.     __sc_loadargs_5(name, arg1, arg2, arg3, arg4, arg5);        \
  393.     __sc_8 = (unsigned long) (arg6)
  394.  
  395. #define __sc_asm_input_0 "0" (__sc_0)
  396. #define __sc_asm_input_1 __sc_asm_input_0, "1" (__sc_3)
  397. #define __sc_asm_input_2 __sc_asm_input_1, "2" (__sc_4)
  398. #define __sc_asm_input_3 __sc_asm_input_2, "3" (__sc_5)
  399. #define __sc_asm_input_4 __sc_asm_input_3, "4" (__sc_6)
  400. #define __sc_asm_input_5 __sc_asm_input_4, "5" (__sc_7)
  401. #define __sc_asm_input_6 __sc_asm_input_5, "6" (__sc_8)
  402.  
  403. #define _syscall0(type,name)                        \
  404. type name(void)                                \
  405. {                                    \
  406.     __syscall_nr(0, type, name);                    \
  407. }
  408.  
  409. #define _syscall1(type,name,type1,arg1)                    \
  410. type name(type1 arg1)                            \
  411. {                                    \
  412.     __syscall_nr(1, type, name, arg1);                \
  413. }
  414.  
  415. #define _syscall2(type,name,type1,arg1,type2,arg2)            \
  416. type name(type1 arg1, type2 arg2)                    \
  417. {                                    \
  418.     __syscall_nr(2, type, name, arg1, arg2);            \
  419. }
  420.  
  421. #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)        \
  422. type name(type1 arg1, type2 arg2, type3 arg3)                \
  423. {                                    \
  424.     __syscall_nr(3, type, name, arg1, arg2, arg3);            \
  425. }
  426.  
  427. #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
  428. type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4)        \
  429. {                                    \
  430.     __syscall_nr(4, type, name, arg1, arg2, arg3, arg4);        \
  431. }
  432.  
  433. #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
  434. type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)    \
  435. {                                    \
  436.     __syscall_nr(5, type, name, arg1, arg2, arg3, arg4, arg5);    \
  437. }
  438. #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6) \
  439. type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) \
  440. {                                    \
  441.     __syscall_nr(6, type, name, arg1, arg2, arg3, arg4, arg5, arg6); \
  442. }
  443.  
  444.  
  445. #include <linux/types.h>
  446. #include <linux/compiler.h>
  447. #include <linux/linkage.h>
  448. #include <asm/syscalls.h>
  449.  
  450. #define __ARCH_WANT_IPC_PARSE_VERSION
  451. #define __ARCH_WANT_OLD_READDIR
  452. #define __ARCH_WANT_STAT64
  453. #define __ARCH_WANT_SYS_ALARM
  454. #define __ARCH_WANT_SYS_GETHOSTNAME
  455. #define __ARCH_WANT_SYS_PAUSE
  456. #define __ARCH_WANT_SYS_SGETMASK
  457. #define __ARCH_WANT_SYS_SIGNAL
  458. #define __ARCH_WANT_SYS_TIME
  459. #define __ARCH_WANT_SYS_UTIME
  460. #define __ARCH_WANT_SYS_WAITPID
  461. #define __ARCH_WANT_SYS_SOCKETCALL
  462. #define __ARCH_WANT_SYS_FADVISE64
  463. #define __ARCH_WANT_SYS_GETPGRP
  464. #define __ARCH_WANT_SYS_LLSEEK
  465. #define __ARCH_WANT_SYS_NICE
  466. #define __ARCH_WANT_SYS_OLD_GETRLIMIT
  467. #define __ARCH_WANT_SYS_OLDUMOUNT
  468. #define __ARCH_WANT_SYS_SIGPENDING
  469. #define __ARCH_WANT_SYS_SIGPROCMASK
  470. #define __ARCH_WANT_SYS_RT_SIGACTION
  471. #define __ARCH_WANT_SYS_RT_SIGSUSPEND
  472. #ifdef CONFIG_PPC32
  473. #define __ARCH_WANT_OLD_STAT
  474. #endif
  475. #ifdef CONFIG_PPC64
  476. #define __ARCH_WANT_COMPAT_SYS_TIME
  477. #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND
  478. #define __ARCH_WANT_SYS_NEWFSTATAT
  479. #endif
  480.  
  481. /*
  482.  * System call prototypes.
  483.  */
  484. #ifdef __KERNEL_SYSCALLS__
  485. extern int execve(const char *file, char **argv, char **envp);
  486. #endif /* __KERNEL_SYSCALLS__ */
  487.  
  488. /*
  489.  * "Conditional" syscalls
  490.  *
  491.  * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
  492.  * but it doesn't work on all toolchains, so we just do it by hand
  493.  */
  494. #ifdef CONFIG_PPC32
  495. #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
  496. #else
  497. #define cond_syscall(x) asm(".weak\t." #x "\n\t.set\t." #x ",.sys_ni_syscall")
  498. #endif
  499.  
  500.  
  501. #endif        /* __ASSEMBLY__ */
  502. #endif        /* __KERNEL__ */
  503.  
  504. #endif /* _ASM_PPC_UNISTD_H_ */
  505.