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

Subversion Repositories or1k

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

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

Line No. Rev Author Line
1 1276 phoenix
#ifndef __ASM_SH64_UNISTD_H
2
#define __ASM_SH64_UNISTD_H
3
 
4
/*
5
 * This file is subject to the terms and conditions of the GNU General Public
6
 * License.  See the file "COPYING" in the main directory of this archive
7
 * for more details.
8
 *
9
 * include/asm-sh64/unistd.h
10
 *
11
 * Copyright (C) 2000, 2001  Paolo Alberelli
12
 *
13
 * This file contains the system call numbers.
14
 *
15
 */
16
 
17
#define __NR_setup                0     /* used only by init, to get system going */
18
#define __NR_exit                 1
19
#define __NR_fork                 2
20
#define __NR_read                 3
21
#define __NR_write                4
22
#define __NR_open                 5
23
#define __NR_close                6
24
#define __NR_waitpid              7
25
#define __NR_creat                8
26
#define __NR_link                 9
27
#define __NR_unlink              10
28
#define __NR_execve              11
29
#define __NR_chdir               12
30
#define __NR_time                13
31
#define __NR_mknod               14
32
#define __NR_chmod               15
33
#define __NR_lchown              16
34
#define __NR_break               17
35
#define __NR_oldstat             18
36
#define __NR_lseek               19
37
#define __NR_getpid              20
38
#define __NR_mount               21
39
#define __NR_umount              22
40
#define __NR_setuid              23
41
#define __NR_getuid              24
42
#define __NR_stime               25
43
#define __NR_ptrace              26
44
#define __NR_alarm               27
45
#define __NR_oldfstat            28
46
#define __NR_pause               29
47
#define __NR_utime               30
48
#define __NR_stty                31
49
#define __NR_gtty                32
50
#define __NR_access              33
51
#define __NR_nice                34
52
#define __NR_ftime               35
53
#define __NR_sync                36
54
#define __NR_kill                37
55
#define __NR_rename              38
56
#define __NR_mkdir               39
57
#define __NR_rmdir               40
58
#define __NR_dup                 41
59
#define __NR_pipe                42
60
#define __NR_times               43
61
#define __NR_prof                44
62
#define __NR_brk                 45
63
#define __NR_setgid              46
64
#define __NR_getgid              47
65
#define __NR_signal              48
66
#define __NR_geteuid             49
67
#define __NR_getegid             50
68
#define __NR_acct                51
69
#define __NR_umount2             52
70
#define __NR_lock                53
71
#define __NR_ioctl               54
72
#define __NR_fcntl               55
73
#define __NR_mpx                 56
74
#define __NR_setpgid             57
75
#define __NR_ulimit              58
76
#define __NR_oldolduname         59
77
#define __NR_umask               60
78
#define __NR_chroot              61
79
#define __NR_ustat               62
80
#define __NR_dup2                63
81
#define __NR_getppid             64
82
#define __NR_getpgrp             65
83
#define __NR_setsid              66
84
#define __NR_sigaction           67
85
#define __NR_sgetmask            68
86
#define __NR_ssetmask            69
87
#define __NR_setreuid            70
88
#define __NR_setregid            71
89
#define __NR_sigsuspend          72
90
#define __NR_sigpending          73
91
#define __NR_sethostname         74
92
#define __NR_setrlimit           75
93
#define __NR_getrlimit           76     /* Back compatible 2Gig limited rlimit */
94
#define __NR_getrusage           77
95
#define __NR_gettimeofday        78
96
#define __NR_settimeofday        79
97
#define __NR_getgroups           80
98
#define __NR_setgroups           81
99
#define __NR_select              82
100
#define __NR_symlink             83
101
#define __NR_oldlstat            84
102
#define __NR_readlink            85
103
#define __NR_uselib              86
104
#define __NR_swapon              87
105
#define __NR_reboot              88
106
#define __NR_readdir             89
107
#define __NR_mmap                90
108
#define __NR_munmap              91
109
#define __NR_truncate            92
110
#define __NR_ftruncate           93
111
#define __NR_fchmod              94
112
#define __NR_fchown              95
113
#define __NR_getpriority         96
114
#define __NR_setpriority         97
115
#define __NR_profil              98
116
#define __NR_statfs              99
117
#define __NR_fstatfs            100
118
#define __NR_ioperm             101
119
#define __NR_socketcall         102     /* old implementation of socket systemcall */
120
#define __NR_syslog             103
121
#define __NR_setitimer          104
122
#define __NR_getitimer          105
123
#define __NR_stat               106
124
#define __NR_lstat              107
125
#define __NR_fstat              108
126
#define __NR_olduname           109
127
#define __NR_iopl               110
128
#define __NR_vhangup            111
129
#define __NR_idle               112
130
#define __NR_vm86old            113
131
#define __NR_wait4              114
132
#define __NR_swapoff            115
133
#define __NR_sysinfo            116
134
#define __NR_ipc                117
135
#define __NR_fsync              118
136
#define __NR_sigreturn          119
137
#define __NR_clone              120
138
#define __NR_setdomainname      121
139
#define __NR_uname              122
140
#define __NR_modify_ldt         123
141
#define __NR_adjtimex           124
142
#define __NR_mprotect           125
143
#define __NR_sigprocmask        126
144
#define __NR_create_module      127
145
#define __NR_init_module        128
146
#define __NR_delete_module      129
147
#define __NR_get_kernel_syms    130
148
#define __NR_quotactl           131
149
#define __NR_getpgid            132
150
#define __NR_fchdir             133
151
#define __NR_bdflush            134
152
#define __NR_sysfs              135
153
#define __NR_personality        136
154
#define __NR_afs_syscall        137 /* Syscall for Andrew File System */
155
#define __NR_setfsuid           138
156
#define __NR_setfsgid           139
157
#define __NR__llseek            140
158
#define __NR_getdents           141
159
#define __NR__newselect         142
160
#define __NR_flock              143
161
#define __NR_msync              144
162
#define __NR_readv              145
163
#define __NR_writev             146
164
#define __NR_getsid             147
165
#define __NR_fdatasync          148
166
#define __NR__sysctl            149
167
#define __NR_mlock              150
168
#define __NR_munlock            151
169
#define __NR_mlockall           152
170
#define __NR_munlockall         153
171
#define __NR_sched_setparam             154
172
#define __NR_sched_getparam             155
173
#define __NR_sched_setscheduler         156
174
#define __NR_sched_getscheduler         157
175
#define __NR_sched_yield                158
176
#define __NR_sched_get_priority_max     159
177
#define __NR_sched_get_priority_min     160
178
#define __NR_sched_rr_get_interval      161
179
#define __NR_nanosleep          162
180
#define __NR_mremap             163
181
#define __NR_setresuid          164
182
#define __NR_getresuid          165
183
#define __NR_vm86               166
184
#define __NR_query_module       167
185
#define __NR_poll               168
186
#define __NR_nfsservctl         169
187
#define __NR_setresgid          170
188
#define __NR_getresgid          171
189
#define __NR_prctl              172
190
#define __NR_rt_sigreturn       173
191
#define __NR_rt_sigaction       174
192
#define __NR_rt_sigprocmask     175
193
#define __NR_rt_sigpending      176
194
#define __NR_rt_sigtimedwait    177
195
#define __NR_rt_sigqueueinfo    178
196
#define __NR_rt_sigsuspend      179
197
#define __NR_pread              180
198
#define __NR_pwrite             181
199
#define __NR_chown              182
200
#define __NR_getcwd             183
201
#define __NR_capget             184
202
#define __NR_capset             185
203
#define __NR_sigaltstack        186
204
#define __NR_sendfile           187
205
#define __NR_streams1           188     /* some people actually want it */
206
#define __NR_streams2           189     /* some people actually want it */
207
#define __NR_vfork              190
208
#define __NR_ugetrlimit         191     /* SuS compliant getrlimit */
209
#define __NR_mmap2              192
210
#define __NR_truncate64         193
211
#define __NR_ftruncate64        194
212
#define __NR_stat64             195
213
#define __NR_lstat64            196
214
#define __NR_fstat64            197
215
#define __NR_lchown32           198
216
#define __NR_getuid32           199
217
#define __NR_getgid32           200
218
#define __NR_geteuid32          201
219
#define __NR_getegid32          202
220
#define __NR_setreuid32         203
221
#define __NR_setregid32         204
222
#define __NR_getgroups32        205
223
#define __NR_setgroups32        206
224
#define __NR_fchown32           207
225
#define __NR_setresuid32        208
226
#define __NR_getresuid32        209
227
#define __NR_setresgid32        210
228
#define __NR_getresgid32        211
229
#define __NR_chown32            212
230
#define __NR_setuid32           213
231
#define __NR_setgid32           214
232
#define __NR_setfsuid32         215
233
#define __NR_setfsgid32         216
234
#define __NR_pivot_root         217
235
#define __NR_mincore            218
236
#define __NR_madvise            219
237
#define __NR_socket             220     /* New socket system calls implementation */
238
#define __NR_bind               221
239
#define __NR_connect            222
240
#define __NR_listen             223
241
#define __NR_accept             224
242
#define __NR_getsockname        225
243
#define __NR_getpeername        226
244
#define __NR_socketpair         227
245
#define __NR_send               228
246
#define __NR_sendto             229
247
#define __NR_recv               230
248
#define __NR_recvfrom           231
249
#define __NR_shutdown           232
250
#define __NR_setsockopt         233
251
#define __NR_getsockopt         234
252
#define __NR_sendmsg            235
253
#define __NR_recvmsg            236
254
#define __NR_semop              237     /* New ipc system calls implementation */
255
#define __NR_semget             238
256
#define __NR_semctl             239
257
#define __NR_msgsnd             240
258
#define __NR_msgrcv             241
259
#define __NR_msgget             242
260
#define __NR_msgctl             243
261
#define __NR_shmatcall          244
262
#define __NR_shmdt              245
263
#define __NR_shmget             246
264
#define __NR_shmctl             247
265
 
266
 
267
/* user-visible error numbers are in the range -1 - -125: see <asm-sh64/errno.h> */
268
 
269
#define __syscall_return(type, res) \
270
do { \
271
        /* Note: when returning from kernel the return value is in r9       \
272
        **       This prevents conflicts between return value and arg1      \
273
        **       when dispatching signal handler, in other words makes      \
274
        **       life easier in the system call epilogue (see entry.S)      \
275
        */                                                                  \
276
        register unsigned long __sr2 __asm__ ("r2") = res;                  \
277
        if ((unsigned long)(res) >= (unsigned long)(-125)) { \
278
                errno = -(res);                                             \
279
                __sr2 = -1;                                                 \
280
        } \
281
        return (type) (__sr2);                                              \
282
} while (0)
283
 
284
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
285
 
286
#define _syscall0(type,name) \
287
type name(void) \
288
{ \
289
register unsigned long __sc0 __asm__ ("r9") = ((0x10 << 16) | __NR_##name); \
290
__asm__ __volatile__ ("trapa    %1" \
291
        : "=r" (__sc0)                                                      \
292
        : "r" (__sc0) );                                                    \
293
__syscall_return(type,__sc0);                                               \
294
}
295
 
296
#define _syscall1(type,name,type1,arg1) \
297
type name(type1 arg1) \
298
{ \
299
register unsigned long __sc0 __asm__ ("r9") = ((0x11 << 16) | __NR_##name); \
300
register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1;         \
301
__asm__ __volatile__ ("trapa    %1" \
302
        : "=r" (__sc0)                                                      \
303
        : "r" (__sc0), "r" (__sc2));                                        \
304
__syscall_return(type,__sc0);                                               \
305
}
306
 
307
#define _syscall2(type,name,type1,arg1,type2,arg2) \
308
type name(type1 arg1,type2 arg2) \
309
{ \
310
register unsigned long __sc0 __asm__ ("r9") = ((0x12 << 16) | __NR_##name); \
311
register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1;         \
312
register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2;         \
313
__asm__ __volatile__ ("trapa    %1" \
314
        : "=r" (__sc0)                                                      \
315
        : "r" (__sc0), "r" (__sc2), "r" (__sc3) );                          \
316
__syscall_return(type,__sc0);                                               \
317
}
318
 
319
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
320
type name(type1 arg1,type2 arg2,type3 arg3) \
321
{ \
322
register unsigned long __sc0 __asm__ ("r9") = ((0x13 << 16) | __NR_##name); \
323
register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1;         \
324
register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2;         \
325
register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3;         \
326
__asm__ __volatile__ ("trapa    %1" \
327
        : "=r" (__sc0)                                                      \
328
        : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4) );             \
329
__syscall_return(type,__sc0);                                               \
330
}
331
 
332
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
333
type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
334
{ \
335
register unsigned long __sc0 __asm__ ("r9") = ((0x14 << 16) | __NR_##name); \
336
register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1;         \
337
register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2;         \
338
register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3;         \
339
register unsigned long __sc5 __asm__ ("r5") = (unsigned long) arg4;         \
340
__asm__ __volatile__ ("trapa    %1" \
341
        : "=r" (__sc0)                                                      \
342
        : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5) );\
343
__syscall_return(type,__sc0);                                               \
344
}
345
 
346
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
347
type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
348
{ \
349
register unsigned long __sc0 __asm__ ("r9") = ((0x15 << 16) | __NR_##name); \
350
register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1;         \
351
register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2;         \
352
register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3;         \
353
register unsigned long __sc5 __asm__ ("r5") = (unsigned long) arg4;         \
354
register unsigned long __sc6 __asm__ ("r6") = (unsigned long) arg5;         \
355
__asm__ __volatile__ ("trapa    %1" \
356
        : "=r" (__sc0)                                                      \
357
        : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5), \
358
          "r" (__sc6));                                                     \
359
__syscall_return(type,__sc0);                                               \
360
}
361
 
362
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5, type6, arg6) \
363
type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) \
364
{ \
365
register unsigned long __sc0 __asm__ ("r9") = ((0x16 << 16) | __NR_##name); \
366
register unsigned long __sc2 __asm__ ("r2") = (unsigned long) arg1;         \
367
register unsigned long __sc3 __asm__ ("r3") = (unsigned long) arg2;         \
368
register unsigned long __sc4 __asm__ ("r4") = (unsigned long) arg3;         \
369
register unsigned long __sc5 __asm__ ("r5") = (unsigned long) arg4;         \
370
register unsigned long __sc6 __asm__ ("r6") = (unsigned long) arg5;         \
371
register unsigned long __sc7 __asm__ ("r7") = (unsigned long) arg6;         \
372
__asm__ __volatile__ ("trapa    %1" \
373
        : "=r" (__sc0)                                                      \
374
        : "r" (__sc0), "r" (__sc2), "r" (__sc3), "r" (__sc4), "r" (__sc5), \
375
          "r" (__sc6), "r" (__sc7));                                        \
376
__syscall_return(type,__sc0);                                               \
377
}
378
 
379
 
380
#ifdef __KERNEL_SYSCALLS__
381
 
382
/*
383
 * we need this inline - forking from kernel space will result
384
 * in NO COPY ON WRITE (!!!), until an execve is executed. This
385
 * is no problem, but for the stack. This is handled by not letting
386
 * main() use the stack at all after fork(). Thus, no function
387
 * calls - which means inline code for fork too, as otherwise we
388
 * would use the stack upon exit from 'fork()'.
389
 *
390
 * Actually only pause and fork are needed inline, so that there
391
 * won't be any messing with the stack from main(), but we define
392
 * some others too.
393
 */
394
#define __NR__exit __NR_exit
395
static __inline__ _syscall0(int,pause)
396
static __inline__ _syscall1(int,setup,int,magic)
397
static __inline__ _syscall0(int,sync)
398
static __inline__ _syscall0(pid_t,setsid)
399
static __inline__ _syscall3(int,write,int,fd,const char *,buf,off_t,count)
400
static __inline__ _syscall3(int,read,int,fd,char *,buf,off_t,count)
401
static __inline__ _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
402
static __inline__ _syscall1(int,dup,int,fd)
403
static __inline__ _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
404
static __inline__ _syscall3(int,open,const char *,file,int,flag,int,mode)
405
static __inline__ _syscall1(int,close,int,fd)
406
static __inline__ _syscall1(int,_exit,int,exitcode)
407
static __inline__ _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
408
static __inline__ _syscall1(int,delete_module,const char *,name)
409
 
410
static __inline__ pid_t wait(int * wait_stat)
411
{
412
        return waitpid(-1,wait_stat,0);
413
}
414
#endif
415
 
416
#endif /* __ASM_SH64_UNISTD_H */

powered by: WebSVN 2.1.0

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