1
2#ifndef _SPARC64_UNISTD_H
3#define _SPARC64_UNISTD_H
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19#define __NR_exit 1
20#define __NR_fork 2
21#define __NR_read 3
22#define __NR_write 4
23#define __NR_open 5
24#define __NR_close 6
25#define __NR_wait4 7
26#define __NR_creat 8
27#define __NR_link 9
28#define __NR_unlink 10
29#define __NR_execv 11
30#define __NR_chdir 12
31#define __NR_chown 13
32#define __NR_mknod 14
33#define __NR_chmod 15
34#define __NR_lchown 16
35#define __NR_brk 17
36#define __NR_perfctr 18
37#define __NR_lseek 19
38#define __NR_getpid 20
39#define __NR_capget 21
40#define __NR_capset 22
41#define __NR_setuid 23
42#define __NR_getuid 24
43
44#define __NR_ptrace 26
45#define __NR_alarm 27
46#define __NR_sigaltstack 28
47#define __NR_pause 29
48#define __NR_utime 30
49
50
51#define __NR_access 33
52#define __NR_nice 34
53
54#define __NR_sync 36
55#define __NR_kill 37
56#define __NR_stat 38
57#define __NR_sendfile 39
58#define __NR_lstat 40
59#define __NR_dup 41
60#define __NR_pipe 42
61#define __NR_times 43
62
63#define __NR_umount2 45
64#define __NR_setgid 46
65#define __NR_getgid 47
66#define __NR_signal 48
67#define __NR_geteuid 49
68#define __NR_getegid 50
69#define __NR_acct 51
70#define __NR_memory_ordering 52
71
72#define __NR_ioctl 54
73#define __NR_reboot 55
74
75#define __NR_symlink 57
76#define __NR_readlink 58
77#define __NR_execve 59
78#define __NR_umask 60
79#define __NR_chroot 61
80#define __NR_fstat 62
81
82#define __NR_getpagesize 64
83#define __NR_msync 65
84#define __NR_vfork 66
85#define __NR_pread 67
86#define __NR_pwrite 68
87
88
89#define __NR_mmap 71
90
91#define __NR_munmap 73
92#define __NR_mprotect 74
93#define __NR_madvise 75
94#define __NR_vhangup 76
95
96#define __NR_mincore 78
97#define __NR_getgroups 79
98#define __NR_setgroups 80
99#define __NR_getpgrp 81
100
101#define __NR_setitimer 83
102
103#define __NR_swapon 85
104#define __NR_getitimer 86
105
106#define __NR_sethostname 88
107
108#define __NR_dup2 90
109
110#define __NR_fcntl 92
111#define __NR_select 93
112
113#define __NR_fsync 95
114#define __NR_setpriority 96
115#define __NR_socket 97
116#define __NR_connect 98
117#define __NR_accept 99
118#define __NR_getpriority 100
119#define __NR_rt_sigreturn 101
120#define __NR_rt_sigaction 102
121#define __NR_rt_sigprocmask 103
122#define __NR_rt_sigpending 104
123#define __NR_rt_sigtimedwait 105
124#define __NR_rt_sigqueueinfo 106
125#define __NR_rt_sigsuspend 107
126#define __NR_setresuid 108
127#define __NR_getresuid 109
128#define __NR_setresgid 110
129#define __NR_getresgid 111
130
131#define __NR_recvmsg 113
132#define __NR_sendmsg 114
133
134#define __NR_gettimeofday 116
135#define __NR_getrusage 117
136#define __NR_getsockopt 118
137#define __NR_getcwd 119
138#define __NR_readv 120
139#define __NR_writev 121
140#define __NR_settimeofday 122
141#define __NR_fchown 123
142#define __NR_fchmod 124
143#define __NR_recvfrom 125
144#define __NR_setreuid 126
145#define __NR_setregid 127
146#define __NR_rename 128
147#define __NR_truncate 129
148#define __NR_ftruncate 130
149#define __NR_flock 131
150
151#define __NR_sendto 133
152#define __NR_shutdown 134
153#define __NR_socketpair 135
154#define __NR_mkdir 136
155#define __NR_rmdir 137
156#define __NR_utimes 138
157
158
159#define __NR_getpeername 141
160
161#define __NR_gettid 143
162#define __NR_getrlimit 144
163#define __NR_setrlimit 145
164#define __NR_pivot_root 146
165#define __NR_prctl 147
166#define __NR_pciconfig_read 148
167#define __NR_pciconfig_write 149
168#define __NR_getsockname 150
169
170
171#define __NR_poll 153
172#define __NR_getdents64 154
173
174
175#define __NR_statfs 157
176#define __NR_fstatfs 158
177#define __NR_umount 159
178
179
180#define __NR_getdomainname 162
181#define __NR_setdomainname 163
182#define __NR_utrap_install 164
183#define __NR_quotactl 165
184
185#define __NR_mount 167
186#define __NR_ustat 168
187#define __NR_setxattr 169
188#define __NR_lsetxattr 170
189#define __NR_fsetxattr 171
190#define __NR_getxattr 172
191#define __NR_lgetxattr 173
192#define __NR_getdents 174
193#define __NR_setsid 175
194#define __NR_fchdir 176
195#define __NR_fgetxattr 177
196#define __NR_listxattr 178
197#define __NR_llistxattr 179
198#define __NR_flistxattr 180
199#define __NR_removexattr 181
200#define __NR_lremovexattr 182
201#define __NR_sigpending 183
202#define __NR_query_module 184
203#define __NR_setpgid 185
204#define __NR_fremovexattr 186
205#define __NR_tkill 187
206
207#define __NR_uname 189
208#define __NR_init_module 190
209#define __NR_personality 191
210
211
212
213
214
215#define __NR_getppid 197
216#define __NR_sigaction 198
217#define __NR_sgetmask 199
218#define __NR_ssetmask 200
219#define __NR_sigsuspend 201
220#define __NR_oldlstat 202
221#define __NR_uselib 203
222#define __NR_readdir 204
223#define __NR_readahead 205
224#define __NR_socketcall 206
225#define __NR_syslog 207
226
227
228
229
230#define __NR_waitpid 212
231#define __NR_swapoff 213
232#define __NR_sysinfo 214
233#define __NR_ipc 215
234#define __NR_sigreturn 216
235#define __NR_clone 217
236
237#define __NR_adjtimex 219
238#define __NR_sigprocmask 220
239#define __NR_create_module 221
240#define __NR_delete_module 222
241#define __NR_get_kernel_syms 223
242#define __NR_getpgid 224
243#define __NR_bdflush 225
244#define __NR_sysfs 226
245#define __NR_afs_syscall 227
246#define __NR_setfsuid 228
247#define __NR_setfsgid 229
248#define __NR__newselect 230
249#ifdef __KERNEL__
250#define __NR_time 231
251#endif
252
253#define __NR_stime 233
254
255
256#define __NR__llseek 236
257#define __NR_mlock 237
258#define __NR_munlock 238
259#define __NR_mlockall 239
260#define __NR_munlockall 240
261#define __NR_sched_setparam 241
262#define __NR_sched_getparam 242
263#define __NR_sched_setscheduler 243
264#define __NR_sched_getscheduler 244
265#define __NR_sched_yield 245
266#define __NR_sched_get_priority_max 246
267#define __NR_sched_get_priority_min 247
268#define __NR_sched_rr_get_interval 248
269#define __NR_nanosleep 249
270#define __NR_mremap 250
271#define __NR__sysctl 251
272#define __NR_getsid 252
273#define __NR_fdatasync 253
274#define __NR_nfsservctl 254
275#define __NR_aplib 255
276
277#define _syscall0(type,name) \
278type name(void) \
279{ \
280long __res; \
281register long __g1 __asm__ ("g1") = __NR_##name; \
282__asm__ __volatile__ ("t 0x6d\n\t" \
283 "sub %%g0, %%o0, %0\n\t" \
284 "movcc %%xcc, %%o0, %0\n\t" \
285 : "=r" (__res)\
286 : "r" (__g1) \
287 : "o0", "cc"); \
288if (__res >= 0) \
289 return (type) __res; \
290errno = -__res; \
291return -1; \
292}
293
294#define _syscall1(type,name,type1,arg1) \
295type name(type1 arg1) \
296{ \
297long __res; \
298register long __g1 __asm__ ("g1") = __NR_##name; \
299register long __o0 __asm__ ("o0") = (long)(arg1); \
300__asm__ __volatile__ ("t 0x6d\n\t" \
301 "sub %%g0, %%o0, %0\n\t" \
302 "movcc %%xcc, %%o0, %0\n\t" \
303 : "=r" (__res), "=&r" (__o0) \
304 : "1" (__o0), "r" (__g1) \
305 : "cc"); \
306if (__res >= 0) \
307 return (type) __res; \
308errno = -__res; \
309return -1; \
310}
311
312#define _syscall2(type,name,type1,arg1,type2,arg2) \
313type name(type1 arg1,type2 arg2) \
314{ \
315long __res; \
316register long __g1 __asm__ ("g1") = __NR_##name; \
317register long __o0 __asm__ ("o0") = (long)(arg1); \
318register long __o1 __asm__ ("o1") = (long)(arg2); \
319__asm__ __volatile__ ("t 0x6d\n\t" \
320 "sub %%g0, %%o0, %0\n\t" \
321 "movcc %%xcc, %%o0, %0\n\t" \
322 : "=r" (__res), "=&r" (__o0) \
323 : "1" (__o0), "r" (__o1), "r" (__g1) \
324 : "cc"); \
325if (__res >= 0) \
326 return (type) __res; \
327errno = -__res; \
328return -1; \
329}
330
331#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
332type name(type1 arg1,type2 arg2,type3 arg3) \
333{ \
334long __res; \
335register long __g1 __asm__ ("g1") = __NR_##name; \
336register long __o0 __asm__ ("o0") = (long)(arg1); \
337register long __o1 __asm__ ("o1") = (long)(arg2); \
338register long __o2 __asm__ ("o2") = (long)(arg3); \
339__asm__ __volatile__ ("t 0x6d\n\t" \
340 "sub %%g0, %%o0, %0\n\t" \
341 "movcc %%xcc, %%o0, %0\n\t" \
342 : "=r" (__res), "=&r" (__o0) \
343 : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__g1) \
344 : "cc"); \
345if (__res>=0) \
346 return (type) __res; \
347errno = -__res; \
348return -1; \
349}
350
351#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
352type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
353{ \
354long __res; \
355register long __g1 __asm__ ("g1") = __NR_##name; \
356register long __o0 __asm__ ("o0") = (long)(arg1); \
357register long __o1 __asm__ ("o1") = (long)(arg2); \
358register long __o2 __asm__ ("o2") = (long)(arg3); \
359register long __o3 __asm__ ("o3") = (long)(arg4); \
360__asm__ __volatile__ ("t 0x6d\n\t" \
361 "sub %%g0, %%o0, %0\n\t" \
362 "movcc %%xcc, %%o0, %0\n\t" \
363 : "=r" (__res), "=&r" (__o0) \
364 : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__g1) \
365 : "cc"); \
366if (__res>=0) \
367 return (type) __res; \
368errno = -__res; \
369return -1; \
370}
371
372#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
373 type5,arg5) \
374type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
375{ \
376long __res; \
377register long __g1 __asm__ ("g1") = __NR_##name; \
378register long __o0 __asm__ ("o0") = (long)(arg1); \
379register long __o1 __asm__ ("o1") = (long)(arg2); \
380register long __o2 __asm__ ("o2") = (long)(arg3); \
381register long __o3 __asm__ ("o3") = (long)(arg4); \
382register long __o4 __asm__ ("o4") = (long)(arg5); \
383__asm__ __volatile__ ("t 0x6d\n\t" \
384 "sub %%g0, %%o0, %0\n\t" \
385 "movcc %%xcc, %%o0, %0\n\t" \
386 : "=r" (__res), "=&r" (__o0) \
387 : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__o4), "r" (__g1) \
388 : "cc"); \
389if (__res>=0) \
390 return (type) __res; \
391errno = -__res; \
392return -1; \
393}
394#ifdef __KERNEL_SYSCALLS__
395
396
397
398
399
400
401
402
403
404
405
406
407
408#define __NR__exit __NR_exit
409static __inline__ _syscall0(int,pause)
410static __inline__ _syscall0(int,sync)
411static __inline__ _syscall0(pid_t,setsid)
412static __inline__ _syscall3(int,write,int,fd,__const__ char *,buf,off_t,count)
413static __inline__ _syscall3(int,read,int,fd,char *,buf,off_t,count)
414static __inline__ _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
415static __inline__ _syscall1(int,dup,int,fd)
416static __inline__ _syscall3(int,execve,__const__ char *,file,char **,argv,char **,envp)
417static __inline__ _syscall3(int,open,__const__ char *,file,int,flag,int,mode)
418static __inline__ _syscall1(int,close,int,fd)
419static __inline__ _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
420static __inline__ _syscall1(int,delete_module,const char *,name)
421
422static __inline__ pid_t wait(int * wait_stat)
423{
424 return waitpid(-1,wait_stat,0);
425}
426
427#endif
428
429#ifdef __KERNEL__
430
431#define _SC_ARG_MAX 1
432#define _SC_CHILD_MAX 2
433#define _SC_CLK_TCK 3
434#define _SC_NGROUPS_MAX 4
435#define _SC_OPEN_MAX 5
436#define _SC_JOB_CONTROL 6
437#define _SC_SAVED_IDS 7
438#define _SC_VERSION 8
439#endif
440
441#endif
442