Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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