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.15 509 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 * 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 300#define __NR_syscalls 278 301 302#ifdef __KERNEL__ 303#define __NR__exit __NR_exit 304#define NR_syscalls __NR_syscalls 305#endif 306 307#ifndef __ASSEMBLY__ 308 309/* On powerpc a system call basically clobbers the same registers like a 310 * function call, with the exception of LR (which is needed for the 311 * "sc; bnslr" sequence) and CR (where only CR0.SO is clobbered to signal 312 * an error return status). 313 */ 314 315#define __syscall_nr(nr, type, name, args...) \ 316 unsigned long __sc_ret, __sc_err; \ 317 { \ 318 register unsigned long __sc_0 __asm__ ("r0"); \ 319 register unsigned long __sc_3 __asm__ ("r3"); \ 320 register unsigned long __sc_4 __asm__ ("r4"); \ 321 register unsigned long __sc_5 __asm__ ("r5"); \ 322 register unsigned long __sc_6 __asm__ ("r6"); \ 323 register unsigned long __sc_7 __asm__ ("r7"); \ 324 register unsigned long __sc_8 __asm__ ("r8"); \ 325 \ 326 __sc_loadargs_##nr(name, args); \ 327 __asm__ __volatile__ \ 328 ("sc \n\t" \ 329 "mfcr %0 " \ 330 : "=&r" (__sc_0), \ 331 "=&r" (__sc_3), "=&r" (__sc_4), \ 332 "=&r" (__sc_5), "=&r" (__sc_6), \ 333 "=&r" (__sc_7), "=&r" (__sc_8) \ 334 : __sc_asm_input_##nr \ 335 : "cr0", "ctr", "memory", \ 336 "r9", "r10","r11", "r12"); \ 337 __sc_ret = __sc_3; \ 338 __sc_err = __sc_0; \ 339 } \ 340 if (__sc_err & 0x10000000) \ 341 { \ 342 errno = __sc_ret; \ 343 __sc_ret = -1; \ 344 } \ 345 return (type) __sc_ret 346 347#define __sc_loadargs_0(name, dummy...) \ 348 __sc_0 = __NR_##name 349#define __sc_loadargs_1(name, arg1) \ 350 __sc_loadargs_0(name); \ 351 __sc_3 = (unsigned long) (arg1) 352#define __sc_loadargs_2(name, arg1, arg2) \ 353 __sc_loadargs_1(name, arg1); \ 354 __sc_4 = (unsigned long) (arg2) 355#define __sc_loadargs_3(name, arg1, arg2, arg3) \ 356 __sc_loadargs_2(name, arg1, arg2); \ 357 __sc_5 = (unsigned long) (arg3) 358#define __sc_loadargs_4(name, arg1, arg2, arg3, arg4) \ 359 __sc_loadargs_3(name, arg1, arg2, arg3); \ 360 __sc_6 = (unsigned long) (arg4) 361#define __sc_loadargs_5(name, arg1, arg2, arg3, arg4, arg5) \ 362 __sc_loadargs_4(name, arg1, arg2, arg3, arg4); \ 363 __sc_7 = (unsigned long) (arg5) 364#define __sc_loadargs_6(name, arg1, arg2, arg3, arg4, arg5, arg6) \ 365 __sc_loadargs_5(name, arg1, arg2, arg3, arg4, arg5); \ 366 __sc_8 = (unsigned long) (arg6) 367 368#define __sc_asm_input_0 "0" (__sc_0) 369#define __sc_asm_input_1 __sc_asm_input_0, "1" (__sc_3) 370#define __sc_asm_input_2 __sc_asm_input_1, "2" (__sc_4) 371#define __sc_asm_input_3 __sc_asm_input_2, "3" (__sc_5) 372#define __sc_asm_input_4 __sc_asm_input_3, "4" (__sc_6) 373#define __sc_asm_input_5 __sc_asm_input_4, "5" (__sc_7) 374#define __sc_asm_input_6 __sc_asm_input_5, "6" (__sc_8) 375 376#define _syscall0(type,name) \ 377type name(void) \ 378{ \ 379 __syscall_nr(0, type, name); \ 380} 381 382#define _syscall1(type,name,type1,arg1) \ 383type name(type1 arg1) \ 384{ \ 385 __syscall_nr(1, type, name, arg1); \ 386} 387 388#define _syscall2(type,name,type1,arg1,type2,arg2) \ 389type name(type1 arg1, type2 arg2) \ 390{ \ 391 __syscall_nr(2, type, name, arg1, arg2); \ 392} 393 394#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \ 395type name(type1 arg1, type2 arg2, type3 arg3) \ 396{ \ 397 __syscall_nr(3, type, name, arg1, arg2, arg3); \ 398} 399 400#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ 401type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ 402{ \ 403 __syscall_nr(4, type, name, arg1, arg2, arg3, arg4); \ 404} 405 406#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \ 407type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ 408{ \ 409 __syscall_nr(5, type, name, arg1, arg2, arg3, arg4, arg5); \ 410} 411#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6) \ 412type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) \ 413{ \ 414 __syscall_nr(6, type, name, arg1, arg2, arg3, arg4, arg5, arg6); \ 415} 416 417#ifdef __KERNEL__ 418 419#include <linux/config.h> 420#include <linux/types.h> 421#include <linux/compiler.h> 422#include <linux/linkage.h> 423 424#define __ARCH_WANT_IPC_PARSE_VERSION 425#define __ARCH_WANT_OLD_READDIR 426#define __ARCH_WANT_STAT64 427#define __ARCH_WANT_SYS_ALARM 428#define __ARCH_WANT_SYS_GETHOSTNAME 429#define __ARCH_WANT_SYS_PAUSE 430#define __ARCH_WANT_SYS_SGETMASK 431#define __ARCH_WANT_SYS_SIGNAL 432#define __ARCH_WANT_SYS_TIME 433#define __ARCH_WANT_SYS_UTIME 434#define __ARCH_WANT_SYS_WAITPID 435#define __ARCH_WANT_SYS_SOCKETCALL 436#define __ARCH_WANT_SYS_FADVISE64 437#define __ARCH_WANT_SYS_GETPGRP 438#define __ARCH_WANT_SYS_LLSEEK 439#define __ARCH_WANT_SYS_NICE 440#define __ARCH_WANT_SYS_OLD_GETRLIMIT 441#define __ARCH_WANT_SYS_OLDUMOUNT 442#define __ARCH_WANT_SYS_SIGPENDING 443#define __ARCH_WANT_SYS_SIGPROCMASK 444#define __ARCH_WANT_SYS_RT_SIGACTION 445#ifdef CONFIG_PPC32 446#define __ARCH_WANT_OLD_STAT 447#endif 448#ifdef CONFIG_PPC64 449#define __ARCH_WANT_COMPAT_SYS_TIME 450#endif 451 452/* 453 * System call prototypes. 454 */ 455#ifdef __KERNEL_SYSCALLS__ 456extern pid_t setsid(void); 457extern int write(int fd, const char *buf, off_t count); 458extern int read(int fd, char *buf, off_t count); 459extern off_t lseek(int fd, off_t offset, int count); 460extern int dup(int fd); 461extern int execve(const char *file, char **argv, char **envp); 462extern int open(const char *file, int flag, int mode); 463extern int close(int fd); 464extern pid_t waitpid(pid_t pid, int *wait_stat, int options); 465#endif /* __KERNEL_SYSCALLS__ */ 466 467/* 468 * Functions that implement syscalls. 469 */ 470unsigned long sys_mmap(unsigned long addr, size_t len, unsigned long prot, 471 unsigned long flags, unsigned long fd, off_t offset); 472unsigned long sys_mmap2(unsigned long addr, size_t len, 473 unsigned long prot, unsigned long flags, 474 unsigned long fd, unsigned long pgoff); 475struct pt_regs; 476int sys_execve(unsigned long a0, unsigned long a1, unsigned long a2, 477 unsigned long a3, unsigned long a4, unsigned long a5, 478 struct pt_regs *regs); 479int sys_clone(unsigned long clone_flags, unsigned long usp, 480 int __user *parent_tidp, void __user *child_threadptr, 481 int __user *child_tidp, int p6, struct pt_regs *regs); 482int sys_fork(unsigned long p1, unsigned long p2, unsigned long p3, 483 unsigned long p4, unsigned long p5, unsigned long p6, 484 struct pt_regs *regs); 485int sys_vfork(unsigned long p1, unsigned long p2, unsigned long p3, 486 unsigned long p4, unsigned long p5, unsigned long p6, 487 struct pt_regs *regs); 488int sys_pipe(int __user *fildes); 489struct sigaction; 490long sys_rt_sigaction(int sig, const struct sigaction __user *act, 491 struct sigaction __user *oact, size_t sigsetsize); 492 493/* 494 * "Conditional" syscalls 495 * 496 * What we want is __attribute__((weak,alias("sys_ni_syscall"))), 497 * but it doesn't work on all toolchains, so we just do it by hand 498 */ 499#ifdef CONFIG_PPC32 500#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") 501#else 502#define cond_syscall(x) asm(".weak\t." #x "\n\t.set\t." #x ",.sys_ni_syscall") 503#endif 504 505#endif /* __KERNEL__ */ 506 507#endif /* __ASSEMBLY__ */ 508 509#endif /* _ASM_PPC_UNISTD_H_ */