OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-mips64/] [unistd.h] - Blame information for rev 1774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 * This file is subject to the terms and conditions of the GNU General Public
3
 * License.  See the file "COPYING" in the main directory of this archive
4
 * for more details.
5
 *
6
 * Copyright (C) 1995, 96, 97, 98, 99, 2000 by Ralf Baechle
7
 */
8
#ifndef _ASM_UNISTD_H
9
#define _ASM_UNISTD_H
10
 
11
#include <asm/sgidefs.h>
12
 
13
#if _MIPS_SIM == _MIPS_SIM_ABI32
14
 
15
/*
16
 * Linux o32 style syscalls are in the range from 4000 to 4999.
17
 */
18
#define __NR_Linux                      4000
19
#define __NR_syscall                    (__NR_Linux +   0)
20
#define __NR_exit                       (__NR_Linux +   1)
21
#define __NR_fork                       (__NR_Linux +   2)
22
#define __NR_read                       (__NR_Linux +   3)
23
#define __NR_write                      (__NR_Linux +   4)
24
#define __NR_open                       (__NR_Linux +   5)
25
#define __NR_close                      (__NR_Linux +   6)
26
#define __NR_waitpid                    (__NR_Linux +   7)
27
#define __NR_creat                      (__NR_Linux +   8)
28
#define __NR_link                       (__NR_Linux +   9)
29
#define __NR_unlink                     (__NR_Linux +  10)
30
#define __NR_execve                     (__NR_Linux +  11)
31
#define __NR_chdir                      (__NR_Linux +  12)
32
#define __NR_time                       (__NR_Linux +  13)
33
#define __NR_mknod                      (__NR_Linux +  14)
34
#define __NR_chmod                      (__NR_Linux +  15)
35
#define __NR_lchown                     (__NR_Linux +  16)
36
#define __NR_break                      (__NR_Linux +  17)
37
#define __NR_unused18                   (__NR_Linux +  18)
38
#define __NR_lseek                      (__NR_Linux +  19)
39
#define __NR_getpid                     (__NR_Linux +  20)
40
#define __NR_mount                      (__NR_Linux +  21)
41
#define __NR_umount                     (__NR_Linux +  22)
42
#define __NR_setuid                     (__NR_Linux +  23)
43
#define __NR_getuid                     (__NR_Linux +  24)
44
#define __NR_stime                      (__NR_Linux +  25)
45
#define __NR_ptrace                     (__NR_Linux +  26)
46
#define __NR_alarm                      (__NR_Linux +  27)
47
#define __NR_unused28                   (__NR_Linux +  28)
48
#define __NR_pause                      (__NR_Linux +  29)
49
#define __NR_utime                      (__NR_Linux +  30)
50
#define __NR_stty                       (__NR_Linux +  31)
51
#define __NR_gtty                       (__NR_Linux +  32)
52
#define __NR_access                     (__NR_Linux +  33)
53
#define __NR_nice                       (__NR_Linux +  34)
54
#define __NR_ftime                      (__NR_Linux +  35)
55
#define __NR_sync                       (__NR_Linux +  36)
56
#define __NR_kill                       (__NR_Linux +  37)
57
#define __NR_rename                     (__NR_Linux +  38)
58
#define __NR_mkdir                      (__NR_Linux +  39)
59
#define __NR_rmdir                      (__NR_Linux +  40)
60
#define __NR_dup                        (__NR_Linux +  41)
61
#define __NR_pipe                       (__NR_Linux +  42)
62
#define __NR_times                      (__NR_Linux +  43)
63
#define __NR_prof                       (__NR_Linux +  44)
64
#define __NR_brk                        (__NR_Linux +  45)
65
#define __NR_setgid                     (__NR_Linux +  46)
66
#define __NR_getgid                     (__NR_Linux +  47)
67
#define __NR_signal                     (__NR_Linux +  48)
68
#define __NR_geteuid                    (__NR_Linux +  49)
69
#define __NR_getegid                    (__NR_Linux +  50)
70
#define __NR_acct                       (__NR_Linux +  51)
71
#define __NR_umount2                    (__NR_Linux +  52)
72
#define __NR_lock                       (__NR_Linux +  53)
73
#define __NR_ioctl                      (__NR_Linux +  54)
74
#define __NR_fcntl                      (__NR_Linux +  55)
75
#define __NR_mpx                        (__NR_Linux +  56)
76
#define __NR_setpgid                    (__NR_Linux +  57)
77
#define __NR_ulimit                     (__NR_Linux +  58)
78
#define __NR_unused59                   (__NR_Linux +  59)
79
#define __NR_umask                      (__NR_Linux +  60)
80
#define __NR_chroot                     (__NR_Linux +  61)
81
#define __NR_ustat                      (__NR_Linux +  62)
82
#define __NR_dup2                       (__NR_Linux +  63)
83
#define __NR_getppid                    (__NR_Linux +  64)
84
#define __NR_getpgrp                    (__NR_Linux +  65)
85
#define __NR_setsid                     (__NR_Linux +  66)
86
#define __NR_sigaction                  (__NR_Linux +  67)
87
#define __NR_sgetmask                   (__NR_Linux +  68)
88
#define __NR_ssetmask                   (__NR_Linux +  69)
89
#define __NR_setreuid                   (__NR_Linux +  70)
90
#define __NR_setregid                   (__NR_Linux +  71)
91
#define __NR_sigsuspend                 (__NR_Linux +  72)
92
#define __NR_sigpending                 (__NR_Linux +  73)
93
#define __NR_sethostname                (__NR_Linux +  74)
94
#define __NR_setrlimit                  (__NR_Linux +  75)
95
#define __NR_getrlimit                  (__NR_Linux +  76)
96
#define __NR_getrusage                  (__NR_Linux +  77)
97
#define __NR_gettimeofday               (__NR_Linux +  78)
98
#define __NR_settimeofday               (__NR_Linux +  79)
99
#define __NR_getgroups                  (__NR_Linux +  80)
100
#define __NR_setgroups                  (__NR_Linux +  81)
101
#define __NR_reserved82                 (__NR_Linux +  82)
102
#define __NR_symlink                    (__NR_Linux +  83)
103
#define __NR_unused84                   (__NR_Linux +  84)
104
#define __NR_readlink                   (__NR_Linux +  85)
105
#define __NR_uselib                     (__NR_Linux +  86)
106
#define __NR_swapon                     (__NR_Linux +  87)
107
#define __NR_reboot                     (__NR_Linux +  88)
108
#define __NR_readdir                    (__NR_Linux +  89)
109
#define __NR_mmap                       (__NR_Linux +  90)
110
#define __NR_munmap                     (__NR_Linux +  91)
111
#define __NR_truncate                   (__NR_Linux +  92)
112
#define __NR_ftruncate                  (__NR_Linux +  93)
113
#define __NR_fchmod                     (__NR_Linux +  94)
114
#define __NR_fchown                     (__NR_Linux +  95)
115
#define __NR_getpriority                (__NR_Linux +  96)
116
#define __NR_setpriority                (__NR_Linux +  97)
117
#define __NR_profil                     (__NR_Linux +  98)
118
#define __NR_statfs                     (__NR_Linux +  99)
119
#define __NR_fstatfs                    (__NR_Linux + 100)
120
#define __NR_ioperm                     (__NR_Linux + 101)
121
#define __NR_socketcall                 (__NR_Linux + 102)
122
#define __NR_syslog                     (__NR_Linux + 103)
123
#define __NR_setitimer                  (__NR_Linux + 104)
124
#define __NR_getitimer                  (__NR_Linux + 105)
125
#define __NR_stat                       (__NR_Linux + 106)
126
#define __NR_lstat                      (__NR_Linux + 107)
127
#define __NR_fstat                      (__NR_Linux + 108)
128
#define __NR_unused109                  (__NR_Linux + 109)
129
#define __NR_iopl                       (__NR_Linux + 110)
130
#define __NR_vhangup                    (__NR_Linux + 111)
131
#define __NR_idle                       (__NR_Linux + 112)
132
#define __NR_vm86                       (__NR_Linux + 113)
133
#define __NR_wait4                      (__NR_Linux + 114)
134
#define __NR_swapoff                    (__NR_Linux + 115)
135
#define __NR_sysinfo                    (__NR_Linux + 116)
136
#define __NR_ipc                        (__NR_Linux + 117)
137
#define __NR_fsync                      (__NR_Linux + 118)
138
#define __NR_sigreturn                  (__NR_Linux + 119)
139
#define __NR_clone                      (__NR_Linux + 120)
140
#define __NR_setdomainname              (__NR_Linux + 121)
141
#define __NR_uname                      (__NR_Linux + 122)
142
#define __NR_modify_ldt                 (__NR_Linux + 123)
143
#define __NR_adjtimex                   (__NR_Linux + 124)
144
#define __NR_mprotect                   (__NR_Linux + 125)
145
#define __NR_sigprocmask                (__NR_Linux + 126)
146
#define __NR_create_module              (__NR_Linux + 127)
147
#define __NR_init_module                (__NR_Linux + 128)
148
#define __NR_delete_module              (__NR_Linux + 129)
149
#define __NR_get_kernel_syms            (__NR_Linux + 130)
150
#define __NR_quotactl                   (__NR_Linux + 131)
151
#define __NR_getpgid                    (__NR_Linux + 132)
152
#define __NR_fchdir                     (__NR_Linux + 133)
153
#define __NR_bdflush                    (__NR_Linux + 134)
154
#define __NR_sysfs                      (__NR_Linux + 135)
155
#define __NR_personality                (__NR_Linux + 136)
156
#define __NR_afs_syscall                (__NR_Linux + 137) /* Syscall for Andrew File System */
157
#define __NR_setfsuid                   (__NR_Linux + 138)
158
#define __NR_setfsgid                   (__NR_Linux + 139)
159
#define __NR__llseek                    (__NR_Linux + 140)
160
#define __NR_getdents                   (__NR_Linux + 141)
161
#define __NR__newselect                 (__NR_Linux + 142)
162
#define __NR_flock                      (__NR_Linux + 143)
163
#define __NR_msync                      (__NR_Linux + 144)
164
#define __NR_readv                      (__NR_Linux + 145)
165
#define __NR_writev                     (__NR_Linux + 146)
166
#define __NR_cacheflush                 (__NR_Linux + 147)
167
#define __NR_cachectl                   (__NR_Linux + 148)
168
#define __NR_sysmips                    (__NR_Linux + 149)
169
#define __NR_unused150                  (__NR_Linux + 150)
170
#define __NR_getsid                     (__NR_Linux + 151)
171
#define __NR_fdatasync                  (__NR_Linux + 152)
172
#define __NR__sysctl                    (__NR_Linux + 153)
173
#define __NR_mlock                      (__NR_Linux + 154)
174
#define __NR_munlock                    (__NR_Linux + 155)
175
#define __NR_mlockall                   (__NR_Linux + 156)
176
#define __NR_munlockall                 (__NR_Linux + 157)
177
#define __NR_sched_setparam             (__NR_Linux + 158)
178
#define __NR_sched_getparam             (__NR_Linux + 159)
179
#define __NR_sched_setscheduler         (__NR_Linux + 160)
180
#define __NR_sched_getscheduler         (__NR_Linux + 161)
181
#define __NR_sched_yield                (__NR_Linux + 162)
182
#define __NR_sched_get_priority_max     (__NR_Linux + 163)
183
#define __NR_sched_get_priority_min     (__NR_Linux + 164)
184
#define __NR_sched_rr_get_interval      (__NR_Linux + 165)
185
#define __NR_nanosleep                  (__NR_Linux + 166)
186
#define __NR_mremap                     (__NR_Linux + 167)
187
#define __NR_accept                     (__NR_Linux + 168)
188
#define __NR_bind                       (__NR_Linux + 169)
189
#define __NR_connect                    (__NR_Linux + 170)
190
#define __NR_getpeername                (__NR_Linux + 171)
191
#define __NR_getsockname                (__NR_Linux + 172)
192
#define __NR_getsockopt                 (__NR_Linux + 173)
193
#define __NR_listen                     (__NR_Linux + 174)
194
#define __NR_recv                       (__NR_Linux + 175)
195
#define __NR_recvfrom                   (__NR_Linux + 176)
196
#define __NR_recvmsg                    (__NR_Linux + 177)
197
#define __NR_send                       (__NR_Linux + 178)
198
#define __NR_sendmsg                    (__NR_Linux + 179)
199
#define __NR_sendto                     (__NR_Linux + 180)
200
#define __NR_setsockopt                 (__NR_Linux + 181)
201
#define __NR_shutdown                   (__NR_Linux + 182)
202
#define __NR_socket                     (__NR_Linux + 183)
203
#define __NR_socketpair                 (__NR_Linux + 184)
204
#define __NR_setresuid                  (__NR_Linux + 185)
205
#define __NR_getresuid                  (__NR_Linux + 186)
206
#define __NR_query_module               (__NR_Linux + 187)
207
#define __NR_poll                       (__NR_Linux + 188)
208
#define __NR_nfsservctl                 (__NR_Linux + 189)
209
#define __NR_setresgid                  (__NR_Linux + 190)
210
#define __NR_getresgid                  (__NR_Linux + 191)
211
#define __NR_prctl                      (__NR_Linux + 192)
212
#define __NR_rt_sigreturn               (__NR_Linux + 193)
213
#define __NR_rt_sigaction               (__NR_Linux + 194)
214
#define __NR_rt_sigprocmask             (__NR_Linux + 195)
215
#define __NR_rt_sigpending              (__NR_Linux + 196)
216
#define __NR_rt_sigtimedwait            (__NR_Linux + 197)
217
#define __NR_rt_sigqueueinfo            (__NR_Linux + 198)
218
#define __NR_rt_sigsuspend              (__NR_Linux + 199)
219
#define __NR_pread                      (__NR_Linux + 200)
220
#define __NR_pwrite                     (__NR_Linux + 201)
221
#define __NR_chown                      (__NR_Linux + 202)
222
#define __NR_getcwd                     (__NR_Linux + 203)
223
#define __NR_capget                     (__NR_Linux + 204)
224
#define __NR_capset                     (__NR_Linux + 205)
225
#define __NR_sigaltstack                (__NR_Linux + 206)
226
#define __NR_sendfile                   (__NR_Linux + 207)
227
#define __NR_getpmsg                    (__NR_Linux + 208)
228
#define __NR_putpmsg                    (__NR_Linux + 209)
229
#define __NR_mmap2                      (__NR_Linux + 210)
230
#define __NR_truncate64                 (__NR_Linux + 211)
231
#define __NR_ftruncate64                (__NR_Linux + 212)
232
#define __NR_stat64                     (__NR_Linux + 213)
233
#define __NR_lstat64                    (__NR_Linux + 214)
234
#define __NR_fstat64                    (__NR_Linux + 215)
235
#define __NR_pivot_root                 (__NR_Linux + 216)
236
#define __NR_mincore                    (__NR_Linux + 217)
237
#define __NR_madvise                    (__NR_Linux + 218)
238
#define __NR_getdents64                 (__NR_Linux + 219)
239
#define __NR_fcntl64                    (__NR_Linux + 220)
240
#define __NR_security                   (__NR_Linux + 221)
241
#define __NR_gettid                     (__NR_Linux + 222)
242
#define __NR_readahead                  (__NR_Linux + 223)
243
#define __NR_setxattr                   (__NR_Linux + 224)
244
#define __NR_lsetxattr                  (__NR_Linux + 225)
245
#define __NR_fsetxattr                  (__NR_Linux + 226)
246
#define __NR_getxattr                   (__NR_Linux + 227)
247
#define __NR_lgetxattr                  (__NR_Linux + 228)
248
#define __NR_fgetxattr                  (__NR_Linux + 229)
249
#define __NR_listxattr                  (__NR_Linux + 230)
250
#define __NR_llistxattr                 (__NR_Linux + 231)
251
#define __NR_flistxattr                 (__NR_Linux + 232)
252
#define __NR_removexattr                (__NR_Linux + 233)
253
#define __NR_lremovexattr               (__NR_Linux + 234)
254
#define __NR_fremovexattr               (__NR_Linux + 235)
255
#define __NR_tkill                      (__NR_Linux + 236)
256
#define __NR_sendfile64                 (__NR_Linux + 237)
257
#define __NR_futex                      (__NR_Linux + 238)
258
#define __NR_sched_setaffinity          (__NR_Linux + 239)
259
#define __NR_sched_getaffinity          (__NR_Linux + 240)
260
 
261
/*
262
 * Offset of the last Linux o32 flavoured syscall
263
 */
264
#define __NR_Linux_syscalls             240
265
 
266
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
267
 
268
#define __NR_O32_Linux                  4000
269
#define __NR_O32_Linux_syscalls         240
270
 
271
#define __NR_O32_Linux_syscalls         240
272
 
273
#if _MIPS_SIM == _MIPS_SIM_ABI64
274
 
275
/*
276
 * Linux 64-bit syscalls are in the range from 5000 to 5999.
277
 */
278
#define __NR_Linux                      5000
279
#define __NR_read                       (__NR_Linux +   0)
280
#define __NR_write                      (__NR_Linux +   1)
281
#define __NR_open                       (__NR_Linux +   2)
282
#define __NR_close                      (__NR_Linux +   3)
283
#define __NR_stat                       (__NR_Linux +   4)
284
#define __NR_fstat                      (__NR_Linux +   5)
285
#define __NR_lstat                      (__NR_Linux +   6)
286
#define __NR_poll                       (__NR_Linux +   7)
287
#define __NR_lseek                      (__NR_Linux +   8)
288
#define __NR_mmap                       (__NR_Linux +   9)
289
#define __NR_mprotect                   (__NR_Linux +  10)
290
#define __NR_munmap                     (__NR_Linux +  11)
291
#define __NR_brk                        (__NR_Linux +  12)
292
#define __NR_rt_sigaction               (__NR_Linux +  13)
293
#define __NR_rt_sigprocmask             (__NR_Linux +  14)
294
#define __NR_ioctl                      (__NR_Linux +  15)
295
#define __NR_pread                      (__NR_Linux +  16)
296
#define __NR_pwrite                     (__NR_Linux +  17)
297
#define __NR_readv                      (__NR_Linux +  18)
298
#define __NR_writev                     (__NR_Linux +  19)
299
#define __NR_access                     (__NR_Linux +  20)
300
#define __NR_pipe                       (__NR_Linux +  21)
301
#define __NR__newselect                 (__NR_Linux +  22)
302
#define __NR_sched_yield                (__NR_Linux +  23)
303
#define __NR_mremap                     (__NR_Linux +  24)
304
#define __NR_msync                      (__NR_Linux +  25)
305
#define __NR_mincore                    (__NR_Linux +  26)
306
#define __NR_madvise                    (__NR_Linux +  27)
307
#define __NR_shmget                     (__NR_Linux +  28)
308
#define __NR_shmat                      (__NR_Linux +  29)
309
#define __NR_shmctl                     (__NR_Linux +  30)
310
#define __NR_dup                        (__NR_Linux +  31)
311
#define __NR_dup2                       (__NR_Linux +  32)
312
#define __NR_pause                      (__NR_Linux +  33)
313
#define __NR_nanosleep                  (__NR_Linux +  34)
314
#define __NR_getitimer                  (__NR_Linux +  35)
315
#define __NR_setitimer                  (__NR_Linux +  36)
316
#define __NR_alarm                      (__NR_Linux +  37)
317
#define __NR_getpid                     (__NR_Linux +  38)
318
#define __NR_sendfile                   (__NR_Linux +  39)
319
#define __NR_socket                     (__NR_Linux +  40)
320
#define __NR_connect                    (__NR_Linux +  41)
321
#define __NR_accept                     (__NR_Linux +  42)
322
#define __NR_sendto                     (__NR_Linux +  43)
323
#define __NR_recvfrom                   (__NR_Linux +  44)
324
#define __NR_sendmsg                    (__NR_Linux +  45)
325
#define __NR_recvmsg                    (__NR_Linux +  46)
326
#define __NR_shutdown                   (__NR_Linux +  47)
327
#define __NR_bind                       (__NR_Linux +  48)
328
#define __NR_listen                     (__NR_Linux +  49)
329
#define __NR_getsockname                (__NR_Linux +  50)
330
#define __NR_getpeername                (__NR_Linux +  51)
331
#define __NR_socketpair                 (__NR_Linux +  52)
332
#define __NR_setsockopt                 (__NR_Linux +  53)
333
#define __NR_getsockopt                 (__NR_Linux +  54)
334
#define __NR_clone                      (__NR_Linux +  55)
335
#define __NR_fork                       (__NR_Linux +  56)
336
#define __NR_execve                     (__NR_Linux +  57)
337
#define __NR_exit                       (__NR_Linux +  58)
338
#define __NR_wait4                      (__NR_Linux +  59)
339
#define __NR_kill                       (__NR_Linux +  60)
340
#define __NR_uname                      (__NR_Linux +  61)
341
#define __NR_semget                     (__NR_Linux +  62)
342
#define __NR_semop                      (__NR_Linux +  63)
343
#define __NR_semctl                     (__NR_Linux +  64)
344
#define __NR_shmdt                      (__NR_Linux +  65)
345
#define __NR_msgget                     (__NR_Linux +  66)
346
#define __NR_msgsnd                     (__NR_Linux +  67)
347
#define __NR_msgrcv                     (__NR_Linux +  68)
348
#define __NR_msgctl                     (__NR_Linux +  69)
349
#define __NR_fcntl                      (__NR_Linux +  70)
350
#define __NR_flock                      (__NR_Linux +  71)
351
#define __NR_fsync                      (__NR_Linux +  72)
352
#define __NR_fdatasync                  (__NR_Linux +  73)
353
#define __NR_truncate                   (__NR_Linux +  74)
354
#define __NR_ftruncate                  (__NR_Linux +  75)
355
#define __NR_getdents                   (__NR_Linux +  76)
356
#define __NR_getcwd                     (__NR_Linux +  77)
357
#define __NR_chdir                      (__NR_Linux +  78)
358
#define __NR_fchdir                     (__NR_Linux +  79)
359
#define __NR_rename                     (__NR_Linux +  80)
360
#define __NR_mkdir                      (__NR_Linux +  81)
361
#define __NR_rmdir                      (__NR_Linux +  82)
362
#define __NR_creat                      (__NR_Linux +  83)
363
#define __NR_link                       (__NR_Linux +  84)
364
#define __NR_unlink                     (__NR_Linux +  85)
365
#define __NR_symlink                    (__NR_Linux +  86)
366
#define __NR_readlink                   (__NR_Linux +  87)
367
#define __NR_chmod                      (__NR_Linux +  88)
368
#define __NR_fchmod                     (__NR_Linux +  89)
369
#define __NR_chown                      (__NR_Linux +  90)
370
#define __NR_fchown                     (__NR_Linux +  91)
371
#define __NR_lchown                     (__NR_Linux +  92)
372
#define __NR_umask                      (__NR_Linux +  93)
373
#define __NR_gettimeofday               (__NR_Linux +  94)
374
#define __NR_getrlimit                  (__NR_Linux +  95)
375
#define __NR_getrusage                  (__NR_Linux +  96)
376
#define __NR_sysinfo                    (__NR_Linux +  97)
377
#define __NR_times                      (__NR_Linux +  98)
378
#define __NR_ptrace                     (__NR_Linux +  99)
379
#define __NR_getuid                     (__NR_Linux + 100)
380
#define __NR_syslog                     (__NR_Linux + 101)
381
#define __NR_getgid                     (__NR_Linux + 102)
382
#define __NR_setuid                     (__NR_Linux + 103)
383
#define __NR_setgid                     (__NR_Linux + 104)
384
#define __NR_geteuid                    (__NR_Linux + 105)
385
#define __NR_getegid                    (__NR_Linux + 106)
386
#define __NR_setpgid                    (__NR_Linux + 107)
387
#define __NR_getppid                    (__NR_Linux + 108)
388
#define __NR_getpgrp                    (__NR_Linux + 109)
389
#define __NR_setsid                     (__NR_Linux + 110)
390
#define __NR_setreuid                   (__NR_Linux + 111)
391
#define __NR_setregid                   (__NR_Linux + 112)
392
#define __NR_getgroups                  (__NR_Linux + 113)
393
#define __NR_setgroups                  (__NR_Linux + 114)
394
#define __NR_setresuid                  (__NR_Linux + 115)
395
#define __NR_getresuid                  (__NR_Linux + 116)
396
#define __NR_setresgid                  (__NR_Linux + 117)
397
#define __NR_getresgid                  (__NR_Linux + 118)
398
#define __NR_getpgid                    (__NR_Linux + 119)
399
#define __NR_setfsuid                   (__NR_Linux + 120)
400
#define __NR_setfsgid                   (__NR_Linux + 121)
401
#define __NR_getsid                     (__NR_Linux + 122)
402
#define __NR_capget                     (__NR_Linux + 123)
403
#define __NR_capset                     (__NR_Linux + 124)
404
#define __NR_rt_sigpending              (__NR_Linux + 125)
405
#define __NR_rt_sigtimedwait            (__NR_Linux + 126)
406
#define __NR_rt_sigqueueinfo            (__NR_Linux + 127)
407
#define __NR_rt_sigsuspend              (__NR_Linux + 128)
408
#define __NR_sigaltstack                (__NR_Linux + 129)
409
#define __NR_utime                      (__NR_Linux + 130)
410
#define __NR_mknod                      (__NR_Linux + 131)
411
#define __NR_personality                (__NR_Linux + 132)
412
#define __NR_ustat                      (__NR_Linux + 133)
413
#define __NR_statfs                     (__NR_Linux + 134)
414
#define __NR_fstatfs                    (__NR_Linux + 135)
415
#define __NR_sysfs                      (__NR_Linux + 136)
416
#define __NR_getpriority                (__NR_Linux + 137)
417
#define __NR_setpriority                (__NR_Linux + 138)
418
#define __NR_sched_setparam             (__NR_Linux + 139)
419
#define __NR_sched_getparam             (__NR_Linux + 140)
420
#define __NR_sched_setscheduler         (__NR_Linux + 141)
421
#define __NR_sched_getscheduler         (__NR_Linux + 142)
422
#define __NR_sched_get_priority_max     (__NR_Linux + 143)
423
#define __NR_sched_get_priority_min     (__NR_Linux + 144)
424
#define __NR_sched_rr_get_interval      (__NR_Linux + 145)
425
#define __NR_mlock                      (__NR_Linux + 146)
426
#define __NR_munlock                    (__NR_Linux + 147)
427
#define __NR_mlockall                   (__NR_Linux + 148)
428
#define __NR_munlockall                 (__NR_Linux + 149)
429
#define __NR_vhangup                    (__NR_Linux + 150)
430
#define __NR_pivot_root                 (__NR_Linux + 151)
431
#define __NR__sysctl                    (__NR_Linux + 152)
432
#define __NR_prctl                      (__NR_Linux + 153)
433
#define __NR_adjtimex                   (__NR_Linux + 154)
434
#define __NR_setrlimit                  (__NR_Linux + 155)
435
#define __NR_chroot                     (__NR_Linux + 156)
436
#define __NR_sync                       (__NR_Linux + 157)
437
#define __NR_acct                       (__NR_Linux + 158)
438
#define __NR_settimeofday               (__NR_Linux + 159)
439
#define __NR_mount                      (__NR_Linux + 160)
440
#define __NR_umount2                    (__NR_Linux + 161)
441
#define __NR_swapon                     (__NR_Linux + 162)
442
#define __NR_swapoff                    (__NR_Linux + 163)
443
#define __NR_reboot                     (__NR_Linux + 164)
444
#define __NR_sethostname                (__NR_Linux + 165)
445
#define __NR_setdomainname              (__NR_Linux + 166)
446
#define __NR_create_module              (__NR_Linux + 167)
447
#define __NR_init_module                (__NR_Linux + 168)
448
#define __NR_delete_module              (__NR_Linux + 169)
449
#define __NR_get_kernel_syms            (__NR_Linux + 170)
450
#define __NR_query_module               (__NR_Linux + 171)
451
#define __NR_quotactl                   (__NR_Linux + 172)
452
#define __NR_nfsservctl                 (__NR_Linux + 173)
453
#define __NR_getpmsg                    (__NR_Linux + 174)
454
#define __NR_putpmsg                    (__NR_Linux + 175)
455
#define __NR_afs_syscall                (__NR_Linux + 176)
456
#define __NR_security                   (__NR_Linux + 177)
457
#define __NR_gettid                     (__NR_Linux + 178)
458
#define __NR_readahead                  (__NR_Linux + 179)
459
#define __NR_setxattr                   (__NR_Linux + 180)
460
#define __NR_lsetxattr                  (__NR_Linux + 181)
461
#define __NR_fsetxattr                  (__NR_Linux + 182)
462
#define __NR_getxattr                   (__NR_Linux + 183)
463
#define __NR_lgetxattr                  (__NR_Linux + 184)
464
#define __NR_fgetxattr                  (__NR_Linux + 185)
465
#define __NR_listxattr                  (__NR_Linux + 186)
466
#define __NR_llistxattr                 (__NR_Linux + 187)
467
#define __NR_flistxattr                 (__NR_Linux + 188)
468
#define __NR_removexattr                (__NR_Linux + 189)
469
#define __NR_lremovexattr               (__NR_Linux + 190)
470
#define __NR_fremovexattr               (__NR_Linux + 191)
471
#define __NR_tkill                      (__NR_Linux + 192)
472
#define __NR_unused193                  (__NR_Linux + 193)
473
#define __NR_futex                      (__NR_Linux + 194)
474
#define __NR_sched_setaffinity          (__NR_Linux + 195)
475
#define __NR_sched_getaffinity          (__NR_Linux + 196)
476
#define __NR_cacheflush                 (__NR_Linux + 197)
477
#define __NR_cachectl                   (__NR_Linux + 198)
478
#define __NR_sysmips                    (__NR_Linux + 199)
479
#define __NR_unused200                  (__NR_Linux + 200)
480
#define __NR_unused201                  (__NR_Linux + 201)
481
#define __NR_unused202                  (__NR_Linux + 202)
482
#define __NR_unused203                  (__NR_Linux + 203)
483
#define __NR_unused204                  (__NR_Linux + 204)
484
#define __NR_unused205                  (__NR_Linux + 205)
485
#define __NR_unused206                  (__NR_Linux + 206)
486
#define __NR_unused207                  (__NR_Linux + 207)
487
#define __NR_unused208                  (__NR_Linux + 208)
488
#define __NR_unused209                  (__NR_Linux + 209)
489
#define __NR_unused210                  (__NR_Linux + 210)
490
#define __NR_rt_sigreturn               (__NR_Linux + 211)
491
#define __NR_unused212                  (__NR_Linux + 212)
492
#define __NR_unused213                  (__NR_Linux + 213)
493
#define __NR_semtimedop                 (__NR_Linux + 214)
494
 
495
/*
496
 * Offset of the last Linux flavoured syscall
497
 */
498
#define __NR_Linux_syscalls             214
499
 
500
#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
501
 
502
#define __NR_64_Linux                   5000
503
#define __NR_64_Linux_syscalls          214
504
 
505
#if _MIPS_SIM == _MIPS_SIM_NABI32
506
 
507
/*
508
 * Linux N32 syscalls are in the range from 6000 to 6999.
509
 */
510
#define __NR_Linux                      6000
511
#define __NR_read                       (__NR_Linux +   0)
512
#define __NR_write                      (__NR_Linux +   1)
513
#define __NR_open                       (__NR_Linux +   2)
514
#define __NR_close                      (__NR_Linux +   3)
515
#define __NR_stat                       (__NR_Linux +   4)
516
#define __NR_fstat                      (__NR_Linux +   5)
517
#define __NR_lstat                      (__NR_Linux +   6)
518
#define __NR_poll                       (__NR_Linux +   7)
519
#define __NR_lseek                      (__NR_Linux +   8)
520
#define __NR_mmap                       (__NR_Linux +   9)
521
#define __NR_mprotect                   (__NR_Linux +  10)
522
#define __NR_munmap                     (__NR_Linux +  11)
523
#define __NR_brk                        (__NR_Linux +  12)
524
#define __NR_rt_sigaction               (__NR_Linux +  13)
525
#define __NR_rt_sigprocmask             (__NR_Linux +  14)
526
#define __NR_ioctl                      (__NR_Linux +  15)
527
#define __NR_pread                      (__NR_Linux +  16)
528
#define __NR_pwrite                     (__NR_Linux +  17)
529
#define __NR_readv                      (__NR_Linux +  18)
530
#define __NR_writev                     (__NR_Linux +  19)
531
#define __NR_access                     (__NR_Linux +  20)
532
#define __NR_pipe                       (__NR_Linux +  21)
533
#define __NR__newselect                 (__NR_Linux +  22)
534
#define __NR_sched_yield                (__NR_Linux +  23)
535
#define __NR_mremap                     (__NR_Linux +  24)
536
#define __NR_msync                      (__NR_Linux +  25)
537
#define __NR_mincore                    (__NR_Linux +  26)
538
#define __NR_madvise                    (__NR_Linux +  27)
539
#define __NR_shmget                     (__NR_Linux +  28)
540
#define __NR_shmat                      (__NR_Linux +  29)
541
#define __NR_shmctl                     (__NR_Linux +  30)
542
#define __NR_dup                        (__NR_Linux +  31)
543
#define __NR_dup2                       (__NR_Linux +  32)
544
#define __NR_pause                      (__NR_Linux +  33)
545
#define __NR_nanosleep                  (__NR_Linux +  34)
546
#define __NR_getitimer                  (__NR_Linux +  35)
547
#define __NR_setitimer                  (__NR_Linux +  36)
548
#define __NR_alarm                      (__NR_Linux +  37)
549
#define __NR_getpid                     (__NR_Linux +  38)
550
#define __NR_sendfile                   (__NR_Linux +  39)
551
#define __NR_socket                     (__NR_Linux +  40)
552
#define __NR_connect                    (__NR_Linux +  41)
553
#define __NR_accept                     (__NR_Linux +  42)
554
#define __NR_sendto                     (__NR_Linux +  43)
555
#define __NR_recvfrom                   (__NR_Linux +  44)
556
#define __NR_sendmsg                    (__NR_Linux +  45)
557
#define __NR_recvmsg                    (__NR_Linux +  46)
558
#define __NR_shutdown                   (__NR_Linux +  47)
559
#define __NR_bind                       (__NR_Linux +  48)
560
#define __NR_listen                     (__NR_Linux +  49)
561
#define __NR_getsockname                (__NR_Linux +  50)
562
#define __NR_getpeername                (__NR_Linux +  51)
563
#define __NR_socketpair                 (__NR_Linux +  52)
564
#define __NR_setsockopt                 (__NR_Linux +  53)
565
#define __NR_getsockopt                 (__NR_Linux +  54)
566
#define __NR_clone                      (__NR_Linux +  55)
567
#define __NR_fork                       (__NR_Linux +  56)
568
#define __NR_execve                     (__NR_Linux +  57)
569
#define __NR_exit                       (__NR_Linux +  58)
570
#define __NR_wait4                      (__NR_Linux +  59)
571
#define __NR_kill                       (__NR_Linux +  60)
572
#define __NR_uname                      (__NR_Linux +  61)
573
#define __NR_semget                     (__NR_Linux +  62)
574
#define __NR_semop                      (__NR_Linux +  63)
575
#define __NR_semctl                     (__NR_Linux +  64)
576
#define __NR_shmdt                      (__NR_Linux +  65)
577
#define __NR_msgget                     (__NR_Linux +  66)
578
#define __NR_msgsnd                     (__NR_Linux +  67)
579
#define __NR_msgrcv                     (__NR_Linux +  68)
580
#define __NR_msgctl                     (__NR_Linux +  69)
581
#define __NR_fcntl                      (__NR_Linux +  70)
582
#define __NR_flock                      (__NR_Linux +  71)
583
#define __NR_fsync                      (__NR_Linux +  72)
584
#define __NR_fdatasync                  (__NR_Linux +  73)
585
#define __NR_truncate                   (__NR_Linux +  74)
586
#define __NR_ftruncate                  (__NR_Linux +  75)
587
#define __NR_getdents                   (__NR_Linux +  76)
588
#define __NR_getcwd                     (__NR_Linux +  77)
589
#define __NR_chdir                      (__NR_Linux +  78)
590
#define __NR_fchdir                     (__NR_Linux +  79)
591
#define __NR_rename                     (__NR_Linux +  80)
592
#define __NR_mkdir                      (__NR_Linux +  81)
593
#define __NR_rmdir                      (__NR_Linux +  82)
594
#define __NR_creat                      (__NR_Linux +  83)
595
#define __NR_link                       (__NR_Linux +  84)
596
#define __NR_unlink                     (__NR_Linux +  85)
597
#define __NR_symlink                    (__NR_Linux +  86)
598
#define __NR_readlink                   (__NR_Linux +  87)
599
#define __NR_chmod                      (__NR_Linux +  88)
600
#define __NR_fchmod                     (__NR_Linux +  89)
601
#define __NR_chown                      (__NR_Linux +  90)
602
#define __NR_fchown                     (__NR_Linux +  91)
603
#define __NR_lchown                     (__NR_Linux +  92)
604
#define __NR_umask                      (__NR_Linux +  93)
605
#define __NR_gettimeofday               (__NR_Linux +  94)
606
#define __NR_getrlimit                  (__NR_Linux +  95)
607
#define __NR_getrusage                  (__NR_Linux +  96)
608
#define __NR_sysinfo                    (__NR_Linux +  97)
609
#define __NR_times                      (__NR_Linux +  98)
610
#define __NR_ptrace                     (__NR_Linux +  99)
611
#define __NR_getuid                     (__NR_Linux + 100)
612
#define __NR_syslog                     (__NR_Linux + 101)
613
#define __NR_getgid                     (__NR_Linux + 102)
614
#define __NR_setuid                     (__NR_Linux + 103)
615
#define __NR_setgid                     (__NR_Linux + 104)
616
#define __NR_geteuid                    (__NR_Linux + 105)
617
#define __NR_getegid                    (__NR_Linux + 106)
618
#define __NR_setpgid                    (__NR_Linux + 107)
619
#define __NR_getppid                    (__NR_Linux + 108)
620
#define __NR_getpgrp                    (__NR_Linux + 109)
621
#define __NR_setsid                     (__NR_Linux + 110)
622
#define __NR_setreuid                   (__NR_Linux + 111)
623
#define __NR_setregid                   (__NR_Linux + 112)
624
#define __NR_getgroups                  (__NR_Linux + 113)
625
#define __NR_setgroups                  (__NR_Linux + 114)
626
#define __NR_setresuid                  (__NR_Linux + 115)
627
#define __NR_getresuid                  (__NR_Linux + 116)
628
#define __NR_setresgid                  (__NR_Linux + 117)
629
#define __NR_getresgid                  (__NR_Linux + 118)
630
#define __NR_getpgid                    (__NR_Linux + 119)
631
#define __NR_setfsuid                   (__NR_Linux + 120)
632
#define __NR_setfsgid                   (__NR_Linux + 121)
633
#define __NR_getsid                     (__NR_Linux + 122)
634
#define __NR_capget                     (__NR_Linux + 123)
635
#define __NR_capset                     (__NR_Linux + 124)
636
#define __NR_rt_sigpending              (__NR_Linux + 125)
637
#define __NR_rt_sigtimedwait            (__NR_Linux + 126)
638
#define __NR_rt_sigqueueinfo            (__NR_Linux + 127)
639
#define __NR_rt_sigsuspend              (__NR_Linux + 128)
640
#define __NR_sigaltstack                (__NR_Linux + 129)
641
#define __NR_utime                      (__NR_Linux + 130)
642
#define __NR_mknod                      (__NR_Linux + 131)
643
#define __NR_personality                (__NR_Linux + 132)
644
#define __NR_ustat                      (__NR_Linux + 133)
645
#define __NR_statfs                     (__NR_Linux + 134)
646
#define __NR_fstatfs                    (__NR_Linux + 135)
647
#define __NR_sysfs                      (__NR_Linux + 136)
648
#define __NR_getpriority                (__NR_Linux + 137)
649
#define __NR_setpriority                (__NR_Linux + 138)
650
#define __NR_sched_setparam             (__NR_Linux + 139)
651
#define __NR_sched_getparam             (__NR_Linux + 140)
652
#define __NR_sched_setscheduler         (__NR_Linux + 141)
653
#define __NR_sched_getscheduler         (__NR_Linux + 142)
654
#define __NR_sched_get_priority_max     (__NR_Linux + 143)
655
#define __NR_sched_get_priority_min     (__NR_Linux + 144)
656
#define __NR_sched_rr_get_interval      (__NR_Linux + 145)
657
#define __NR_mlock                      (__NR_Linux + 146)
658
#define __NR_munlock                    (__NR_Linux + 147)
659
#define __NR_mlockall                   (__NR_Linux + 148)
660
#define __NR_munlockall                 (__NR_Linux + 149)
661
#define __NR_vhangup                    (__NR_Linux + 150)
662
#define __NR_pivot_root                 (__NR_Linux + 151)
663
#define __NR__sysctl                    (__NR_Linux + 152)
664
#define __NR_prctl                      (__NR_Linux + 153)
665
#define __NR_adjtimex                   (__NR_Linux + 154)
666
#define __NR_setrlimit                  (__NR_Linux + 155)
667
#define __NR_chroot                     (__NR_Linux + 156)
668
#define __NR_sync                       (__NR_Linux + 157)
669
#define __NR_acct                       (__NR_Linux + 158)
670
#define __NR_settimeofday               (__NR_Linux + 159)
671
#define __NR_mount                      (__NR_Linux + 160)
672
#define __NR_umount2                    (__NR_Linux + 161)
673
#define __NR_swapon                     (__NR_Linux + 162)
674
#define __NR_swapoff                    (__NR_Linux + 163)
675
#define __NR_reboot                     (__NR_Linux + 164)
676
#define __NR_sethostname                (__NR_Linux + 165)
677
#define __NR_setdomainname              (__NR_Linux + 166)
678
#define __NR_create_module              (__NR_Linux + 167)
679
#define __NR_init_module                (__NR_Linux + 168)
680
#define __NR_delete_module              (__NR_Linux + 169)
681
#define __NR_get_kernel_syms            (__NR_Linux + 170)
682
#define __NR_query_module               (__NR_Linux + 171)
683
#define __NR_quotactl                   (__NR_Linux + 172)
684
#define __NR_nfsservctl                 (__NR_Linux + 173)
685
#define __NR_getpmsg                    (__NR_Linux + 174)
686
#define __NR_putpmsg                    (__NR_Linux + 175)
687
#define __NR_afs_syscall                (__NR_Linux + 176)
688
#define __NR_security                   (__NR_Linux + 177)
689
#define __NR_gettid                     (__NR_Linux + 178)
690
#define __NR_readahead                  (__NR_Linux + 179)
691
#define __NR_setxattr                   (__NR_Linux + 180)
692
#define __NR_lsetxattr                  (__NR_Linux + 181)
693
#define __NR_fsetxattr                  (__NR_Linux + 182)
694
#define __NR_getxattr                   (__NR_Linux + 183)
695
#define __NR_lgetxattr                  (__NR_Linux + 184)
696
#define __NR_fgetxattr                  (__NR_Linux + 185)
697
#define __NR_listxattr                  (__NR_Linux + 186)
698
#define __NR_llistxattr                 (__NR_Linux + 187)
699
#define __NR_flistxattr                 (__NR_Linux + 188)
700
#define __NR_removexattr                (__NR_Linux + 189)
701
#define __NR_lremovexattr               (__NR_Linux + 190)
702
#define __NR_fremovexattr               (__NR_Linux + 191)
703
#define __NR_tkill                      (__NR_Linux + 192)
704
#define __NR_time                       (__NR_Linux + 193)
705
#define __NR_futex                      (__NR_Linux + 194)
706
#define __NR_sched_setaffinity          (__NR_Linux + 195)
707
#define __NR_sched_getaffinity          (__NR_Linux + 196)
708
#define __NR_cacheflush                 (__NR_Linux + 197)
709
#define __NR_cachectl                   (__NR_Linux + 198)
710
#define __NR_sysmips                    (__NR_Linux + 199)
711
#define __NR_unused200                  (__NR_Linux + 200)
712
#define __NR_unused201                  (__NR_Linux + 201)
713
#define __NR_unused202                  (__NR_Linux + 202)
714
#define __NR_unused203                  (__NR_Linux + 203)
715
#define __NR_unused204                  (__NR_Linux + 204)
716
#define __NR_unused205                  (__NR_Linux + 205)
717
#define __NR_unused206                  (__NR_Linux + 206)
718
#define __NR_unused207                  (__NR_Linux + 207)
719
#define __NR_unused208                  (__NR_Linux + 208)
720
#define __NR_unused209                  (__NR_Linux + 209)
721
#define __NR_unused210                  (__NR_Linux + 210)
722
#define __NR_rt_sigreturn               (__NR_Linux + 211)
723
#define __NR_fcntl64                    (__NR_Linux + 212)
724
#define __NR_unused213                  (__NR_Linux + 213)
725
#define __NR_unused214                  (__NR_Linux + 214)
726
#define __NR_semtimedop                 (__NR_Linux + 215)
727
#define __NR_unused216                  (__NR_Linux + 216)
728
#define __NR_unused217                  (__NR_Linux + 217)
729
#define __NR_unused218                  (__NR_Linux + 218)
730
#define __NR_sendfile64                 (__NR_Linux + 219)
731
 
732
/*
733
 * Offset of the last N32 flavoured syscall
734
 */
735
#define __NR_N32_Linux_syscalls         219
736
 
737
#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
738
 
739
#define __NR_N32_Linux                  6000
740
#define __NR_N32_Linux_syscalls         219
741
 
742
#ifndef __ASSEMBLY__
743
 
744
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
745
#define _syscall0(type,name) \
746
type name(void) \
747
{ \
748
        register unsigned long __a3 asm("$7"); \
749
        unsigned long __v0; \
750
        \
751
        __asm__ volatile ( \
752
        ".set\tnoreorder\n\t" \
753
        "li\t$2, %2\t\t\t# " #name "\n\t" \
754
        "syscall\n\t" \
755
        "move\t%0, $2\n\t" \
756
        ".set\treorder" \
757
        : "=&r" (__v0), "=r" (__a3) \
758
        : "i" (__NR_##name) \
759
        : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
760
        \
761
        if (__a3 == 0) \
762
                return (type) __v0; \
763
        errno = __v0; \
764
        return -1; \
765
}
766
 
767
/*
768
 * DANGER: This macro isn't usable for the pipe(2) call
769
 * which has a unusual return convention.
770
 */
771
#define _syscall1(type,name,atype,a) \
772
type name(atype a) \
773
{ \
774
        register unsigned long __a0 asm("$4") = (unsigned long) a; \
775
        register unsigned long __a3 asm("$7"); \
776
        unsigned long __v0; \
777
        \
778
        __asm__ volatile ( \
779
        ".set\tnoreorder\n\t" \
780
        "li\t$2, %3\t\t\t# " #name "\n\t" \
781
        "syscall\n\t" \
782
        "move\t%0, $2\n\t" \
783
        ".set\treorder" \
784
        : "=&r" (__v0), "=r" (__a3) \
785
        : "r" (__a0), "i" (__NR_##name) \
786
        : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
787
        \
788
        if (__a3 == 0) \
789
                return (type) __v0; \
790
        errno = __v0; \
791
        return -1; \
792
}
793
 
794
#define _syscall2(type,name,atype,a,btype,b) \
795
type name(atype a, btype b) \
796
{ \
797
        register unsigned long __a0 asm("$4") = (unsigned long) a; \
798
        register unsigned long __a1 asm("$5") = (unsigned long) b; \
799
        register unsigned long __a3 asm("$7"); \
800
        unsigned long __v0; \
801
        \
802
        __asm__ volatile ( \
803
        ".set\tnoreorder\n\t" \
804
        "li\t$2, %4\t\t\t# " #name "\n\t" \
805
        "syscall\n\t" \
806
        "move\t%0, $2\n\t" \
807
        ".set\treorder" \
808
        : "=&r" (__v0), "=r" (__a3) \
809
        : "r" (__a0), "r" (__a1), "i" (__NR_##name) \
810
        : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
811
        \
812
        if (__a3 == 0) \
813
                return (type) __v0; \
814
        errno = __v0; \
815
        return -1; \
816
}
817
 
818
#define _syscall3(type,name,atype,a,btype,b,ctype,c) \
819
type name(atype a, btype b, ctype c) \
820
{ \
821
        register unsigned long __a0 asm("$4") = (unsigned long) a; \
822
        register unsigned long __a1 asm("$5") = (unsigned long) b; \
823
        register unsigned long __a2 asm("$6") = (unsigned long) c; \
824
        register unsigned long __a3 asm("$7"); \
825
        unsigned long __v0; \
826
        \
827
        __asm__ volatile ( \
828
        ".set\tnoreorder\n\t" \
829
        "li\t$2, %5\t\t\t# " #name "\n\t" \
830
        "syscall\n\t" \
831
        "move\t%0, $2\n\t" \
832
        ".set\treorder" \
833
        : "=&r" (__v0), "=r" (__a3) \
834
        : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \
835
        : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
836
        \
837
        if (__a3 == 0) \
838
                return (type) __v0; \
839
        errno = __v0; \
840
        return -1; \
841
}
842
 
843
#define _syscall4(type,name,atype,a,btype,b,ctype,c,dtype,d) \
844
type name(atype a, btype b, ctype c, dtype d) \
845
{ \
846
        register unsigned long __a0 asm("$4") = (unsigned long) a; \
847
        register unsigned long __a1 asm("$5") = (unsigned long) b; \
848
        register unsigned long __a2 asm("$6") = (unsigned long) c; \
849
        register unsigned long __a3 asm("$7") = (unsigned long) d; \
850
        unsigned long __v0; \
851
        \
852
        __asm__ volatile ( \
853
        ".set\tnoreorder\n\t" \
854
        "li\t$2, %5\t\t\t# " #name "\n\t" \
855
        "syscall\n\t" \
856
        "move\t%0, $2\n\t" \
857
        ".set\treorder" \
858
        : "=&r" (__v0), "+r" (__a3) \
859
        : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \
860
        : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
861
        \
862
        if (__a3 == 0) \
863
                return (type) __v0; \
864
        errno = __v0; \
865
        return -1; \
866
}
867
 
868
#if (_MIPS_SIM == _MIPS_SIM_ABIN32)
869
 
870
/*
871
 * Using those means your brain needs more than an oil change ;-)
872
 */
873
 
874
#define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
875
type name(atype a, btype b, ctype c, dtype d, etype e) \
876
{ \
877
        register unsigned long __a0 asm("$4") = (unsigned long) a; \
878
        register unsigned long __a1 asm("$5") = (unsigned long) b; \
879
        register unsigned long __a2 asm("$6") = (unsigned long) c; \
880
        register unsigned long __a3 asm("$7") = (unsigned long) d; \
881
        unsigned long __v0; \
882
        \
883
        __asm__ volatile ( \
884
        ".set\tnoreorder\n\t" \
885
        "lw\t$2, %6\n\t" \
886
        "subu\t$29, 32\n\t" \
887
        "sw\t$2, 16($29)\n\t" \
888
        "li\t$2, %5\t\t\t# " #name "\n\t" \
889
        "syscall\n\t" \
890
        "move\t%0, $2\n\t" \
891
        "addiu\t$29, 32\n\t" \
892
        ".set\treorder" \
893
        : "=&r" (__v0), "+r" (__a3) \
894
        : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name), \
895
          "m" ((unsigned long)e) \
896
        : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
897
        \
898
        if (__a3 == 0) \
899
                return (type) __v0; \
900
        errno = __v0; \
901
        return -1; \
902
}
903
 
904
#define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) \
905
type name(atype a, btype b, ctype c, dtype d, etype e, ftype f) \
906
{ \
907
        register unsigned long __a0 asm("$4") = (unsigned long) a; \
908
        register unsigned long __a1 asm("$5") = (unsigned long) b; \
909
        register unsigned long __a2 asm("$6") = (unsigned long) c; \
910
        register unsigned long __a3 asm("$7") = (unsigned long) d; \
911
        unsigned long __v0; \
912
        \
913
        __asm__ volatile ( \
914
        ".set\tnoreorder\n\t" \
915
        "lw\t$2, %6\n\t" \
916
        "lw\t$8, %7\n\t" \
917
        "subu\t$29, 32\n\t" \
918
        "sw\t$2, 16($29)\n\t" \
919
        "sw\t$8, 20($29)\n\t" \
920
        "li\t$2, %5\t\t\t# " #name "\n\t" \
921
        "syscall\n\t" \
922
        "move\t%0, $2\n\t" \
923
        "addiu\t$29, 32\n\t" \
924
        ".set\treorder" \
925
        : "=&r" (__v0), "+r" (__a3) \
926
        : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name), \
927
          "m" ((unsigned long)e), "m" ((unsigned long)f) \
928
        : "$2", "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
929
        \
930
        if (__a3 == 0) \
931
                return (type) __v0; \
932
        errno = __v0; \
933
        return -1; \
934
}
935
 
936
#endif /* (_MIPS_SIM == _MIPS_SIM_ABIN32) */
937
 
938
#if (_MIPS_SIM == _MIPS_SIM_NABIN32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
939
 
940
#define _syscall5(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e) \
941
type name (atype a,btype b,ctype c,dtype d,etype e) \
942
{ \
943
        register unsigned long __a0 asm("$4") = (unsigned long) a; \
944
        register unsigned long __a1 asm("$5") = (unsigned long) b; \
945
        register unsigned long __a2 asm("$6") = (unsigned long) c; \
946
        register unsigned long __a3 asm("$7") = (unsigned long) d; \
947
        register unsigned long __a4 asm("$8") = (unsigned long) e; \
948
        unsigned long __v0; \
949
        \
950
        __asm__ volatile ( \
951
        ".set\tnoreorder\n\t" \
952
        "li\t$2, %6\t\t\t# " #name "\n\t" \
953
        "syscall\n\t" \
954
        "move\t%0, $2\n\t" \
955
        ".set\treorder" \
956
        : "=&r" (__v0), "+r" (__a3), "+r" (__a4) \
957
        : "r" (__a0), "r" (__a1), "r" (__a2), "i" (__NR_##name) \
958
        : "$2","$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
959
        \
960
        if (__a3 == 0) \
961
                return (type) __v0; \
962
        errno = __v0; \
963
        return -1; \
964
}
965
 
966
#define _syscall6(type,name,atype,a,btype,b,ctype,c,dtype,d,etype,e,ftype,f) \
967
type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \
968
{ \
969
        register unsigned long __a0 asm("$4") = (unsigned long) a; \
970
        register unsigned long __a1 asm("$5") = (unsigned long) b; \
971
        register unsigned long __a2 asm("$6") = (unsigned long) c; \
972
        register unsigned long __a3 asm("$7") = (unsigned long) d; \
973
        register unsigned long __a4 asm("$8") = (unsigned long) e; \
974
        register unsigned long __a5 asm("$9") = (unsigned long) f; \
975
        unsigned long __v0; \
976
        \
977
        __asm__ volatile ( \
978
        ".set\tnoreorder\n\t" \
979
        "li\t$2, %7\t\t\t# " #name "\n\t" \
980
        "syscall\n\t" \
981
        "move\t%0, $2\n\t" \
982
        ".set\treorder" \
983
        : "=&r" (__v0), "+r" (__a3) \
984
        : "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), "r" (__a5), \
985
          "i" (__NR_##name) \
986
        : "$2","$9", "$10", "$11", "$12", "$13", "$14", "$15", "$24"); \
987
        \
988
        if (__a3 == 0) \
989
                return (type) __v0; \
990
        errno = __v0; \
991
        return -1; \
992
}
993
 
994
#endif /* (_MIPS_SIM == _MIPS_SIM_NABIN32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
995
 
996
#ifdef __KERNEL_SYSCALLS__
997
 
998
/*
999
 * we need this inline - forking from kernel space will result
1000
 * in NO COPY ON WRITE (!!!), until an execve is executed. This
1001
 * is no problem, but for the stack. This is handled by not letting
1002
 * main() use the stack at all after fork(). Thus, no function
1003
 * calls - which means inline code for fork too, as otherwise we
1004
 * would use the stack upon exit from 'fork()'.
1005
 *
1006
 * Actually only pause and fork are needed inline, so that there
1007
 * won't be any messing with the stack from main(), but we define
1008
 * some others too.
1009
 */
1010
#define __NR__exit __NR_exit
1011
static inline _syscall0(int,sync)
1012
static inline _syscall0(pid_t,setsid)
1013
static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
1014
static inline _syscall3(int,read,int,fd,char *,buf,off_t,count)
1015
static inline _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
1016
static inline _syscall1(int,dup,int,fd)
1017
static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
1018
static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
1019
static inline _syscall1(int,close,int,fd)
1020
static inline _syscall1(int,_exit,int,exitcode)
1021
static inline _syscall4(pid_t,wait4,pid_t,pid,int *,stat_addr,int,options,struct rusage *,ru)
1022
static inline _syscall1(int,delete_module,const char *,name)
1023
 
1024
static inline pid_t waitpid(int pid, int * wait_stat, int flags)
1025
{
1026
        return wait4(pid, wait_stat, flags, NULL);
1027
}
1028
 
1029
static inline pid_t wait(int * wait_stat)
1030
{
1031
        return waitpid(-1, wait_stat, 0);
1032
}
1033
 
1034
#endif /* __KERNEL_SYSCALLS__ */
1035
#endif /* !__ASSEMBLY__ */
1036
 
1037
#endif /* _ASM_UNISTD_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.