1/*
2 *  linux/include/asm-arm/unistd.h
3 *
4 *  Copyright (C) 2001-2003 Russell King
5 *  Modified 25/11/04 Ian Molton for arm26.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * Please forward _all_ changes to this file to spyro@f2s.com
12 * no matter what the change is.  Thanks!
13 */
14#ifndef __ASM_ARM_UNISTD_H
15#define __ASM_ARM_UNISTD_H
16
17#define __NR_SYSCALL_BASE	0x900000
18
19/*
20 * This file contains the system call numbers.
21 */
22
23#define __NR_restart_syscall		(__NR_SYSCALL_BASE+  0)
24#define __NR_exit			(__NR_SYSCALL_BASE+  1)
25#define __NR_fork			(__NR_SYSCALL_BASE+  2)
26#define __NR_read			(__NR_SYSCALL_BASE+  3)
27#define __NR_write			(__NR_SYSCALL_BASE+  4)
28#define __NR_open			(__NR_SYSCALL_BASE+  5)
29#define __NR_close			(__NR_SYSCALL_BASE+  6)
30					/* 7 was sys_waitpid */
31#define __NR_creat			(__NR_SYSCALL_BASE+  8)
32#define __NR_link			(__NR_SYSCALL_BASE+  9)
33#define __NR_unlink			(__NR_SYSCALL_BASE+ 10)
34#define __NR_execve			(__NR_SYSCALL_BASE+ 11)
35#define __NR_chdir			(__NR_SYSCALL_BASE+ 12)
36#define __NR_time			(__NR_SYSCALL_BASE+ 13)
37#define __NR_mknod			(__NR_SYSCALL_BASE+ 14)
38#define __NR_chmod			(__NR_SYSCALL_BASE+ 15)
39#define __NR_lchown			(__NR_SYSCALL_BASE+ 16)
40					/* 17 was sys_break */
41					/* 18 was sys_stat */
42#define __NR_lseek			(__NR_SYSCALL_BASE+ 19)
43#define __NR_getpid			(__NR_SYSCALL_BASE+ 20)
44#define __NR_mount			(__NR_SYSCALL_BASE+ 21)
45#define __NR_umount			(__NR_SYSCALL_BASE+ 22)
46#define __NR_setuid			(__NR_SYSCALL_BASE+ 23)
47#define __NR_getuid			(__NR_SYSCALL_BASE+ 24)
48#define __NR_stime			(__NR_SYSCALL_BASE+ 25)
49#define __NR_ptrace			(__NR_SYSCALL_BASE+ 26)
50#define __NR_alarm			(__NR_SYSCALL_BASE+ 27)
51					/* 28 was sys_fstat */
52#define __NR_pause			(__NR_SYSCALL_BASE+ 29)
53#define __NR_utime			(__NR_SYSCALL_BASE+ 30)
54					/* 31 was sys_stty */
55					/* 32 was sys_gtty */
56#define __NR_access			(__NR_SYSCALL_BASE+ 33)
57#define __NR_nice			(__NR_SYSCALL_BASE+ 34)
58					/* 35 was sys_ftime */
59#define __NR_sync			(__NR_SYSCALL_BASE+ 36)
60#define __NR_kill			(__NR_SYSCALL_BASE+ 37)
61#define __NR_rename			(__NR_SYSCALL_BASE+ 38)
62#define __NR_mkdir			(__NR_SYSCALL_BASE+ 39)
63#define __NR_rmdir			(__NR_SYSCALL_BASE+ 40)
64#define __NR_dup			(__NR_SYSCALL_BASE+ 41)
65#define __NR_pipe			(__NR_SYSCALL_BASE+ 42)
66#define __NR_times			(__NR_SYSCALL_BASE+ 43)
67					/* 44 was sys_prof */
68#define __NR_brk			(__NR_SYSCALL_BASE+ 45)
69#define __NR_setgid			(__NR_SYSCALL_BASE+ 46)
70#define __NR_getgid			(__NR_SYSCALL_BASE+ 47)
71					/* 48 was sys_signal */
72#define __NR_geteuid			(__NR_SYSCALL_BASE+ 49)
73#define __NR_getegid			(__NR_SYSCALL_BASE+ 50)
74#define __NR_acct			(__NR_SYSCALL_BASE+ 51)
75#define __NR_umount2			(__NR_SYSCALL_BASE+ 52)
76					/* 53 was sys_lock */
77#define __NR_ioctl			(__NR_SYSCALL_BASE+ 54)
78#define __NR_fcntl			(__NR_SYSCALL_BASE+ 55)
79					/* 56 was sys_mpx */
80#define __NR_setpgid			(__NR_SYSCALL_BASE+ 57)
81					/* 58 was sys_ulimit */
82					/* 59 was sys_olduname */
83#define __NR_umask			(__NR_SYSCALL_BASE+ 60)
84#define __NR_chroot			(__NR_SYSCALL_BASE+ 61)
85#define __NR_ustat			(__NR_SYSCALL_BASE+ 62)
86#define __NR_dup2			(__NR_SYSCALL_BASE+ 63)
87#define __NR_getppid			(__NR_SYSCALL_BASE+ 64)
88#define __NR_getpgrp			(__NR_SYSCALL_BASE+ 65)
89#define __NR_setsid			(__NR_SYSCALL_BASE+ 66)
90#define __NR_sigaction			(__NR_SYSCALL_BASE+ 67)
91					/* 68 was sys_sgetmask */
92					/* 69 was sys_ssetmask */
93#define __NR_setreuid			(__NR_SYSCALL_BASE+ 70)
94#define __NR_setregid			(__NR_SYSCALL_BASE+ 71)
95#define __NR_sigsuspend			(__NR_SYSCALL_BASE+ 72)
96#define __NR_sigpending			(__NR_SYSCALL_BASE+ 73)
97#define __NR_sethostname		(__NR_SYSCALL_BASE+ 74)
98#define __NR_setrlimit			(__NR_SYSCALL_BASE+ 75)
99#define __NR_getrlimit			(__NR_SYSCALL_BASE+ 76)	/* Back compat 2GB limited rlimit */
100#define __NR_getrusage			(__NR_SYSCALL_BASE+ 77)
101#define __NR_gettimeofday		(__NR_SYSCALL_BASE+ 78)
102#define __NR_settimeofday		(__NR_SYSCALL_BASE+ 79)
103#define __NR_getgroups			(__NR_SYSCALL_BASE+ 80)
104#define __NR_setgroups			(__NR_SYSCALL_BASE+ 81)
105#define __NR_select			(__NR_SYSCALL_BASE+ 82)
106#define __NR_symlink			(__NR_SYSCALL_BASE+ 83)
107					/* 84 was sys_lstat */
108#define __NR_readlink			(__NR_SYSCALL_BASE+ 85)
109#define __NR_uselib			(__NR_SYSCALL_BASE+ 86)
110#define __NR_swapon			(__NR_SYSCALL_BASE+ 87)
111#define __NR_reboot			(__NR_SYSCALL_BASE+ 88)
112#define __NR_readdir			(__NR_SYSCALL_BASE+ 89)
113#define __NR_mmap			(__NR_SYSCALL_BASE+ 90)
114#define __NR_munmap			(__NR_SYSCALL_BASE+ 91)
115#define __NR_truncate			(__NR_SYSCALL_BASE+ 92)
116#define __NR_ftruncate			(__NR_SYSCALL_BASE+ 93)
117#define __NR_fchmod			(__NR_SYSCALL_BASE+ 94)
118#define __NR_fchown			(__NR_SYSCALL_BASE+ 95)
119#define __NR_getpriority		(__NR_SYSCALL_BASE+ 96)
120#define __NR_setpriority		(__NR_SYSCALL_BASE+ 97)
121					/* 98 was sys_profil */
122#define __NR_statfs			(__NR_SYSCALL_BASE+ 99)
123#define __NR_fstatfs			(__NR_SYSCALL_BASE+100)
124					/* 101 was sys_ioperm */
125#define __NR_socketcall			(__NR_SYSCALL_BASE+102)
126#define __NR_syslog			(__NR_SYSCALL_BASE+103)
127#define __NR_setitimer			(__NR_SYSCALL_BASE+104)
128#define __NR_getitimer			(__NR_SYSCALL_BASE+105)
129#define __NR_stat			(__NR_SYSCALL_BASE+106)
130#define __NR_lstat			(__NR_SYSCALL_BASE+107)
131#define __NR_fstat			(__NR_SYSCALL_BASE+108)
132					/* 109 was sys_uname */
133					/* 110 was sys_iopl */
134#define __NR_vhangup			(__NR_SYSCALL_BASE+111)
135					/* 112 was sys_idle */
136#define __NR_syscall			(__NR_SYSCALL_BASE+113) /* syscall to call a syscall! */
137#define __NR_wait4			(__NR_SYSCALL_BASE+114)
138#define __NR_swapoff			(__NR_SYSCALL_BASE+115)
139#define __NR_sysinfo			(__NR_SYSCALL_BASE+116)
140#define __NR_ipc			(__NR_SYSCALL_BASE+117)
141#define __NR_fsync			(__NR_SYSCALL_BASE+118)
142#define __NR_sigreturn			(__NR_SYSCALL_BASE+119)
143#define __NR_clone			(__NR_SYSCALL_BASE+120)
144#define __NR_setdomainname		(__NR_SYSCALL_BASE+121)
145#define __NR_uname			(__NR_SYSCALL_BASE+122)
146					/* 123 was sys_modify_ldt */
147#define __NR_adjtimex			(__NR_SYSCALL_BASE+124)
148#define __NR_mprotect			(__NR_SYSCALL_BASE+125)
149#define __NR_sigprocmask		(__NR_SYSCALL_BASE+126)
150					/* 127 was sys_create_module */
151#define __NR_init_module		(__NR_SYSCALL_BASE+128)
152#define __NR_delete_module		(__NR_SYSCALL_BASE+129)
153					/* 130 was sys_get_kernel_syms */
154#define __NR_quotactl			(__NR_SYSCALL_BASE+131)
155#define __NR_getpgid			(__NR_SYSCALL_BASE+132)
156#define __NR_fchdir			(__NR_SYSCALL_BASE+133)
157#define __NR_bdflush			(__NR_SYSCALL_BASE+134)
158#define __NR_sysfs			(__NR_SYSCALL_BASE+135)
159#define __NR_personality		(__NR_SYSCALL_BASE+136)
160					/* 137 was sys_afs_syscall */
161#define __NR_setfsuid			(__NR_SYSCALL_BASE+138)
162#define __NR_setfsgid			(__NR_SYSCALL_BASE+139)
163#define __NR__llseek			(__NR_SYSCALL_BASE+140)
164#define __NR_getdents			(__NR_SYSCALL_BASE+141)
165#define __NR__newselect			(__NR_SYSCALL_BASE+142)
166#define __NR_flock			(__NR_SYSCALL_BASE+143)
167#define __NR_msync			(__NR_SYSCALL_BASE+144)
168#define __NR_readv			(__NR_SYSCALL_BASE+145)
169#define __NR_writev			(__NR_SYSCALL_BASE+146)
170#define __NR_getsid			(__NR_SYSCALL_BASE+147)
171#define __NR_fdatasync			(__NR_SYSCALL_BASE+148)
172#define __NR__sysctl			(__NR_SYSCALL_BASE+149)
173#define __NR_mlock			(__NR_SYSCALL_BASE+150)
174#define __NR_munlock			(__NR_SYSCALL_BASE+151)
175#define __NR_mlockall			(__NR_SYSCALL_BASE+152)
176#define __NR_munlockall			(__NR_SYSCALL_BASE+153)
177#define __NR_sched_setparam		(__NR_SYSCALL_BASE+154)
178#define __NR_sched_getparam		(__NR_SYSCALL_BASE+155)
179#define __NR_sched_setscheduler		(__NR_SYSCALL_BASE+156)
180#define __NR_sched_getscheduler		(__NR_SYSCALL_BASE+157)
181#define __NR_sched_yield		(__NR_SYSCALL_BASE+158)
182#define __NR_sched_get_priority_max	(__NR_SYSCALL_BASE+159)
183#define __NR_sched_get_priority_min	(__NR_SYSCALL_BASE+160)
184#define __NR_sched_rr_get_interval	(__NR_SYSCALL_BASE+161)
185#define __NR_nanosleep			(__NR_SYSCALL_BASE+162)
186#define __NR_mremap			(__NR_SYSCALL_BASE+163)
187#define __NR_setresuid			(__NR_SYSCALL_BASE+164)
188#define __NR_getresuid			(__NR_SYSCALL_BASE+165)
189					/* 166 was sys_vm86 */
190					/* 167 was sys_query_module */
191#define __NR_poll			(__NR_SYSCALL_BASE+168)
192#define __NR_nfsservctl			(__NR_SYSCALL_BASE+169)
193#define __NR_setresgid			(__NR_SYSCALL_BASE+170)
194#define __NR_getresgid			(__NR_SYSCALL_BASE+171)
195#define __NR_prctl			(__NR_SYSCALL_BASE+172)
196#define __NR_rt_sigreturn		(__NR_SYSCALL_BASE+173)
197#define __NR_rt_sigaction		(__NR_SYSCALL_BASE+174)
198#define __NR_rt_sigprocmask		(__NR_SYSCALL_BASE+175)
199#define __NR_rt_sigpending		(__NR_SYSCALL_BASE+176)
200#define __NR_rt_sigtimedwait		(__NR_SYSCALL_BASE+177)
201#define __NR_rt_sigqueueinfo		(__NR_SYSCALL_BASE+178)
202#define __NR_rt_sigsuspend		(__NR_SYSCALL_BASE+179)
203#define __NR_pread64			(__NR_SYSCALL_BASE+180)
204#define __NR_pwrite64			(__NR_SYSCALL_BASE+181)
205#define __NR_chown			(__NR_SYSCALL_BASE+182)
206#define __NR_getcwd			(__NR_SYSCALL_BASE+183)
207#define __NR_capget			(__NR_SYSCALL_BASE+184)
208#define __NR_capset			(__NR_SYSCALL_BASE+185)
209#define __NR_sigaltstack		(__NR_SYSCALL_BASE+186)
210#define __NR_sendfile			(__NR_SYSCALL_BASE+187)
211					/* 188 reserved */
212					/* 189 reserved */
213#define __NR_vfork			(__NR_SYSCALL_BASE+190)
214#define __NR_ugetrlimit			(__NR_SYSCALL_BASE+191)	/* SuS compliant getrlimit */
215#define __NR_mmap2			(__NR_SYSCALL_BASE+192)
216#define __NR_truncate64			(__NR_SYSCALL_BASE+193)
217#define __NR_ftruncate64		(__NR_SYSCALL_BASE+194)
218#define __NR_stat64			(__NR_SYSCALL_BASE+195)
219#define __NR_lstat64			(__NR_SYSCALL_BASE+196)
220#define __NR_fstat64			(__NR_SYSCALL_BASE+197)
221#define __NR_lchown32			(__NR_SYSCALL_BASE+198)
222#define __NR_getuid32			(__NR_SYSCALL_BASE+199)
223#define __NR_getgid32			(__NR_SYSCALL_BASE+200)
224#define __NR_geteuid32			(__NR_SYSCALL_BASE+201)
225#define __NR_getegid32			(__NR_SYSCALL_BASE+202)
226#define __NR_setreuid32			(__NR_SYSCALL_BASE+203)
227#define __NR_setregid32			(__NR_SYSCALL_BASE+204)
228#define __NR_getgroups32		(__NR_SYSCALL_BASE+205)
229#define __NR_setgroups32		(__NR_SYSCALL_BASE+206)
230#define __NR_fchown32			(__NR_SYSCALL_BASE+207)
231#define __NR_setresuid32		(__NR_SYSCALL_BASE+208)
232#define __NR_getresuid32		(__NR_SYSCALL_BASE+209)
233#define __NR_setresgid32		(__NR_SYSCALL_BASE+210)
234#define __NR_getresgid32		(__NR_SYSCALL_BASE+211)
235#define __NR_chown32			(__NR_SYSCALL_BASE+212)
236#define __NR_setuid32			(__NR_SYSCALL_BASE+213)
237#define __NR_setgid32			(__NR_SYSCALL_BASE+214)
238#define __NR_setfsuid32			(__NR_SYSCALL_BASE+215)
239#define __NR_setfsgid32			(__NR_SYSCALL_BASE+216)
240#define __NR_getdents64			(__NR_SYSCALL_BASE+217)
241#define __NR_pivot_root			(__NR_SYSCALL_BASE+218)
242#define __NR_mincore			(__NR_SYSCALL_BASE+219)
243#define __NR_madvise			(__NR_SYSCALL_BASE+220)
244#define __NR_fcntl64			(__NR_SYSCALL_BASE+221)
245					/* 222 for tux */
246					/* 223 is unused */
247#define __NR_gettid			(__NR_SYSCALL_BASE+224)
248#define __NR_readahead			(__NR_SYSCALL_BASE+225)
249#define __NR_setxattr			(__NR_SYSCALL_BASE+226)
250#define __NR_lsetxattr			(__NR_SYSCALL_BASE+227)
251#define __NR_fsetxattr			(__NR_SYSCALL_BASE+228)
252#define __NR_getxattr			(__NR_SYSCALL_BASE+229)
253#define __NR_lgetxattr			(__NR_SYSCALL_BASE+230)
254#define __NR_fgetxattr			(__NR_SYSCALL_BASE+231)
255#define __NR_listxattr			(__NR_SYSCALL_BASE+232)
256#define __NR_llistxattr			(__NR_SYSCALL_BASE+233)
257#define __NR_flistxattr			(__NR_SYSCALL_BASE+234)
258#define __NR_removexattr		(__NR_SYSCALL_BASE+235)
259#define __NR_lremovexattr		(__NR_SYSCALL_BASE+236)
260#define __NR_fremovexattr		(__NR_SYSCALL_BASE+237)
261#define __NR_tkill			(__NR_SYSCALL_BASE+238)
262#define __NR_sendfile64			(__NR_SYSCALL_BASE+239)
263#define __NR_futex			(__NR_SYSCALL_BASE+240)
264#define __NR_sched_setaffinity		(__NR_SYSCALL_BASE+241)
265#define __NR_sched_getaffinity		(__NR_SYSCALL_BASE+242)
266#define __NR_io_setup			(__NR_SYSCALL_BASE+243)
267#define __NR_io_destroy			(__NR_SYSCALL_BASE+244)
268#define __NR_io_getevents		(__NR_SYSCALL_BASE+245)
269#define __NR_io_submit			(__NR_SYSCALL_BASE+246)
270#define __NR_io_cancel			(__NR_SYSCALL_BASE+247)
271#define __NR_exit_group			(__NR_SYSCALL_BASE+248)
272#define __NR_lookup_dcookie		(__NR_SYSCALL_BASE+249)
273#define __NR_epoll_create		(__NR_SYSCALL_BASE+250)
274#define __NR_epoll_ctl			(__NR_SYSCALL_BASE+251)
275#define __NR_epoll_wait			(__NR_SYSCALL_BASE+252)
276#define __NR_remap_file_pages		(__NR_SYSCALL_BASE+253)
277					/* 254 for set_thread_area */
278					/* 255 for get_thread_area */
279					/* 256 for set_tid_address */
280#define __NR_timer_create		(__NR_SYSCALL_BASE+257)
281#define __NR_timer_settime		(__NR_SYSCALL_BASE+258)
282#define __NR_timer_gettime		(__NR_SYSCALL_BASE+259)
283#define __NR_timer_getoverrun		(__NR_SYSCALL_BASE+260)
284#define __NR_timer_delete		(__NR_SYSCALL_BASE+261)
285#define __NR_clock_settime		(__NR_SYSCALL_BASE+262)
286#define __NR_clock_gettime		(__NR_SYSCALL_BASE+263)
287#define __NR_clock_getres		(__NR_SYSCALL_BASE+264)
288#define __NR_clock_nanosleep		(__NR_SYSCALL_BASE+265)
289#define __NR_statfs64			(__NR_SYSCALL_BASE+266)
290#define __NR_fstatfs64			(__NR_SYSCALL_BASE+267)
291#define __NR_tgkill			(__NR_SYSCALL_BASE+268)
292#define __NR_utimes			(__NR_SYSCALL_BASE+269)
293#define __NR_fadvise64_64		(__NR_SYSCALL_BASE+270)
294#define __NR_pciconfig_iobase		(__NR_SYSCALL_BASE+271)
295#define __NR_pciconfig_read		(__NR_SYSCALL_BASE+272)
296#define __NR_pciconfig_write		(__NR_SYSCALL_BASE+273)
297#define __NR_mq_open			(__NR_SYSCALL_BASE+274)
298#define __NR_mq_unlink			(__NR_SYSCALL_BASE+275)
299#define __NR_mq_timedsend		(__NR_SYSCALL_BASE+276)
300#define __NR_mq_timedreceive		(__NR_SYSCALL_BASE+277)
301#define __NR_mq_notify			(__NR_SYSCALL_BASE+278)
302#define __NR_mq_getsetattr		(__NR_SYSCALL_BASE+279)
303#define __NR_waitid			(__NR_SYSCALL_BASE+280)
304
305#define __ARM_NR_BASE			(__NR_SYSCALL_BASE+0x0f0000)
306#define __ARM_NR_breakpoint		(__ARM_NR_BASE+1)
307#define __ARM_NR_cacheflush		(__ARM_NR_BASE+2)
308#define __ARM_NR_usr26			(__ARM_NR_BASE+3)
309
310#ifdef __KERNEL__
311
312#define __ARCH_WANT_IPC_PARSE_VERSION
313#define __ARCH_WANT_OLD_READDIR
314#define __ARCH_WANT_STAT64
315#define __ARCH_WANT_SYS_ALARM
316#define __ARCH_WANT_SYS_GETHOSTNAME
317#define __ARCH_WANT_SYS_PAUSE
318#define __ARCH_WANT_SYS_TIME
319#define __ARCH_WANT_SYS_UTIME
320#define __ARCH_WANT_SYS_SOCKETCALL
321#define __ARCH_WANT_SYS_FADVISE64
322#define __ARCH_WANT_SYS_GETPGRP
323#define __ARCH_WANT_SYS_LLSEEK
324#define __ARCH_WANT_SYS_NICE
325#define __ARCH_WANT_SYS_OLD_GETRLIMIT
326#define __ARCH_WANT_SYS_OLDUMOUNT
327#define __ARCH_WANT_SYS_SIGPENDING
328#define __ARCH_WANT_SYS_SIGPROCMASK
329#define __ARCH_WANT_SYS_RT_SIGACTION
330
331/*
332 * "Conditional" syscalls
333 *
334 * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
335 * but it doesn't work on all toolchains, so we just do it by hand
336 */
337#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
338
339#endif /* __KERNEL__ */
340#endif /* __ASM_ARM_UNISTD_H */
341