summaryrefslogtreecommitdiffstats
path: root/sys/amd64/linux32/syscalls.master
blob: 1c261f9803de076dd5074677679cb2e886db1b65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
 $FreeBSD$

;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
; System call name/number master file (or rather, slave, from LINUX).
; Processed to create linux32_sysent.c, linux32_proto.h and linux32_syscall.h.

; Columns: number audit type nargs name alt{name,tag,rtyp}/comments
;	number	system call number, must be in order
;	audit	the audit event associated with the system call
;		A value of AUE_NULL means no auditing, but it also means that
;		there is no audit event for the call at this time. For the
;		case where the event exists, but we don't want auditing, the
;		event should be #defined to AUE_NULL in audit_kevents.h.
;	type	one of STD, NOPROTO, UNIMPL
;	name	psuedo-prototype of syscall routine
;		If one of the following alts is different, then all appear:
;	altname	name of system call if different
;	alttag	name of args struct tag if different from [o]`name'"_args"
;	altrtyp	return type if not int (bogus - syscalls always return int)
;		for UNIMPL, name continues with comments

; types:
;	STD	always included
;	UNIMPL	not implemented, placeholder only
;	NOPROTO same as STD except do not create structure or
;		function prototype in sys/sysproto.h.  Does add a
;		definition to syscall.h besides adding a sysent.

#include "opt_compat.h"
#include <sys/param.h>
#include <sys/sysent.h>
#include <sys/sysproto.h>
#include <compat/linux/linux_sysproto.h>
#include <amd64/linux32/linux.h>
#include <amd64/linux32/linux32_proto.h>

; Isn't pretty, but there seems to be no other way to trap nosys
#define	nosys	linux_nosys

; #ifdef's, etc. may be included, and are copied to the output files.

0	AUE_NULL	UNIMPL	setup
1	AUE_EXIT	STD	{ void linux_exit(int rval); }
2	AUE_FORK	STD	{ int linux_fork(void); }
3	AUE_NULL	NOPROTO	{ int read(int fd, char *buf, \
				    u_int nbyte); }
4	AUE_NULL	NOPROTO	{ int write(int fd, char *buf, \
				    u_int nbyte); }
5	AUE_OPEN_RWTC	STD	{ int linux_open(char *path, l_int flags, \
				    l_int mode); }
6	AUE_CLOSE	NOPROTO	{ int close(int fd); }
7	AUE_WAIT4	STD	{ int linux_waitpid(l_pid_t pid, \
				    l_int *status, l_int options); }
8	AUE_CREAT	STD	{ int linux_creat(char *path, \
				    l_int mode); }
9	AUE_LINK	STD	{ int linux_link(char *path, char *to); }
10	AUE_UNLINK	STD	{ int linux_unlink(char *path); }
11	AUE_EXECVE	STD	{ int linux_execve(char *path, uint32_t *argp, \
				    uint32_t *envp); }
12	AUE_CHDIR	STD	{ int linux_chdir(char *path); }
13	AUE_NULL	STD	{ int linux_time(l_time_t *tm); }
14	AUE_MKNOD	STD	{ int linux_mknod(char *path, l_int mode, \
				    l_dev_t dev); }
15	AUE_CHMOD	STD	{ int linux_chmod(char *path, \
				    l_mode_t mode); }
16	AUE_LCHOWN	STD	{ int linux_lchown16(char *path, \
				    l_uid16_t uid, l_gid16_t gid); }
17	AUE_NULL	UNIMPL	break
18	AUE_STAT	STD	{ int linux_stat(char *path, \
				    struct linux_stat *up); }
19	AUE_LSEEK	STD	{ int linux_lseek(l_uint fdes, l_off_t off, \
				    l_int whence); }
20	AUE_GETPID	STD	{ int linux_getpid(void); }
21	AUE_MOUNT	STD	{ int linux_mount(char *specialfile, \
				    char *dir, char *filesystemtype, \
				    l_ulong rwflag, void *data); }
22	AUE_UMOUNT	STD	{ int linux_oldumount(char *path); }
23	AUE_SETUID	STD	{ int linux_setuid16(l_uid16_t uid); }
24	AUE_GETUID	STD	{ int linux_getuid16(void); }
25	AUE_SETTIMEOFDAY	STD	{ int linux_stime(void); }
26	AUE_PTRACE	STD	{ int linux_ptrace(l_long req, l_long pid, \
				    l_long addr, l_long data); }
27	AUE_NULL	STD	{ int linux_alarm(l_uint secs); }
28	AUE_FSTAT	UNIMPL	fstat
29	AUE_NULL	STD	{ int linux_pause(void); }
30	AUE_UTIME	STD	{ int linux_utime(char *fname, \
				    struct l_utimbuf *times); }
31	AUE_NULL	UNIMPL	stty
32	AUE_NULL	UNIMPL	gtty
33	AUE_ACCESS	STD	{ int linux_access(char *path, l_int amode); }
34	AUE_NICE	STD	{ int linux_nice(l_int inc); }
35	AUE_NULL	UNIMPL	ftime
36	AUE_SYNC	NOPROTO	{ int sync(void); }
37	AUE_KILL	STD	{ int linux_kill(l_int pid, l_int signum); }
38	AUE_RENAME	STD	{ int linux_rename(char *from, char *to); }
39	AUE_MKDIR	STD	{ int linux_mkdir(char *path, l_int mode); }
40	AUE_RMDIR	STD	{ int linux_rmdir(char *path); }
41	AUE_DUP		NOPROTO	{ int dup(u_int fd); }
42	AUE_PIPE	STD	{ int linux_pipe(l_int *pipefds); }
43	AUE_NULL	STD	{ int linux_times(struct l_times_argv *buf); }
44	AUE_NULL	UNIMPL	prof
45	AUE_NULL	STD	{ int linux_brk(l_ulong dsend); }
46	AUE_SETGID	STD	{ int linux_setgid16(l_gid16_t gid); }
47	AUE_GETGID	STD	{ int linux_getgid16(void); }
48	AUE_NULL	STD	{ int linux_signal(l_int sig, \
				    l_handler_t handler); }
49	AUE_GETEUID	STD	{ int linux_geteuid16(void); }
50	AUE_GETEGID	STD	{ int linux_getegid16(void); }
51	AUE_ACCT	NOPROTO	{ int acct(char *path); }
52	AUE_UMOUNT	STD	{ int linux_umount(char *path, l_int flags); }
53	AUE_NULL	UNIMPL	lock
54	AUE_IOCTL	STD	{ int linux_ioctl(l_uint fd, l_uint cmd, \
				    uintptr_t arg); }
55	AUE_FCNTL	STD	{ int linux_fcntl(l_uint fd, l_uint cmd, \
				    uintptr_t arg); }
56	AUE_NULL	UNIMPL	mpx
57	AUE_SETPGRP	NOPROTO	{ int setpgid(int pid, int pgid); }
58	AUE_NULL	UNIMPL	ulimit
59	AUE_NULL	STD	{ int linux_olduname(void); }
60	AUE_UMASK	NOPROTO	{ int umask(int newmask); }
61	AUE_CHROOT	NOPROTO	{ int chroot(char *path); }
62	AUE_NULL	STD	{ int linux_ustat(l_dev_t dev, \
				    struct l_ustat *ubuf); }
63	AUE_DUP2	NOPROTO	{ int dup2(u_int from, u_int to); }
64	AUE_GETPPID	STD	{ int linux_getppid(void); }
65	AUE_GETPGRP	NOPROTO	{ int getpgrp(void); }
66	AUE_SETSID	NOPROTO	{ int setsid(void); }
67	AUE_NULL	STD	{ int linux_sigaction(l_int sig, \
				    l_osigaction_t *nsa, \
				    l_osigaction_t *osa); }
68	AUE_NULL	STD	{ int linux_sgetmask(void); }
69	AUE_NULL	STD	{ int linux_ssetmask(l_osigset_t mask); }
70	AUE_SETREUID	STD	{ int linux_setreuid16(l_uid16_t ruid, \
				    l_uid16_t euid); }
71	AUE_SETREGID	STD	{ int linux_setregid16(l_gid16_t rgid, \
				    l_gid16_t egid); }
72	AUE_NULL	STD	{ int linux_sigsuspend(l_int hist0, \
				    l_int hist1, l_osigset_t mask); }
73	AUE_NULL	STD	{ int linux_sigpending(l_osigset_t *mask); }
74	AUE_SYSCTL	STD	{ int linux_sethostname(char *hostname, \
				    u_int len); }
75	AUE_SETRLIMIT	STD	{ int linux_setrlimit(l_uint resource, \
				    struct l_rlimit *rlim); }
76	AUE_GETRLIMIT	STD	{ int linux_old_getrlimit(l_uint resource, \
				    struct l_rlimit *rlim); }
77	AUE_GETRUSAGE	STD	{ int linux_getrusage(int who, \
				    struct l_rusage *rusage); }
78	AUE_NULL	STD	{ int linux_gettimeofday( \
				    struct l_timeval *tp, \
				    struct timezone *tzp); }
79	AUE_SETTIMEOFDAY STD	{ int linux_settimeofday( \
				    struct l_timeval *tp, \
				    struct timezone *tzp); }
80	AUE_GETGROUPS	STD	{ int linux_getgroups16(l_uint gidsetsize, \
				    l_gid16_t *gidset); }
81	AUE_SETGROUPS	STD	{ int linux_setgroups16(l_uint gidsetsize, \
				    l_gid16_t *gidset); }
82	AUE_SELECT	STD	{ int linux_old_select( \
				    struct l_old_select_argv *ptr); }
83	AUE_SYMLINK	STD	{ int linux_symlink(char *path, char *to); }
; 84: oldlstat
84	AUE_LSTAT	STD	{ int linux_lstat(char *path, struct linux_lstat *up); }
85	AUE_READLINK	STD	{ int linux_readlink(char *name, char *buf, \
				    l_int count); }
86	AUE_USELIB	UNIMPL	linux_uselib
87	AUE_SWAPON	NOPROTO	{ int swapon(char *name); }
88	AUE_REBOOT	STD	{ int linux_reboot(l_int magic1, \
				    l_int magic2, l_uint cmd, void *arg); }
; 89: old_readdir
89	AUE_GETDIRENTRIES	STD { int linux_readdir(l_uint fd, \
				    struct l_dirent *dent, l_uint count); }
; 90: old_mmap
90	AUE_MMAP	STD	{ int linux_mmap(struct l_mmap_argv *ptr); }
91	AUE_MUNMAP	NOPROTO	{ int munmap(caddr_t addr, int len); }
92	AUE_TRUNCATE	STD	{ int linux_truncate(char *path, \
				    l_ulong length); }
93	AUE_FTRUNCATE	STD	{ int linux_ftruncate(int fd, long length); }
94	AUE_FCHMOD	NOPROTO	{ int fchmod(int fd, int mode); }
95	AUE_FCHOWN	NOPROTO	{ int fchown(int fd, int uid, int gid); }
96	AUE_GETPRIORITY	STD	{ int linux_getpriority(int which, int who); }
97	AUE_SETPRIORITY	NOPROTO	{ int setpriority(int which, int who, \
				    int prio); }
98	AUE_PROFILE	UNIMPL	profil
99	AUE_STATFS	STD	{ int linux_statfs(char *path, \
				    struct l_statfs_buf *buf); }
100	AUE_FSTATFS	STD	{ int linux_fstatfs(l_uint fd, \
				    struct l_statfs_buf *buf); }
101	AUE_NULL	UNIMPL	ioperm
102	AUE_NULL	STD	{ int linux_socketcall(l_int what, \
				    l_ulong args); }
103	AUE_NULL	STD	{ int linux_syslog(l_int type, char *buf, \
				    l_int len); }
104	AUE_SETITIMER	STD	{ int linux_setitimer(l_int which, \
				    struct l_itimerval *itv, \
				    struct l_itimerval *oitv); }
105	AUE_GETITIMER	STD	{ int linux_getitimer(l_int which, \
				    struct l_itimerval *itv); }
106	AUE_STAT	STD	{ int linux_newstat(char *path, \
				    struct l_newstat *buf); }
107	AUE_LSTAT	STD	{ int linux_newlstat(char *path, \
				    struct l_newstat *buf); }
108	AUE_FSTAT	STD	{ int linux_newfstat(l_uint fd, \
				    struct l_newstat *buf); }
; 109: olduname
109	AUE_NULL	STD	{ int linux_uname(void); }
110	AUE_NULL	STD	{ int linux_iopl(l_int level); }
111	AUE_NULL	STD	{ int linux_vhangup(void); }
112	AUE_NULL	UNIMPL	idle
113	AUE_NULL	UNIMPL	vm86old
114	AUE_WAIT4	STD	{ int linux_wait4(l_pid_t pid, \
				    l_int *status, l_int options, \
				    struct l_rusage *rusage); }
115	AUE_SWAPOFF	STD	{ int linux_swapoff(void); }
116	AUE_NULL	STD	{ int linux_sysinfo(struct l_sysinfo *info); }
117	AUE_NULL	STD	{ int linux_ipc(l_uint what, l_int arg1, \
				    l_int arg2, l_int arg3, void *ptr, \
				    l_long arg5); }
118	AUE_FSYNC	NOPROTO	{ int fsync(int fd); }
119	AUE_SIGRETURN	STD	{ int linux_sigreturn( \
				    struct l_sigframe *sfp); }
120	AUE_RFORK	STD	{ int linux_clone(l_int flags, void *stack, \
				    void *parent_tidptr, void *tls, void * child_tidptr); }
121	AUE_SYSCTL	STD	{ int linux_setdomainname(char *name, \
				    int len); }
122	AUE_NULL	STD	{ int linux_newuname( \
				    struct l_new_utsname *buf); }
123	AUE_NULL	UNIMPL	modify_ldt
124	AUE_ADJTIME	STD	{ int linux_adjtimex(void); }
125	AUE_MPROTECT	STD	{ int linux_mprotect(caddr_t addr, int len, \
				    int prot); }
126	AUE_SIGPROCMASK	STD	{ int linux_sigprocmask(l_int how, \
				    l_osigset_t *mask, l_osigset_t *omask); }
127	AUE_NULL	STD	{ int linux_create_module(void); }
128	AUE_NULL	STD	{ int linux_init_module(void); }
129	AUE_NULL	STD	{ int linux_delete_module(void); }
130	AUE_NULL	STD	{ int linux_get_kernel_syms(void); }
131	AUE_QUOTACTL	STD	{ int linux_quotactl(void); }
132	AUE_GETPGID	NOPROTO	{ int getpgid(int pid); }
133	AUE_FCHDIR	NOPROTO	{ int fchdir(int fd); }
134	AUE_BDFLUSH	STD	{ int linux_bdflush(void); }
135	AUE_NULL	STD	{ int linux_sysfs(l_int option, \
				    l_ulong arg1, l_ulong arg2); }
136	AUE_PERSONALITY	STD	{ int linux_personality(l_uint per); }
137	AUE_NULL	UNIMPL	afs_syscall
138	AUE_SETFSUID	STD	{ int linux_setfsuid16(l_uid16_t uid); }
139	AUE_SETFSGID	STD	{ int linux_setfsgid16(l_gid16_t gid); }
140	AUE_LSEEK	STD	{ int linux_llseek(l_int fd, l_ulong ohigh, \
				    l_ulong olow, l_loff_t *res, \
				    l_uint whence); }
141	AUE_GETDIRENTRIES	STD { int linux_getdents(l_uint fd, void *dent, \
				    l_uint count); }
; 142: newselect
142	AUE_SELECT	STD	{ int linux_select(l_int nfds, \
				    l_fd_set *readfds, l_fd_set *writefds, \
				    l_fd_set *exceptfds, \
				    struct l_timeval *timeout); }
143	AUE_FLOCK	NOPROTO	{ int flock(int fd, int how); }
144	AUE_MSYNC	STD	{ int linux_msync(l_ulong addr, \
				    l_size_t len, l_int fl); }
145	AUE_READV	STD { int linux_readv(l_ulong fd, struct l_iovec32 *iovp, \
				    l_ulong iovcnt); }
146	AUE_WRITEV	STD { int linux_writev(l_ulong fd, struct l_iovec32 *iovp, \
				    l_ulong iovcnt); }
147	AUE_GETSID	STD	{ int linux_getsid(l_pid_t pid); }
148	AUE_NULL	STD	{ int linux_fdatasync(l_uint fd); }
149	AUE_SYSCTL	STD	{ int linux_sysctl( \
				    struct l___sysctl_args *args); }
150	AUE_MLOCK	NOPROTO	{ int mlock(const void *addr, size_t len); }
151	AUE_MUNLOCK	NOPROTO	{ int munlock(const void *addr, size_t len); }
152	AUE_MLOCKALL	NOPROTO	{ int mlockall(int how); }
153	AUE_MUNLOCKALL	NOPROTO	{ int munlockall(void); }
154	AUE_SCHED_SETPARAM	STD	{ int linux_sched_setparam(l_pid_t pid, \
				    struct sched_param *param); }
155	AUE_SCHED_GETPARAM	STD	{ int linux_sched_getparam(l_pid_t pid, \
				    struct sched_param *param); }
156	AUE_SCHED_SETSCHEDULER	STD { int linux_sched_setscheduler( \
				    l_pid_t pid, l_int policy, \
				    struct sched_param *param); }
157	AUE_SCHED_GETSCHEDULER	STD { int linux_sched_getscheduler( \
				    l_pid_t pid); }
158	AUE_NULL	NOPROTO	{ int sched_yield(void); }
159	AUE_SCHED_GET_PRIORITY_MAX	STD { int linux_sched_get_priority_max( \
				    l_int policy); }
160	AUE_SCHED_GET_PRIORITY_MIN	STD { int linux_sched_get_priority_min( \
				    l_int policy); }
161	AUE_SCHED_RR_GET_INTERVAL	STD { int linux_sched_rr_get_interval(l_pid_t pid, \
				    struct l_timespec *interval); }
162	AUE_NULL	STD	{ int linux_nanosleep( \
				    const struct l_timespec *rqtp, \
				    struct l_timespec *rmtp); }
163	AUE_NULL	STD	{ int linux_mremap(l_ulong addr, \
				    l_ulong old_len, l_ulong new_len, \
				    l_ulong flags, l_ulong new_addr); }
164	AUE_SETRESUID	STD	{ int linux_setresuid16(l_uid16_t ruid, \
				    l_uid16_t euid, l_uid16_t suid); }
165	AUE_GETRESUID	STD	{ int linux_getresuid16(l_uid16_t *ruid, \
				    l_uid16_t *euid, l_uid16_t *suid); }
166	AUE_NULL	UNIMPL	vm86
167	AUE_NULL	STD	{ int linux_query_module(void); }
168	AUE_POLL	NOPROTO	{ int poll(struct pollfd *fds, \
				    unsigned int nfds, int timeout); }
169	AUE_NULL	STD	{ int linux_nfsservctl(void); }
170	AUE_SETRESGID	STD	{ int linux_setresgid16(l_gid16_t rgid, \
				    l_gid16_t egid, l_gid16_t sgid); }
171	AUE_GETRESGID	STD	{ int linux_getresgid16(l_gid16_t *rgid, \
				    l_gid16_t *egid, l_gid16_t *sgid); }
172	AUE_PRCTL	STD	{ int linux_prctl(l_int option, l_int arg2, l_int arg3, \
				    l_int arg4, l_int arg5); }
173	AUE_NULL	STD	{ int linux_rt_sigreturn( \
				    struct l_ucontext *ucp); }
174	AUE_NULL	STD	{ int linux_rt_sigaction(l_int sig, \
				    l_sigaction_t *act, l_sigaction_t *oact, \
				    l_size_t sigsetsize); }
175	AUE_NULL	STD	{ int linux_rt_sigprocmask(l_int how, \
				    l_sigset_t *mask, l_sigset_t *omask, \
				    l_size_t sigsetsize); }
176	AUE_NULL	STD	{ int linux_rt_sigpending(l_sigset_t *set, \
				    l_size_t sigsetsize); }
177	AUE_NULL	STD	{ int linux_rt_sigtimedwait(l_sigset_t *mask, \
				    l_siginfo_t *ptr, \
				    struct l_timeval *timeout, \
				    l_size_t sigsetsize); }
178	AUE_NULL	STD	{ int linux_rt_sigqueueinfo(l_pid_t pid, l_int sig, \
				    l_siginfo_t *info); }
179	AUE_NULL	STD	{ int linux_rt_sigsuspend( \
				    l_sigset_t *newset, \
				    l_size_t sigsetsize); }
180	AUE_PREAD	STD	{ int linux_pread(l_uint fd, char *buf, \
				    l_size_t nbyte, l_loff_t offset); }
181	AUE_PWRITE	STD	{ int linux_pwrite(l_uint fd, char *buf, \
				    l_size_t nbyte, l_loff_t offset); }
182	AUE_CHOWN	STD	{ int linux_chown16(char *path, \
				    l_uid16_t uid, l_gid16_t gid); }
183	AUE_GETCWD	STD	{ int linux_getcwd(char *buf, \
				    l_ulong bufsize); }
184	AUE_CAPGET	STD	{ int linux_capget(struct l_user_cap_header *hdrp, \
				    struct l_user_cap_data *datap); }
185	AUE_CAPSET	STD	{ int linux_capset(struct l_user_cap_header *hdrp, \
				    struct l_user_cap_data *datap); }
186	AUE_NULL	STD	{ int linux_sigaltstack(l_stack_t *uss, \
				    l_stack_t *uoss); }
187	AUE_SENDFILE	STD	{ int linux_sendfile(void); }
188	AUE_GETPMSG	UNIMPL	getpmsg
189	AUE_PUTPMSG	UNIMPL	putpmsg
190	AUE_VFORK	STD	{ int linux_vfork(void); }
; 191: ugetrlimit
191	AUE_GETRLIMIT	STD	{ int linux_getrlimit(l_uint resource, \
				    struct l_rlimit *rlim); }
192	AUE_MMAP	STD	{ int linux_mmap2(l_ulong addr, l_ulong len, \
				    l_ulong prot, l_ulong flags, l_ulong fd, \
				    l_ulong pgoff); }
193	AUE_TRUNCATE	STD	{ int linux_truncate64(char *path, \
				    l_loff_t length); }
194	AUE_FTRUNCATE	STD	{ int linux_ftruncate64(l_uint fd, \
				    l_loff_t length); }
195	AUE_STAT	STD	{ int linux_stat64(const char *filename, \
				    struct l_stat64 *statbuf); }
196	AUE_LSTAT	STD	{ int linux_lstat64(const char *filename, \
				    struct l_stat64 *statbuf); }
197	AUE_FSTAT	STD	{ int linux_fstat64(l_int fd, \
				    struct l_stat64 *statbuf); }
198	AUE_LCHOWN	STD	{ int linux_lchown(char *path, l_uid_t uid, \
				    l_gid_t gid); }
199	AUE_GETUID	STD	{ int linux_getuid(void); }
200	AUE_GETGID	STD	{ int linux_getgid(void); }
201	AUE_GETEUID	NOPROTO	{ int geteuid(void); }
202	AUE_GETEGID	NOPROTO	{ int getegid(void); }
203	AUE_SETREUID	NOPROTO	{ int setreuid(uid_t ruid, uid_t euid); }
204	AUE_SETREGID	NOPROTO	{ int setregid(gid_t rgid, gid_t egid); }
205	AUE_GETGROUPS	STD	{ int linux_getgroups(l_int gidsetsize, \
				    l_gid_t *grouplist); }
206	AUE_SETGROUPS	STD	{ int linux_setgroups(l_int gidsetsize, \
				    l_gid_t *grouplist); }
207	AUE_FCHOWN	NODEF	fchown fchown fchown_args int
208	AUE_SETRESUID	NOPROTO	{ int setresuid(uid_t ruid, uid_t euid, \
				    uid_t suid); }
209	AUE_GETRESUID	NOPROTO	{ int getresuid(uid_t *ruid, uid_t *euid, \
				    uid_t *suid); }
210	AUE_SETRESGID	NOPROTO	{ int setresgid(gid_t rgid, gid_t egid, \
				    gid_t sgid); }
211	AUE_GETRESGID	NOPROTO	{ int getresgid(gid_t *rgid, gid_t *egid, \
				    gid_t *sgid); }
212	AUE_CHOWN	STD	{ int linux_chown(char *path, l_uid_t uid, \
				    l_gid_t gid); }
213	AUE_SETUID	NOPROTO	{ int setuid(uid_t uid); }
214	AUE_SETGID	NOPROTO	{ int setgid(gid_t gid); }
215	AUE_SETFSUID	STD	{ int linux_setfsuid(l_uid_t uid); }
216	AUE_SETFSGID	STD	{ int linux_setfsgid(l_gid_t gid); }
217	AUE_PIVOT_ROOT	STD	{ int linux_pivot_root(char *new_root, \
				    char *put_old); }
218	AUE_MINCORE	STD	{ int linux_mincore(l_ulong start, \
				    l_size_t len, u_char *vec); }
219	AUE_MADVISE	NOPROTO	{ int madvise(void *addr, size_t len, \
				    int behav); }
220	AUE_GETDIRENTRIES	STD { int linux_getdents64(l_uint fd, \
				    void *dirent, l_uint count); }
221	AUE_FCNTL	STD	{ int linux_fcntl64(l_uint fd, l_uint cmd, \
				    uintptr_t arg); }
222	AUE_NULL	UNIMPL
223	AUE_NULL	UNIMPL
224	AUE_NULL	STD	{ long linux_gettid(void); }
225	AUE_NULL	UNIMPL	linux_readahead
226	AUE_NULL	STD	{ int linux_setxattr(void); }
227	AUE_NULL	STD	{ int linux_lsetxattr(void); }
228	AUE_NULL	STD	{ int linux_fsetxattr(void); }
229	AUE_NULL	STD	{ int linux_getxattr(void); }
230	AUE_NULL	STD	{ int linux_lgetxattr(void); }
231	AUE_NULL	STD	{ int linux_fgetxattr(void); }
232	AUE_NULL	STD	{ int linux_listxattr(void); }
233	AUE_NULL	STD	{ int linux_llistxattr(void); }
234	AUE_NULL	STD	{ int linux_flistxattr(void); }
235	AUE_NULL	STD	{ int linux_removexattr(void); }
236	AUE_NULL	STD	{ int linux_lremovexattr(void); }
237	AUE_NULL	STD	{ int linux_fremovexattr(void); }
238	AUE_NULL	STD	{ int linux_tkill(int tid, int sig); }
239	AUE_SENDFILE	UNIMPL	linux_sendfile64
240	AUE_NULL	STD	{ int linux_sys_futex(void *uaddr, int op, uint32_t val, \
					struct l_timespec *timeout, uint32_t *uaddr2, uint32_t val3); }
241	AUE_NULL	STD	{ int linux_sched_setaffinity(l_pid_t pid, l_uint len, \
					l_ulong *user_mask_ptr); }
242	AUE_NULL	STD	{ int linux_sched_getaffinity(l_pid_t pid, l_uint len, \
					l_ulong *user_mask_ptr); }
243	AUE_NULL	STD	{ int linux_set_thread_area(struct l_user_desc *desc); }
244	AUE_NULL	UNIMPL	linux_get_thread_area
245	AUE_NULL	UNIMPL	linux_io_setup
246	AUE_NULL	UNIMPL	linux_io_destroy
247	AUE_NULL	UNIMPL	linux_io_getevents
248	AUE_NULL	UNIMPL	linux_io_submit
249	AUE_NULL	UNIMPL	linux_io_cancel
250	AUE_NULL	STD	{ int linux_fadvise64(int fd, l_loff_t offset, \
					l_size_t len, int advice); }
251	AUE_NULL	UNIMPL
252	AUE_EXIT	STD	{ int linux_exit_group(int error_code); }
253	AUE_NULL	STD	{ int linux_lookup_dcookie(void); }
254	AUE_NULL	STD	{ int linux_epoll_create(l_int size); }
255	AUE_NULL	STD	{ int linux_epoll_ctl(l_int epfd, l_int op, l_int fd, \
					struct epoll_event *event); }
256	AUE_NULL	STD	{ int linux_epoll_wait(l_int epfd, struct epoll_event *events, \
					l_int maxevents, l_int timeout); }
257	AUE_NULL	STD	{ int linux_remap_file_pages(void); }
258	AUE_NULL	STD	{ int linux_set_tid_address(int *tidptr); }
259	AUE_NULL	STD	{ int linux_timer_create(clockid_t clock_id, \
					struct sigevent *evp, l_timer_t *timerid); }
260	AUE_NULL	STD	{ int linux_timer_settime(l_timer_t timerid, l_int flags, \
					const struct itimerspec *new, struct itimerspec *old); }
261	AUE_NULL	STD	{ int linux_timer_gettime(l_timer_t timerid, struct itimerspec *setting); }
262	AUE_NULL	STD	{ int linux_timer_getoverrun(l_timer_t timerid); }
263	AUE_NULL	STD	{ int linux_timer_delete(l_timer_t timerid); }
264	AUE_CLOCK_SETTIME	STD	{ int linux_clock_settime(clockid_t which, struct l_timespec *tp); }
265	AUE_NULL	STD	{ int linux_clock_gettime(clockid_t which, struct l_timespec *tp); }
266	AUE_NULL	STD	{ int linux_clock_getres(clockid_t which, struct l_timespec *tp); }
267	AUE_NULL	STD	{ int linux_clock_nanosleep(clockid_t which, int flags, \
					struct l_timespec *rqtp, struct l_timespec *rmtp); }
268	AUE_STATFS	STD	{ int linux_statfs64(char *path, size_t bufsize, struct l_statfs64_buf *buf); }
269	AUE_FSTATFS	STD	{ int linux_fstatfs64(l_uint fd, size_t bufsize, struct l_statfs64_buf *buf); }
270	AUE_NULL	STD	{ int linux_tgkill(int tgid, int pid, int sig); }
271	AUE_UTIMES	STD	{ int linux_utimes(char *fname, \
					struct l_timeval *tptr); }
272	AUE_NULL	STD	{ int linux_fadvise64_64(int fd, \
					l_loff_t offset, l_loff_t len, \
					int advice); }
273	AUE_NULL	UNIMPL	vserver
274	AUE_NULL	STD	{ int linux_mbind(void); }
275	AUE_NULL	STD	{ int linux_get_mempolicy(void); }
276	AUE_NULL	STD	{ int linux_set_mempolicy(void); }
; linux 2.6.6:
277	AUE_NULL	STD	{ int linux_mq_open(void); }
278	AUE_NULL	STD	{ int linux_mq_unlink(void); }
279	AUE_NULL	STD	{ int linux_mq_timedsend(void); }
280	AUE_NULL	STD	{ int linux_mq_timedreceive(void); }
281	AUE_NULL	STD	{ int linux_mq_notify(void); }
282	AUE_NULL	STD	{ int linux_mq_getsetattr(void); }
283	AUE_NULL	STD	{ int linux_kexec_load(void); }
284	AUE_WAIT6	STD	{ int linux_waitid(int idtype, l_pid_t id, \
				    l_siginfo_t *info, int options, \
				    struct l_rusage *rusage); }
285	AUE_NULL	UNIMPL
; linux 2.6.11:
286	AUE_NULL	STD	{ int linux_add_key(void); }
287	AUE_NULL	STD	{ int linux_request_key(void); }
288	AUE_NULL	STD	{ int linux_keyctl(void); }
; linux 2.6.13:
289	AUE_NULL	STD	{ int linux_ioprio_set(void); }
290	AUE_NULL	STD	{ int linux_ioprio_get(void); }
291	AUE_NULL	STD	{ int linux_inotify_init(void); }
292	AUE_NULL	STD	{ int linux_inotify_add_watch(void); }
293	AUE_NULL	STD	{ int linux_inotify_rm_watch(void); }
; linux 2.6.16:
294	AUE_NULL	STD	{ int linux_migrate_pages(void); }
295	AUE_OPEN_RWTC	STD	{ int linux_openat(l_int dfd, const char *filename, \
					l_int flags, l_int mode); }
296	AUE_MKDIRAT	STD	{ int linux_mkdirat(l_int dfd, const char *pathname, \
					l_int mode); }
297	AUE_MKNODAT	STD	{ int linux_mknodat(l_int dfd, const char *filename, \
					l_int mode, l_uint dev); }
298	AUE_FCHOWNAT	STD	{ int linux_fchownat(l_int dfd, const char *filename, \
					l_uid16_t uid, l_gid16_t gid, l_int flag); }
299	AUE_FUTIMESAT	STD	{ int linux_futimesat(l_int dfd, char *filename, \
					struct l_timeval *utimes); }
300	AUE_FSTATAT	STD	{ int linux_fstatat64(l_int dfd, char *pathname, \
					struct l_stat64 *statbuf, l_int flag); }
301	AUE_UNLINKAT	STD	{ int linux_unlinkat(l_int dfd, const char *pathname, \
					l_int flag); }
302	AUE_RENAMEAT	STD	{ int linux_renameat(l_int olddfd, const char *oldname, \
					l_int newdfd, const char *newname); }
303	AUE_LINKAT	STD	{ int linux_linkat(l_int olddfd, const char *oldname, \
					l_int newdfd, const char *newname, l_int flag); }
304	AUE_SYMLINKAT	STD	{ int linux_symlinkat(const char *oldname, l_int newdfd, \
					const char *newname); }
305	AUE_READLINKAT	STD	{ int linux_readlinkat(l_int dfd, const char *path, \
					char *buf, l_int bufsiz); }
306	AUE_FCHMODAT	STD	{ int linux_fchmodat(l_int dfd, const char *filename, \
					l_mode_t mode); }
307	AUE_FACCESSAT	STD	{ int linux_faccessat(l_int dfd, const char *filename, \
					l_int amode); }
308	AUE_SELECT	STD	{ int linux_pselect6(l_int nfds, l_fd_set *readfds,	\
					l_fd_set *writefds, l_fd_set *exceptfds,	\
					struct l_timespec *tsp, l_uintptr_t *sig); }
309	AUE_POLL	STD	{ int linux_ppoll(struct pollfd *fds, uint32_t nfds,	\
				    struct l_timespec *tsp, l_sigset_t *sset, l_size_t ssize); }
310	AUE_NULL	STD	{ int linux_unshare(void); }
; linux 2.6.17:
311	AUE_NULL	STD	{ int linux_set_robust_list(struct linux_robust_list_head *head, \
					l_size_t len); }
312	AUE_NULL	STD	{ int linux_get_robust_list(l_int pid, \
				    struct linux_robust_list_head **head, l_size_t *len); }
313	AUE_NULL	STD	{ int linux_splice(void); }
314	AUE_NULL	STD	{ int linux_sync_file_range(void); }
315	AUE_NULL	STD	{ int linux_tee(void); }
316	AUE_NULL	STD	{ int linux_vmsplice(void); }
; linux 2.6.18:
317	AUE_NULL	STD	{ int linux_move_pages(void); }
; linux 2.6.19:
318	AUE_NULL	STD	{ int linux_getcpu(void); }
319     AUE_NULL        STD     { int linux_epoll_pwait(l_int epfd, struct epoll_event *events, \
                                        l_int maxevents, l_int timeout, l_sigset_t *mask); }
; linux 2.6.22:
320	AUE_FUTIMESAT	STD	{ int linux_utimensat(l_int dfd, const char *pathname, \
					const struct l_timespec *times, l_int flags); }
321	AUE_NULL	STD	{ int linux_signalfd(void); }
322	AUE_NULL	STD	{ int linux_timerfd_create(void); }
323	AUE_NULL	STD	{ int linux_eventfd(l_uint initval); }
; linux 2.6.23:
324	AUE_NULL	STD	{ int linux_fallocate(l_int fd, l_int mode, \
				    l_loff_t offset, l_loff_t len); }
; linux 2.6.25:
325	AUE_NULL	STD	{ int linux_timerfd_settime(void); }
326	AUE_NULL	STD	{ int linux_timerfd_gettime(void); }
; linux 2.6.27:
327	AUE_NULL	STD	{ int linux_signalfd4(void); }
328	AUE_NULL	STD	{ int linux_eventfd2(l_uint initval, l_int flags); }
329	AUE_NULL	STD	{ int linux_epoll_create1(l_int flags); }
330	AUE_NULL	STD	{ int linux_dup3(l_int oldfd,		\
					l_int newfd, l_int flags); }
331	AUE_NULL	STD	{ int linux_pipe2(l_int *pipefds, l_int flags); }
332	AUE_NULL	STD	{ int linux_inotify_init1(void); }
; linux 2.6.30:
333	AUE_NULL	STD	{ int linux_preadv(l_ulong fd, 			\
				    struct iovec *vec, l_ulong vlen,		\
				    l_ulong pos_l, l_ulong pos_h); }
334	AUE_NULL	STD	{ int linux_pwritev(l_ulong fd, 		\
				    struct iovec *vec, l_ulong vlen,		\
				    l_ulong pos_l, l_ulong pos_h); }
; linux 2.6.31:
335	AUE_NULL	STD	{ int linux_rt_tgsigqueueinfo(l_pid_t tgid,	\
				    l_pid_t tid, l_int sig, l_siginfo_t *uinfo); }
336	AUE_NULL	STD	{ int linux_perf_event_open(void); }
; linux 2.6.33:
337	AUE_NULL	STD	{ int linux_recvmmsg(l_int s,			\
				    struct l_mmsghdr *msg, l_uint vlen,		\
				    l_uint flags, struct l_timespec *timeout); }
338	AUE_NULL	STD	{ int linux_fanotify_init(void); }
339	AUE_NULL	STD	{ int linux_fanotify_mark(void); }
; linux 2.6.36:
340	AUE_NULL	STD	{ int linux_prlimit64(l_pid_t pid,	\
				    l_uint resource,			\
				    struct rlimit *new,			\
				    struct rlimit *old); }
; linux 2.6.39:
341	AUE_NULL	STD	{ int linux_name_to_handle_at(void); }
342	AUE_NULL	STD	{ int linux_open_by_handle_at(void); }
343	AUE_NULL	STD	{ int linux_clock_adjtime(void); }
344	AUE_SYNC	STD	{ int linux_syncfs(l_int fd); }
; linux 3.0:
345	AUE_NULL	STD	{ int linux_sendmmsg(l_int s,			\
				    struct l_mmsghdr *msg, l_uint vlen,		\
				    l_uint flags); }
346	AUE_NULL	STD	{ int linux_setns(void); }
; linux 3.2 (glibc 2.15):
347	AUE_NULL	STD	{ int linux_process_vm_readv(l_pid_t pid,	\
				    const struct iovec *lvec, l_ulong liovcnt,	\
				    const struct iovec *rvec, l_ulong riovcnt,	\
				    l_ulong flags); }
348	AUE_NULL	STD	{ int linux_process_vm_writev(l_pid_t pid,	\
				    const struct iovec *lvec, l_ulong liovcnt,	\
				    const struct iovec *rvec, l_ulong riovcnt,	\
				    l_ulong flags); }
; linux 3.5 (no glibc wrapper):
349	AUE_NULL	STD	{ int linux_kcmp(l_pid_t pid1, l_pid_t pid2,	\
				    l_int type, l_ulong idx1, l_ulong idx); }
; linux 3.8 (no glibc wrapper):
350	AUE_NULL	STD	{ int linux_finit_module(l_int fd,		\
				    const char *uargs, l_int flags); }
; linux 3.14:
351	AUE_NULL	STD	{ int linux_sched_setattr(l_pid_t pid,		\
				    void *attr, l_uint flags); }
352	AUE_NULL	STD	{ int linux_sched_getattr(l_pid_t pid,		\
				    void *attr, l_uint size, l_uint flags); }
; linux 3.15:
353	AUE_NULL	STD	{ int linux_renameat2(l_int oldfd,		\
				    const char *oldname, l_int newfd, 		\
				    const char *newname, unsigned int flags); }
; linux 3.17:
354	AUE_NULL	STD	{ int linux_seccomp(l_uint op, l_uint flags,	\
				    const char *uargs); }
355	AUE_NULL	STD	{ int linux_getrandom(char *buf,		\
				    l_size_t count, l_uint flags); }
356	AUE_NULL	STD	{ int linux_memfd_create(const char *uname_ptr,	\
				    l_uint flags); }
; linux 3.18:
357	AUE_NULL	STD	{ int linux_bpf(l_int cmd, void *attr,		\
				    l_uint size); }
; linux 3.19:
358	AUE_NULL	STD	{ int linux_execveat(l_int dfd,			\
				    const char *filename, const char **argv,	\
				    const char **envp, l_int flags); }
; linux 4.3: sockets now direct system calls:
359	AUE_SOCKET	STD	{ int linux_socket(l_int domain, l_int type, \
				    l_int protocol); }
360	AUE_SOCKETPAIR	STD	{ int linux_socketpair(l_int domain, \
				    l_int type, l_int protocol, l_uintptr_t rsv); }
361	AUE_BIND	STD	{ int linux_bind(l_int s, l_uintptr_t name, \
				    l_int namelen); }
362	AUE_CONNECT	STD	{ int linux_connect(l_int s, l_uintptr_t name, \
				    l_int namelen); }
363	AUE_LISTEN	STD	{ int linux_listen(l_int s, l_int backlog); }
364	AUE_ACCEPT	STD	{ int linux_accept4(l_int s, l_uintptr_t addr, \
				    l_uintptr_t namelen, l_int flags); }
365	AUE_GETSOCKOPT	STD	{ int linux_getsockopt(l_int s, l_int level, \
				    l_int optname, l_uintptr_t optval, \
				    l_uintptr_t optlen); }
366	AUE_SETSOCKOPT	STD	{ int linux_setsockopt(l_int s, l_int level, \
				    l_int optname, l_uintptr_t optval, \
				    l_int optlen); }
367	AUE_GETSOCKNAME	STD	{ int linux_getsockname(l_int s, \
				    l_uintptr_t addr, l_uintptr_t namelen); }
368	AUE_GETPEERNAME	STD	{ int linux_getpeername(l_int s, \
				    l_uintptr_t addr, l_uintptr_t namelen); }
369	AUE_SENDTO	STD	{ int linux_sendto(l_int s, l_uintptr_t msg, \
				    l_int len, l_int flags, l_uintptr_t to, \
				    l_int tolen); }
370	AUE_SENDMSG	STD	{ int linux_sendmsg(l_int s, l_uintptr_t msg, \
				    l_int flags); }
371	AUE_RECVFROM	STD	{ int linux_recvfrom(l_int s, l_uintptr_t buf, \
				    l_size_t len, l_int flags, l_uintptr_t from, \
				    l_uintptr_t fromlen); }
372	AUE_RECVMSG	STD	{ int linux_recvmsg(l_int s, l_uintptr_t msg, \
				    l_int flags); }
373	AUE_NULL	STD	{ int linux_shutdown(l_int s, l_int how); }
;
; linux 4.2:
374	AUE_NULL	STD	{ int linux_userfaultfd(l_int flags); }
; linux 4.3:
375	AUE_NULL	STD	{ int linux_membarrier(l_int cmd, l_int flags); }
; linux 4.4:
376	AUE_NULL	STD	{ int linux_mlock2(l_ulong start, l_size_t len,	\
				    l_int flags); }
; linux 4.5:
377	AUE_NULL	STD	{ int linux_copy_file_range(l_int fd_in,	\
				    l_loff_t *off_in, l_int fd_out,		\
				    l_loff_t *off_out, l_size_t len,		\
				    l_uint flags); }
; linux 4.6:
378	AUE_NULL	STD	{ int linux_preadv2(l_ulong fd,			\
				    const struct iovec *vec, l_ulong vlen,	\
				    l_ulong pos_l, l_ulong pos_h, l_int flags); }
379	AUE_NULL	STD	{ int linux_pwritev2(l_ulong fd,		\
				    const struct iovec *vec, l_ulong vlen,	\
				    l_ulong pos_l, l_ulong pos_h, l_int flags); }
; linux 4.8:
380	AUE_NULL	STD	{ int linux_pkey_mprotect(l_ulong start,	\
				    l_size_t len, l_ulong prot, l_int pkey); }
381	AUE_NULL	STD	{ int linux_pkey_alloc(l_ulong flags,		\
				    l_ulong init_val); }
382	AUE_NULL	STD	{ int linux_pkey_free(l_int pkey); }

; please, keep this line at the end.
383	AUE_NULL	UNIMPL	nosys
OpenPOWER on IntegriCloud