linux/include/asm-m32r/unistd.h
<<
>>
Prefs
   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_sys_kexec_load     283
 296#define __NR_waitid             284
 297
 298#define NR_syscalls 285
 299
 300/* user-visible error numbers are in the range -1 - -124: see
 301 * <asm-m32r/errno.h>
 302 */
 303
 304#define __syscall_return(type, res) \
 305do { \
 306        if ((unsigned long)(res) >= (unsigned long)(-(124 + 1))) { \
 307        /* Avoid using "res" which is declared to be in register r0; \
 308           errno might expand to a function call and clobber it.  */ \
 309                int __err = -(res); \
 310                errno = __err; \
 311                res = -1; \
 312        } \
 313        return (type) (res); \
 314} while (0)
 315
 316#define _syscall0(type,name) \
 317type name(void) \
 318{ \
 319register long __scno __asm__ ("r7") = __NR_##name; \
 320register long __res __asm__("r0"); \
 321__asm__ __volatile__ (\
 322        "trap #" SYSCALL_VECTOR \
 323        : "=r" (__res) \
 324        : "r" (__scno) \
 325        : "memory"); \
 326__syscall_return(type,__res); \
 327}
 328
 329#define _syscall1(type,name,type1,arg1) \
 330type name(type1 arg1) \
 331{ \
 332register long __scno __asm__ ("r7") = __NR_##name; \
 333register long __res __asm__ ("r0") = (long)(arg1); \
 334__asm__ __volatile__ (\
 335        "trap #" SYSCALL_VECTOR \
 336        : "=r" (__res) \
 337        : "r" (__scno), "0" (__res) \
 338        : "memory"); \
 339__syscall_return(type,__res); \
 340}
 341
 342#define _syscall2(type,name,type1,arg1,type2,arg2) \
 343type name(type1 arg1,type2 arg2) \
 344{ \
 345register long __scno __asm__ ("r7") = __NR_##name; \
 346register long __arg2 __asm__ ("r1") = (long)(arg2); \
 347register long __res __asm__ ("r0") = (long)(arg1); \
 348__asm__ __volatile__ (\
 349        "trap #" SYSCALL_VECTOR \
 350        : "=r" (__res) \
 351        : "r" (__scno), "0" (__res), "r" (__arg2) \
 352        : "memory"); \
 353__syscall_return(type,__res); \
 354}
 355
 356#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
 357type name(type1 arg1,type2 arg2,type3 arg3) \
 358{ \
 359register long __scno __asm__ ("r7") = __NR_##name; \
 360register long __arg3 __asm__ ("r2") = (long)(arg3); \
 361register long __arg2 __asm__ ("r1") = (long)(arg2); \
 362register long __res __asm__ ("r0") = (long)(arg1); \
 363__asm__ __volatile__ (\
 364        "trap #" SYSCALL_VECTOR \
 365        : "=r" (__res) \
 366        : "r" (__scno), "0" (__res), "r" (__arg2), \
 367                "r" (__arg3) \
 368        : "memory"); \
 369__syscall_return(type,__res); \
 370}
 371
 372#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
 373type name(type1 arg1,type2 arg2,type3 arg3,type4 arg4) \
 374{ \
 375register long __scno __asm__ ("r7") = __NR_##name; \
 376register long __arg4 __asm__ ("r3") = (long)(arg4); \
 377register long __arg3 __asm__ ("r2") = (long)(arg3); \
 378register long __arg2 __asm__ ("r1") = (long)(arg2); \
 379register long __res __asm__ ("r0") = (long)(arg1); \
 380__asm__ __volatile__ (\
 381        "trap #" SYSCALL_VECTOR \
 382        : "=r" (__res) \
 383        : "r" (__scno), "0" (__res), "r" (__arg2), \
 384                "r" (__arg3), "r" (__arg4) \
 385        : "memory"); \
 386__syscall_return(type,__res); \
 387}
 388
 389#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
 390        type5,arg5) \
 391type name(type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
 392{ \
 393register long __scno __asm__ ("r7") = __NR_##name; \
 394register long __arg5 __asm__ ("r4") = (long)(arg5); \
 395register long __arg4 __asm__ ("r3") = (long)(arg4); \
 396register long __arg3 __asm__ ("r2") = (long)(arg3); \
 397register long __arg2 __asm__ ("r1") = (long)(arg2); \
 398register long __res __asm__ ("r0") = (long)(arg1); \
 399__asm__ __volatile__ (\
 400        "trap #" SYSCALL_VECTOR \
 401        : "=r" (__res) \
 402        : "r" (__scno), "0" (__res), "r" (__arg2), \
 403                "r" (__arg3), "r" (__arg4), "r" (__arg5) \
 404        : "memory"); \
 405__syscall_return(type,__res); \
 406}
 407
 408#ifdef __KERNEL__
 409#define __ARCH_WANT_IPC_PARSE_VERSION
 410#define __ARCH_WANT_STAT64
 411#define __ARCH_WANT_SYS_ALARM
 412#define __ARCH_WANT_SYS_GETHOSTNAME
 413#define __ARCH_WANT_SYS_PAUSE
 414#define __ARCH_WANT_SYS_TIME
 415#define __ARCH_WANT_SYS_UTIME
 416#define __ARCH_WANT_SYS_WAITPID
 417#define __ARCH_WANT_SYS_SOCKETCALL
 418#define __ARCH_WANT_SYS_FADVISE64
 419#define __ARCH_WANT_SYS_GETPGRP
 420#define __ARCH_WANT_SYS_LLSEEK
 421#define __ARCH_WANT_SYS_OLD_GETRLIMIT /*will be unused*/
 422#define __ARCH_WANT_SYS_OLDUMOUNT
 423#define __ARCH_WANT_SYS_RT_SIGACTION
 424#endif
 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 */
 445static __inline__ _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
 446
 447asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
 448                          unsigned long prot, unsigned long flags,
 449                          unsigned long fd, unsigned long pgoff);
 450asmlinkage int sys_execve(struct pt_regs regs);
 451asmlinkage int sys_clone(struct pt_regs regs);
 452asmlinkage int sys_fork(struct pt_regs regs);
 453asmlinkage int sys_vfork(struct pt_regs regs);
 454asmlinkage int sys_pipe(unsigned long __user *fildes);
 455asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 456struct sigaction;
 457asmlinkage long sys_rt_sigaction(int sig,
 458                                 const struct sigaction __user *act,
 459                                 struct sigaction __user *oact,
 460                                 size_t sigsetsize);
 461
 462#endif /* __KERNEL_SYSCALLS__ */
 463
 464/*
 465 * "Conditional" syscalls
 466 *
 467 * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
 468 * but it doesn't work on all toolchains, so we just do it by hand
 469 */
 470#ifndef cond_syscall
 471#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall");
 472#endif
 473
 474#endif /* _ASM_M32R_UNISTD_H */
 475
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.