Goodbye mips64. 31704 lines of code bite the dust.
[linux-2.6/linux-mips.git] / include / asm-ia64 / unistd.h
blobdb02239d44b81b62dae58710e2e7f36653416490
1 #ifndef _ASM_IA64_UNISTD_H
2 #define _ASM_IA64_UNISTD_H
4 /*
5 * IA-64 Linux syscall numbers and inline-functions.
7 * Copyright (C) 1998-2003 Hewlett-Packard Co
8 * David Mosberger-Tang <davidm@hpl.hp.com>
9 */
11 #include <asm/break.h>
13 #define __BREAK_SYSCALL __IA64_BREAK_SYSCALL
15 #define __NR_ni_syscall 1024
16 #define __NR_exit 1025
17 #define __NR_read 1026
18 #define __NR_write 1027
19 #define __NR_open 1028
20 #define __NR_close 1029
21 #define __NR_creat 1030
22 #define __NR_link 1031
23 #define __NR_unlink 1032
24 #define __NR_execve 1033
25 #define __NR_chdir 1034
26 #define __NR_fchdir 1035
27 #define __NR_utimes 1036
28 #define __NR_mknod 1037
29 #define __NR_chmod 1038
30 #define __NR_chown 1039
31 #define __NR_lseek 1040
32 #define __NR_getpid 1041
33 #define __NR_getppid 1042
34 #define __NR_mount 1043
35 #define __NR_umount 1044
36 #define __NR_setuid 1045
37 #define __NR_getuid 1046
38 #define __NR_geteuid 1047
39 #define __NR_ptrace 1048
40 #define __NR_access 1049
41 #define __NR_sync 1050
42 #define __NR_fsync 1051
43 #define __NR_fdatasync 1052
44 #define __NR_kill 1053
45 #define __NR_rename 1054
46 #define __NR_mkdir 1055
47 #define __NR_rmdir 1056
48 #define __NR_dup 1057
49 #define __NR_pipe 1058
50 #define __NR_times 1059
51 #define __NR_brk 1060
52 #define __NR_setgid 1061
53 #define __NR_getgid 1062
54 #define __NR_getegid 1063
55 #define __NR_acct 1064
56 #define __NR_ioctl 1065
57 #define __NR_fcntl 1066
58 #define __NR_umask 1067
59 #define __NR_chroot 1068
60 #define __NR_ustat 1069
61 #define __NR_dup2 1070
62 #define __NR_setreuid 1071
63 #define __NR_setregid 1072
64 #define __NR_getresuid 1073
65 #define __NR_setresuid 1074
66 #define __NR_getresgid 1075
67 #define __NR_setresgid 1076
68 #define __NR_getgroups 1077
69 #define __NR_setgroups 1078
70 #define __NR_getpgid 1079
71 #define __NR_setpgid 1080
72 #define __NR_setsid 1081
73 #define __NR_getsid 1082
74 #define __NR_sethostname 1083
75 #define __NR_setrlimit 1084
76 #define __NR_getrlimit 1085
77 #define __NR_getrusage 1086
78 #define __NR_gettimeofday 1087
79 #define __NR_settimeofday 1088
80 #define __NR_select 1089
81 #define __NR_poll 1090
82 #define __NR_symlink 1091
83 #define __NR_readlink 1092
84 #define __NR_uselib 1093
85 #define __NR_swapon 1094
86 #define __NR_swapoff 1095
87 #define __NR_reboot 1096
88 #define __NR_truncate 1097
89 #define __NR_ftruncate 1098
90 #define __NR_fchmod 1099
91 #define __NR_fchown 1100
92 #define __NR_getpriority 1101
93 #define __NR_setpriority 1102
94 #define __NR_statfs 1103
95 #define __NR_fstatfs 1104
96 #define __NR_gettid 1105
97 #define __NR_semget 1106
98 #define __NR_semop 1107
99 #define __NR_semctl 1108
100 #define __NR_msgget 1109
101 #define __NR_msgsnd 1110
102 #define __NR_msgrcv 1111
103 #define __NR_msgctl 1112
104 #define __NR_shmget 1113
105 #define __NR_shmat 1114
106 #define __NR_shmdt 1115
107 #define __NR_shmctl 1116
108 /* also known as klogctl() in GNU libc: */
109 #define __NR_syslog 1117
110 #define __NR_setitimer 1118
111 #define __NR_getitimer 1119
112 /* 1120 was __NR_old_stat */
113 /* 1121 was __NR_old_lstat */
114 /* 1122 was __NR_old_fstat */
115 #define __NR_vhangup 1123
116 #define __NR_lchown 1124
117 #define __NR_remap_file_pages 1125
118 #define __NR_wait4 1126
119 #define __NR_sysinfo 1127
120 #define __NR_clone 1128
121 #define __NR_setdomainname 1129
122 #define __NR_uname 1130
123 #define __NR_adjtimex 1131
124 /* 1132 was __NR_create_module */
125 #define __NR_init_module 1133
126 #define __NR_delete_module 1134
127 /* 1135 was __NR_get_kernel_syms */
128 /* 1136 was __NR_query_module */
129 #define __NR_quotactl 1137
130 #define __NR_bdflush 1138
131 #define __NR_sysfs 1139
132 #define __NR_personality 1140
133 #define __NR_afs_syscall 1141
134 #define __NR_setfsuid 1142
135 #define __NR_setfsgid 1143
136 #define __NR_getdents 1144
137 #define __NR_flock 1145
138 #define __NR_readv 1146
139 #define __NR_writev 1147
140 #define __NR_pread64 1148
141 #define __NR_pwrite64 1149
142 #define __NR__sysctl 1150
143 #define __NR_mmap 1151
144 #define __NR_munmap 1152
145 #define __NR_mlock 1153
146 #define __NR_mlockall 1154
147 #define __NR_mprotect 1155
148 #define __NR_mremap 1156
149 #define __NR_msync 1157
150 #define __NR_munlock 1158
151 #define __NR_munlockall 1159
152 #define __NR_sched_getparam 1160
153 #define __NR_sched_setparam 1161
154 #define __NR_sched_getscheduler 1162
155 #define __NR_sched_setscheduler 1163
156 #define __NR_sched_yield 1164
157 #define __NR_sched_get_priority_max 1165
158 #define __NR_sched_get_priority_min 1166
159 #define __NR_sched_rr_get_interval 1167
160 #define __NR_nanosleep 1168
161 #define __NR_nfsservctl 1169
162 #define __NR_prctl 1170
163 /* 1171 is reserved for backwards compatibility with old __NR_getpagesize */
164 #define __NR_mmap2 1172
165 #define __NR_pciconfig_read 1173
166 #define __NR_pciconfig_write 1174
167 #define __NR_perfmonctl 1175
168 #define __NR_sigaltstack 1176
169 #define __NR_rt_sigaction 1177
170 #define __NR_rt_sigpending 1178
171 #define __NR_rt_sigprocmask 1179
172 #define __NR_rt_sigqueueinfo 1180
173 #define __NR_rt_sigreturn 1181
174 #define __NR_rt_sigsuspend 1182
175 #define __NR_rt_sigtimedwait 1183
176 #define __NR_getcwd 1184
177 #define __NR_capget 1185
178 #define __NR_capset 1186
179 #define __NR_sendfile 1187
180 #define __NR_getpmsg 1188
181 #define __NR_putpmsg 1189
182 #define __NR_socket 1190
183 #define __NR_bind 1191
184 #define __NR_connect 1192
185 #define __NR_listen 1193
186 #define __NR_accept 1194
187 #define __NR_getsockname 1195
188 #define __NR_getpeername 1196
189 #define __NR_socketpair 1197
190 #define __NR_send 1198
191 #define __NR_sendto 1199
192 #define __NR_recv 1200
193 #define __NR_recvfrom 1201
194 #define __NR_shutdown 1202
195 #define __NR_setsockopt 1203
196 #define __NR_getsockopt 1204
197 #define __NR_sendmsg 1205
198 #define __NR_recvmsg 1206
199 #define __NR_pivot_root 1207
200 #define __NR_mincore 1208
201 #define __NR_madvise 1209
202 #define __NR_stat 1210
203 #define __NR_lstat 1211
204 #define __NR_fstat 1212
205 #define __NR_clone2 1213
206 #define __NR_getdents64 1214
207 #define __NR_getunwind 1215
208 #define __NR_readahead 1216
209 #define __NR_setxattr 1217
210 #define __NR_lsetxattr 1218
211 #define __NR_fsetxattr 1219
212 #define __NR_getxattr 1220
213 #define __NR_lgetxattr 1221
214 #define __NR_fgetxattr 1222
215 #define __NR_listxattr 1223
216 #define __NR_llistxattr 1224
217 #define __NR_flistxattr 1225
218 #define __NR_removexattr 1226
219 #define __NR_lremovexattr 1227
220 #define __NR_fremovexattr 1228
221 #define __NR_tkill 1229
222 #define __NR_futex 1230
223 #define __NR_sched_setaffinity 1231
224 #define __NR_sched_getaffinity 1232
225 #define __NR_set_tid_address 1233
226 #define __NR_fadvise64 1234
227 #define __NR_tgkill 1235
228 #define __NR_exit_group 1236
229 #define __NR_lookup_dcookie 1237
230 #define __NR_io_setup 1238
231 #define __NR_io_destroy 1239
232 #define __NR_io_getevents 1240
233 #define __NR_io_submit 1241
234 #define __NR_io_cancel 1242
235 #define __NR_epoll_create 1243
236 #define __NR_epoll_ctl 1244
237 #define __NR_epoll_wait 1245
238 #define __NR_restart_syscall 1246
239 #define __NR_semtimedop 1247
240 #define __NR_sys_timer_create 1248
241 #define __NR_sys_timer_settime 1249
242 #define __NR_sys_timer_gettime 1250
243 #define __NR_sys_timer_getoverrun 1251
244 #define __NR_sys_timer_delete 1252
245 #define __NR_sys_clock_settime 1253
246 #define __NR_sys_clock_gettime 1254
247 #define __NR_sys_clock_getres 1255
248 #define __NR_sys_clock_nanosleep 1256
249 #define __NR_sys_fstatfs64 1257
250 #define __NR_sys_statfs64 1258
252 #ifdef __KERNEL__
254 #define NR_syscalls 256 /* length of syscall table */
256 #if !defined(__ASSEMBLY__) && !defined(ASSEMBLER)
258 extern long __ia64_syscall (long a0, long a1, long a2, long a3, long a4, long nr);
260 #define _syscall0(type,name) \
261 type \
262 name (void) \
264 register long dummy1 __asm__ ("out0"); \
265 register long dummy2 __asm__ ("out1"); \
266 register long dummy3 __asm__ ("out2"); \
267 register long dummy4 __asm__ ("out3"); \
268 register long dummy5 __asm__ ("out4"); \
270 return __ia64_syscall(dummy1, dummy2, dummy3, dummy4, dummy5, \
271 __NR_##name); \
274 #define _syscall1(type,name,type1,arg1) \
275 type \
276 name (type1 arg1) \
278 register long dummy2 __asm__ ("out1"); \
279 register long dummy3 __asm__ ("out2"); \
280 register long dummy4 __asm__ ("out3"); \
281 register long dummy5 __asm__ ("out4"); \
283 return __ia64_syscall((long) arg1, dummy2, dummy3, dummy4, \
284 dummy5, __NR_##name); \
287 #define _syscall2(type,name,type1,arg1,type2,arg2) \
288 type \
289 name (type1 arg1, type2 arg2) \
291 register long dummy3 __asm__ ("out2"); \
292 register long dummy4 __asm__ ("out3"); \
293 register long dummy5 __asm__ ("out4"); \
295 return __ia64_syscall((long) arg1, (long) arg2, dummy3, dummy4, \
296 dummy5, __NR_##name); \
299 #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
300 type \
301 name (type1 arg1, type2 arg2, type3 arg3) \
303 register long dummy4 __asm__ ("out3"); \
304 register long dummy5 __asm__ ("out4"); \
306 return __ia64_syscall((long) arg1, (long) arg2, (long) arg3, \
307 dummy4, dummy5, __NR_##name); \
310 #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
311 type \
312 name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
314 register long dummy5 __asm__ ("out4"); \
316 return __ia64_syscall((long) arg1, (long) arg2, (long) arg3, \
317 (long) arg4, dummy5, __NR_##name); \
320 #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
321 type \
322 name (type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
324 return __ia64_syscall((long) arg1, (long) arg2, (long) arg3, \
325 (long) arg4, (long) arg5, __NR_##name); \
328 #ifdef __KERNEL_SYSCALLS__
330 struct rusage;
332 static inline _syscall0(pid_t,setsid)
333 static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count)
334 static inline _syscall3(int,read,int,fd,char *,buf,off_t,count)
335 static inline _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)
336 static inline _syscall1(int,dup,int,fd)
337 static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp)
338 static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
339 static inline _syscall1(int,close,int,fd)
340 static inline _syscall4(pid_t,wait4,pid_t,pid,int *,wait_stat,int,options,struct rusage*, rusage)
341 static inline _syscall2(pid_t,clone,unsigned long,flags,void*,sp);
343 #define __NR__exit __NR_exit
344 static inline _syscall1(int,_exit,int,exitcode)
346 static inline pid_t
347 waitpid (int pid, int *wait_stat, int flags)
349 return wait4(pid, wait_stat, flags, NULL);
352 #endif /* __KERNEL_SYSCALLS__ */
355 * "Conditional" syscalls
357 * What we want is __attribute__((weak,alias("sys_ni_syscall"))), but it doesn't work on
358 * all toolchains, so we just do it by hand. Note, this macro can only be used in the
359 * file which defines sys_ni_syscall, i.e., in kernel/sys.c.
361 #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall");
363 #endif /* !__ASSEMBLY__ */
364 #endif /* __KERNEL__ */
365 #endif /* _ASM_IA64_UNISTD_H */