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

Subversion Repositories or1k

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

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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