Merge remote-tracking branch 's5p/for-next'
[linux-2.6/next.git] / arch / s390 / kernel / compat_wrapper.S
blob08ab9aa6a0d574027f0dcd48ea9840bf2984ee96
1 /*
2 *  arch/s390/kernel/compat_wrapper.S
3 *    wrapper for 31 bit compatible system calls.
5 *    Copyright (C) IBM Corp. 2000,2006
6 *    Author(s): Gerhard Tonn (ton@de.ibm.com),
7 *               Thomas Spatzier (tspat@de.ibm.com)
8 */
10 #include <linux/linkage.h>
12 ENTRY(sys32_exit_wrapper)
13         lgfr    %r2,%r2                 # int
14         jg      sys_exit                # branch to sys_exit
16 ENTRY(sys32_read_wrapper)
17         llgfr   %r2,%r2                 # unsigned int
18         llgtr   %r3,%r3                 # char *
19         llgfr   %r4,%r4                 # size_t
20         jg      sys32_read              # branch to sys_read
22 ENTRY(sys32_write_wrapper)
23         llgfr   %r2,%r2                 # unsigned int
24         llgtr   %r3,%r3                 # const char *
25         llgfr   %r4,%r4                 # size_t
26         jg      sys32_write             # branch to system call
28 ENTRY(sys32_open_wrapper)
29         llgtr   %r2,%r2                 # const char *
30         lgfr    %r3,%r3                 # int
31         lgfr    %r4,%r4                 # int
32         jg      sys_open                # branch to system call
34 ENTRY(sys32_close_wrapper)
35         llgfr   %r2,%r2                 # unsigned int
36         jg      sys_close               # branch to system call
38 ENTRY(sys32_creat_wrapper)
39         llgtr   %r2,%r2                 # const char *
40         lgfr    %r3,%r3                 # int
41         jg      sys_creat               # branch to system call
43 ENTRY(sys32_link_wrapper)
44         llgtr   %r2,%r2                 # const char *
45         llgtr   %r3,%r3                 # const char *
46         jg      sys_link                # branch to system call
48 ENTRY(sys32_unlink_wrapper)
49         llgtr   %r2,%r2                 # const char *
50         jg      sys_unlink              # branch to system call
52 ENTRY(sys32_chdir_wrapper)
53         llgtr   %r2,%r2                 # const char *
54         jg      sys_chdir               # branch to system call
56 ENTRY(sys32_time_wrapper)
57         llgtr   %r2,%r2                 # int *
58         jg      compat_sys_time         # branch to system call
60 ENTRY(sys32_mknod_wrapper)
61         llgtr   %r2,%r2                 # const char *
62         lgfr    %r3,%r3                 # int
63         llgfr   %r4,%r4                 # dev
64         jg      sys_mknod               # branch to system call
66 ENTRY(sys32_chmod_wrapper)
67         llgtr   %r2,%r2                 # const char *
68         llgfr   %r3,%r3                 # mode_t
69         jg      sys_chmod               # branch to system call
71 ENTRY(sys32_lchown16_wrapper)
72         llgtr   %r2,%r2                 # const char *
73         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
74         llgfr   %r4,%r4                 # __kernel_old_uid_emu31_t
75         jg      sys32_lchown16          # branch to system call
77 ENTRY(sys32_lseek_wrapper)
78         llgfr   %r2,%r2                 # unsigned int
79         lgfr    %r3,%r3                 # off_t
80         llgfr   %r4,%r4                 # unsigned int
81         jg      sys_lseek               # branch to system call
83 #sys32_getpid_wrapper                           # void
85 ENTRY(sys32_mount_wrapper)
86         llgtr   %r2,%r2                 # char *
87         llgtr   %r3,%r3                 # char *
88         llgtr   %r4,%r4                 # char *
89         llgfr   %r5,%r5                 # unsigned long
90         llgtr   %r6,%r6                 # void *
91         jg      compat_sys_mount        # branch to system call
93 ENTRY(sys32_oldumount_wrapper)
94         llgtr   %r2,%r2                 # char *
95         jg      sys_oldumount           # branch to system call
97 ENTRY(sys32_setuid16_wrapper)
98         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t
99         jg      sys32_setuid16          # branch to system call
101 #sys32_getuid16_wrapper                 # void
103 ENTRY(sys32_ptrace_wrapper)
104         lgfr    %r2,%r2                 # long
105         lgfr    %r3,%r3                 # long
106         llgtr   %r4,%r4                 # long
107         llgfr   %r5,%r5                 # long
108         jg      compat_sys_ptrace       # branch to system call
110 ENTRY(sys32_alarm_wrapper)
111         llgfr   %r2,%r2                 # unsigned int
112         jg      sys_alarm               # branch to system call
114 ENTRY(compat_sys_utime_wrapper)
115         llgtr   %r2,%r2                 # char *
116         llgtr   %r3,%r3                 # struct compat_utimbuf *
117         jg      compat_sys_utime        # branch to system call
119 ENTRY(sys32_access_wrapper)
120         llgtr   %r2,%r2                 # const char *
121         lgfr    %r3,%r3                 # int
122         jg      sys_access              # branch to system call
124 ENTRY(sys32_nice_wrapper)
125         lgfr    %r2,%r2                 # int
126         jg      sys_nice                # branch to system call
128 #sys32_sync_wrapper                     # void
130 ENTRY(sys32_kill_wrapper)
131         lgfr    %r2,%r2                 # int
132         lgfr    %r3,%r3                 # int
133         jg      sys_kill                # branch to system call
135 ENTRY(sys32_rename_wrapper)
136         llgtr   %r2,%r2                 # const char *
137         llgtr   %r3,%r3                 # const char *
138         jg      sys_rename              # branch to system call
140 ENTRY(sys32_mkdir_wrapper)
141         llgtr   %r2,%r2                 # const char *
142         lgfr    %r3,%r3                 # int
143         jg      sys_mkdir               # branch to system call
145 ENTRY(sys32_rmdir_wrapper)
146         llgtr   %r2,%r2                 # const char *
147         jg      sys_rmdir               # branch to system call
149 ENTRY(sys32_dup_wrapper)
150         llgfr   %r2,%r2                 # unsigned int
151         jg      sys_dup                 # branch to system call
153 ENTRY(sys32_pipe_wrapper)
154         llgtr   %r2,%r2                 # u32 *
155         jg      sys_pipe                # branch to system call
157 ENTRY(compat_sys_times_wrapper)
158         llgtr   %r2,%r2                 # struct compat_tms *
159         jg      compat_sys_times        # branch to system call
161 ENTRY(sys32_brk_wrapper)
162         llgtr   %r2,%r2                 # unsigned long
163         jg      sys_brk                 # branch to system call
165 ENTRY(sys32_setgid16_wrapper)
166         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
167         jg      sys32_setgid16          # branch to system call
169 #sys32_getgid16_wrapper                 # void
171 ENTRY(sys32_signal_wrapper)
172         lgfr    %r2,%r2                 # int
173         llgtr   %r3,%r3                 # __sighandler_t
174         jg      sys_signal
176 #sys32_geteuid16_wrapper                # void
178 #sys32_getegid16_wrapper                # void
180 ENTRY(sys32_acct_wrapper)
181         llgtr   %r2,%r2                 # char *
182         jg      sys_acct                # branch to system call
184 ENTRY(sys32_umount_wrapper)
185         llgtr   %r2,%r2                 # char *
186         lgfr    %r3,%r3                 # int
187         jg      sys_umount              # branch to system call
189 ENTRY(compat_sys_ioctl_wrapper)
190         llgfr   %r2,%r2                 # unsigned int
191         llgfr   %r3,%r3                 # unsigned int
192         llgfr   %r4,%r4                 # unsigned int
193         jg      compat_sys_ioctl        # branch to system call
195 ENTRY(compat_sys_fcntl_wrapper)
196         llgfr   %r2,%r2                 # unsigned int
197         llgfr   %r3,%r3                 # unsigned int
198         llgfr   %r4,%r4                 # unsigned long
199         jg      compat_sys_fcntl        # branch to system call
201 ENTRY(sys32_setpgid_wrapper)
202         lgfr    %r2,%r2                 # pid_t
203         lgfr    %r3,%r3                 # pid_t
204         jg      sys_setpgid             # branch to system call
206 ENTRY(sys32_umask_wrapper)
207         lgfr    %r2,%r2                 # int
208         jg      sys_umask               # branch to system call
210 ENTRY(sys32_chroot_wrapper)
211         llgtr   %r2,%r2                 # char *
212         jg      sys_chroot              # branch to system call
214 ENTRY(sys32_ustat_wrapper)
215         llgfr   %r2,%r2                 # dev_t
216         llgtr   %r3,%r3                 # struct ustat *
217         jg      compat_sys_ustat
219 ENTRY(sys32_dup2_wrapper)
220         llgfr   %r2,%r2                 # unsigned int
221         llgfr   %r3,%r3                 # unsigned int
222         jg      sys_dup2                # branch to system call
224 #sys32_getppid_wrapper                  # void
226 #sys32_getpgrp_wrapper                  # void
228 #sys32_setsid_wrapper                   # void
230 ENTRY(sys32_sigaction_wrapper)
231         lgfr    %r2,%r2                 # int
232         llgtr   %r3,%r3                 # const struct old_sigaction *
233         llgtr   %r4,%r4                 # struct old_sigaction32 *
234         jg      sys32_sigaction         # branch to system call
236 ENTRY(sys32_setreuid16_wrapper)
237         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t
238         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
239         jg      sys32_setreuid16        # branch to system call
241 ENTRY(sys32_setregid16_wrapper)
242         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
243         llgfr   %r3,%r3                 # __kernel_old_gid_emu31_t
244         jg      sys32_setregid16        # branch to system call
246 ENTRY(sys_sigsuspend_wrapper)
247         lgfr    %r2,%r2                 # int
248         lgfr    %r3,%r3                 # int
249         llgfr   %r4,%r4                 # old_sigset_t
250         jg      sys_sigsuspend
252 ENTRY(compat_sys_sigpending_wrapper)
253         llgtr   %r2,%r2                 # compat_old_sigset_t *
254         jg      compat_sys_sigpending   # branch to system call
256 ENTRY(sys32_sethostname_wrapper)
257         llgtr   %r2,%r2                 # char *
258         lgfr    %r3,%r3                 # int
259         jg      sys_sethostname         # branch to system call
261 ENTRY(compat_sys_setrlimit_wrapper)
262         llgfr   %r2,%r2                 # unsigned int
263         llgtr   %r3,%r3                 # struct rlimit_emu31 *
264         jg      compat_sys_setrlimit    # branch to system call
266 ENTRY(compat_sys_old_getrlimit_wrapper)
267         llgfr   %r2,%r2                 # unsigned int
268         llgtr   %r3,%r3                 # struct rlimit_emu31 *
269         jg      compat_sys_old_getrlimit # branch to system call
271 ENTRY(compat_sys_getrlimit_wrapper)
272         llgfr   %r2,%r2                 # unsigned int
273         llgtr   %r3,%r3                 # struct rlimit_emu31 *
274         jg      compat_sys_getrlimit    # branch to system call
276 ENTRY(sys32_mmap2_wrapper)
277         llgtr   %r2,%r2                 # struct mmap_arg_struct_emu31 *
278         jg      sys32_mmap2                     # branch to system call
280 ENTRY(compat_sys_getrusage_wrapper)
281         lgfr    %r2,%r2                 # int
282         llgtr   %r3,%r3                 # struct rusage_emu31 *
283         jg      compat_sys_getrusage    # branch to system call
285 ENTRY(compat_sys_gettimeofday_wrapper)
286         llgtr   %r2,%r2                 # struct timeval_emu31 *
287         llgtr   %r3,%r3                 # struct timezone *
288         jg      compat_sys_gettimeofday # branch to system call
290 ENTRY(compat_sys_settimeofday_wrapper)
291         llgtr   %r2,%r2                 # struct timeval_emu31 *
292         llgtr   %r3,%r3                 # struct timezone *
293         jg      compat_sys_settimeofday # branch to system call
295 ENTRY(sys32_getgroups16_wrapper)
296         lgfr    %r2,%r2                 # int
297         llgtr   %r3,%r3                 # __kernel_old_gid_emu31_t *
298         jg      sys32_getgroups16       # branch to system call
300 ENTRY(sys32_setgroups16_wrapper)
301         lgfr    %r2,%r2                 # int
302         llgtr   %r3,%r3                 # __kernel_old_gid_emu31_t *
303         jg      sys32_setgroups16       # branch to system call
305 ENTRY(sys32_symlink_wrapper)
306         llgtr   %r2,%r2                 # const char *
307         llgtr   %r3,%r3                 # const char *
308         jg      sys_symlink             # branch to system call
310 ENTRY(sys32_readlink_wrapper)
311         llgtr   %r2,%r2                 # const char *
312         llgtr   %r3,%r3                 # char *
313         lgfr    %r4,%r4                 # int
314         jg      sys_readlink            # branch to system call
316 ENTRY(sys32_uselib_wrapper)
317         llgtr   %r2,%r2                 # const char *
318         jg      sys_uselib              # branch to system call
320 ENTRY(sys32_swapon_wrapper)
321         llgtr   %r2,%r2                 # const char *
322         lgfr    %r3,%r3                 # int
323         jg      sys_swapon              # branch to system call
325 ENTRY(sys32_reboot_wrapper)
326         lgfr    %r2,%r2                 # int
327         lgfr    %r3,%r3                 # int
328         llgfr   %r4,%r4                 # unsigned int
329         llgtr   %r5,%r5                 # void *
330         jg      sys_reboot              # branch to system call
332 ENTRY(old32_readdir_wrapper)
333         llgfr   %r2,%r2                 # unsigned int
334         llgtr   %r3,%r3                 # void *
335         llgfr   %r4,%r4                 # unsigned int
336         jg      compat_sys_old_readdir  # branch to system call
338 ENTRY(old32_mmap_wrapper)
339         llgtr   %r2,%r2                 # struct mmap_arg_struct_emu31 *
340         jg      old32_mmap              # branch to system call
342 ENTRY(sys32_munmap_wrapper)
343         llgfr   %r2,%r2                 # unsigned long
344         llgfr   %r3,%r3                 # size_t
345         jg      sys_munmap              # branch to system call
347 ENTRY(sys32_truncate_wrapper)
348         llgtr   %r2,%r2                 # const char *
349         lgfr    %r3,%r3                 # long
350         jg      sys_truncate            # branch to system call
352 ENTRY(sys32_ftruncate_wrapper)
353         llgfr   %r2,%r2                 # unsigned int
354         llgfr   %r3,%r3                 # unsigned long
355         jg      sys_ftruncate           # branch to system call
357 ENTRY(sys32_fchmod_wrapper)
358         llgfr   %r2,%r2                 # unsigned int
359         llgfr   %r3,%r3                 # mode_t
360         jg      sys_fchmod              # branch to system call
362 ENTRY(sys32_fchown16_wrapper)
363         llgfr   %r2,%r2                 # unsigned int
364         llgfr   %r3,%r3                 # compat_uid_t
365         llgfr   %r4,%r4                 # compat_uid_t
366         jg      sys32_fchown16          # branch to system call
368 ENTRY(sys32_getpriority_wrapper)
369         lgfr    %r2,%r2                 # int
370         lgfr    %r3,%r3                 # int
371         jg      sys_getpriority         # branch to system call
373 ENTRY(sys32_setpriority_wrapper)
374         lgfr    %r2,%r2                 # int
375         lgfr    %r3,%r3                 # int
376         lgfr    %r4,%r4                 # int
377         jg      sys_setpriority         # branch to system call
379 ENTRY(compat_sys_statfs_wrapper)
380         llgtr   %r2,%r2                 # char *
381         llgtr   %r3,%r3                 # struct compat_statfs *
382         jg      compat_sys_statfs       # branch to system call
384 ENTRY(compat_sys_fstatfs_wrapper)
385         llgfr   %r2,%r2                 # unsigned int
386         llgtr   %r3,%r3                 # struct compat_statfs *
387         jg      compat_sys_fstatfs      # branch to system call
389 ENTRY(compat_sys_socketcall_wrapper)
390         lgfr    %r2,%r2                 # int
391         llgtr   %r3,%r3                 # u32 *
392         jg      compat_sys_socketcall   # branch to system call
394 ENTRY(sys32_syslog_wrapper)
395         lgfr    %r2,%r2                 # int
396         llgtr   %r3,%r3                 # char *
397         lgfr    %r4,%r4                 # int
398         jg      sys_syslog              # branch to system call
400 ENTRY(compat_sys_setitimer_wrapper)
401         lgfr    %r2,%r2                 # int
402         llgtr   %r3,%r3                 # struct itimerval_emu31 *
403         llgtr   %r4,%r4                 # struct itimerval_emu31 *
404         jg      compat_sys_setitimer    # branch to system call
406 ENTRY(compat_sys_getitimer_wrapper)
407         lgfr    %r2,%r2                 # int
408         llgtr   %r3,%r3                 # struct itimerval_emu31 *
409         jg      compat_sys_getitimer    # branch to system call
411 ENTRY(compat_sys_newstat_wrapper)
412         llgtr   %r2,%r2                 # char *
413         llgtr   %r3,%r3                 # struct stat_emu31 *
414         jg      compat_sys_newstat      # branch to system call
416 ENTRY(compat_sys_newlstat_wrapper)
417         llgtr   %r2,%r2                 # char *
418         llgtr   %r3,%r3                 # struct stat_emu31 *
419         jg      compat_sys_newlstat     # branch to system call
421 ENTRY(compat_sys_newfstat_wrapper)
422         llgfr   %r2,%r2                 # unsigned int
423         llgtr   %r3,%r3                 # struct stat_emu31 *
424         jg      compat_sys_newfstat     # branch to system call
426 #sys32_vhangup_wrapper                  # void
428 ENTRY(compat_sys_wait4_wrapper)
429         lgfr    %r2,%r2                 # pid_t
430         llgtr   %r3,%r3                 # unsigned int *
431         lgfr    %r4,%r4                 # int
432         llgtr   %r5,%r5                 # struct rusage *
433         jg      compat_sys_wait4        # branch to system call
435 ENTRY(sys32_swapoff_wrapper)
436         llgtr   %r2,%r2                 # const char *
437         jg      sys_swapoff             # branch to system call
439 ENTRY(compat_sys_sysinfo_wrapper)
440         llgtr   %r2,%r2                 # struct sysinfo_emu31 *
441         jg      compat_sys_sysinfo      # branch to system call
443 ENTRY(sys32_ipc_wrapper)
444         llgfr   %r2,%r2                 # uint
445         lgfr    %r3,%r3                 # int
446         lgfr    %r4,%r4                 # int
447         lgfr    %r5,%r5                 # int
448         llgfr   %r6,%r6                 # u32
449         jg      sys32_ipc               # branch to system call
451 ENTRY(sys32_fsync_wrapper)
452         llgfr   %r2,%r2                 # unsigned int
453         jg      sys_fsync               # branch to system call
455 #sys32_sigreturn_wrapper                # done in sigreturn_glue
457 #sys32_clone_wrapper                    # done in clone_glue
459 ENTRY(sys32_setdomainname_wrapper)
460         llgtr   %r2,%r2                 # char *
461         lgfr    %r3,%r3                 # int
462         jg      sys_setdomainname       # branch to system call
464 ENTRY(sys32_newuname_wrapper)
465         llgtr   %r2,%r2                 # struct new_utsname *
466         jg      sys_newuname            # branch to system call
468 ENTRY(compat_sys_adjtimex_wrapper)
469         llgtr   %r2,%r2                 # struct compat_timex *
470         jg      compat_sys_adjtimex     # branch to system call
472 ENTRY(sys32_mprotect_wrapper)
473         llgtr   %r2,%r2                 # unsigned long (actually pointer
474         llgfr   %r3,%r3                 # size_t
475         llgfr   %r4,%r4                 # unsigned long
476         jg      sys_mprotect            # branch to system call
478 ENTRY(compat_sys_sigprocmask_wrapper)
479         lgfr    %r2,%r2                 # int
480         llgtr   %r3,%r3                 # compat_old_sigset_t *
481         llgtr   %r4,%r4                 # compat_old_sigset_t *
482         jg      compat_sys_sigprocmask          # branch to system call
484 ENTRY(sys_init_module_wrapper)
485         llgtr   %r2,%r2                 # void *
486         llgfr   %r3,%r3                 # unsigned long
487         llgtr   %r4,%r4                 # char *
488         jg      sys_init_module         # branch to system call
490 ENTRY(sys_delete_module_wrapper)
491         llgtr   %r2,%r2                 # const char *
492         llgfr   %r3,%r3                 # unsigned int
493         jg      sys_delete_module       # branch to system call
495 ENTRY(sys32_quotactl_wrapper)
496         llgfr   %r2,%r2                 # unsigned int
497         llgtr   %r3,%r3                 # const char *
498         llgfr   %r4,%r4                 # qid_t
499         llgtr   %r5,%r5                 # caddr_t
500         jg      sys_quotactl            # branch to system call
502 ENTRY(sys32_getpgid_wrapper)
503         lgfr    %r2,%r2                 # pid_t
504         jg      sys_getpgid             # branch to system call
506 ENTRY(sys32_fchdir_wrapper)
507         llgfr   %r2,%r2                 # unsigned int
508         jg      sys_fchdir              # branch to system call
510 ENTRY(sys32_bdflush_wrapper)
511         lgfr    %r2,%r2                 # int
512         lgfr    %r3,%r3                 # long
513         jg      sys_bdflush             # branch to system call
515 ENTRY(sys32_sysfs_wrapper)
516         lgfr    %r2,%r2                 # int
517         llgfr   %r3,%r3                 # unsigned long
518         llgfr   %r4,%r4                 # unsigned long
519         jg      sys_sysfs               # branch to system call
521 ENTRY(sys32_personality_wrapper)
522         llgfr   %r2,%r2                 # unsigned int
523         jg      sys_s390_personality    # branch to system call
525 ENTRY(sys32_setfsuid16_wrapper)
526         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t
527         jg      sys32_setfsuid16        # branch to system call
529 ENTRY(sys32_setfsgid16_wrapper)
530         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
531         jg      sys32_setfsgid16        # branch to system call
533 ENTRY(sys32_llseek_wrapper)
534         llgfr   %r2,%r2                 # unsigned int
535         llgfr   %r3,%r3                 # unsigned long
536         llgfr   %r4,%r4                 # unsigned long
537         llgtr   %r5,%r5                 # loff_t *
538         llgfr   %r6,%r6                 # unsigned int
539         jg      sys_llseek              # branch to system call
541 ENTRY(sys32_getdents_wrapper)
542         llgfr   %r2,%r2                 # unsigned int
543         llgtr   %r3,%r3                 # void *
544         llgfr   %r4,%r4                 # unsigned int
545         jg      compat_sys_getdents     # branch to system call
547 ENTRY(compat_sys_select_wrapper)
548         lgfr    %r2,%r2                 # int
549         llgtr   %r3,%r3                 # compat_fd_set *
550         llgtr   %r4,%r4                 # compat_fd_set *
551         llgtr   %r5,%r5                 # compat_fd_set *
552         llgtr   %r6,%r6                 # struct compat_timeval *
553         jg      compat_sys_select       # branch to system call
555 ENTRY(sys32_flock_wrapper)
556         llgfr   %r2,%r2                 # unsigned int
557         llgfr   %r3,%r3                 # unsigned int
558         jg      sys_flock               # branch to system call
560 ENTRY(sys32_msync_wrapper)
561         llgfr   %r2,%r2                 # unsigned long
562         llgfr   %r3,%r3                 # size_t
563         lgfr    %r4,%r4                 # int
564         jg      sys_msync               # branch to system call
566 ENTRY(compat_sys_readv_wrapper)
567         lgfr    %r2,%r2                 # int
568         llgtr   %r3,%r3                 # const struct compat_iovec *
569         llgfr   %r4,%r4                 # unsigned long
570         jg      compat_sys_readv        # branch to system call
572 ENTRY(compat_sys_writev_wrapper)
573         lgfr    %r2,%r2                 # int
574         llgtr   %r3,%r3                 # const struct compat_iovec *
575         llgfr   %r4,%r4                 # unsigned long
576         jg      compat_sys_writev       # branch to system call
578 ENTRY(sys32_getsid_wrapper)
579         lgfr    %r2,%r2                 # pid_t
580         jg      sys_getsid              # branch to system call
582 ENTRY(sys32_fdatasync_wrapper)
583         llgfr   %r2,%r2                 # unsigned int
584         jg      sys_fdatasync           # branch to system call
586 ENTRY(sys32_mlock_wrapper)
587         llgfr   %r2,%r2                 # unsigned long
588         llgfr   %r3,%r3                 # size_t
589         jg      sys_mlock               # branch to system call
591 ENTRY(sys32_munlock_wrapper)
592         llgfr   %r2,%r2                 # unsigned long
593         llgfr   %r3,%r3                 # size_t
594         jg      sys_munlock             # branch to system call
596 ENTRY(sys32_mlockall_wrapper)
597         lgfr    %r2,%r2                 # int
598         jg      sys_mlockall            # branch to system call
600 #sys32_munlockall_wrapper               # void
602 ENTRY(sys32_sched_setparam_wrapper)
603         lgfr    %r2,%r2                 # pid_t
604         llgtr   %r3,%r3                 # struct sched_param *
605         jg      sys_sched_setparam      # branch to system call
607 ENTRY(sys32_sched_getparam_wrapper)
608         lgfr    %r2,%r2                 # pid_t
609         llgtr   %r3,%r3                 # struct sched_param *
610         jg      sys_sched_getparam      # branch to system call
612 ENTRY(sys32_sched_setscheduler_wrapper)
613         lgfr    %r2,%r2                 # pid_t
614         lgfr    %r3,%r3                 # int
615         llgtr   %r4,%r4                 # struct sched_param *
616         jg      sys_sched_setscheduler  # branch to system call
618 ENTRY(sys32_sched_getscheduler_wrapper)
619         lgfr    %r2,%r2                 # pid_t
620         jg      sys_sched_getscheduler  # branch to system call
622 #sys32_sched_yield_wrapper              # void
624 ENTRY(sys32_sched_get_priority_max_wrapper)
625         lgfr    %r2,%r2                 # int
626         jg      sys_sched_get_priority_max      # branch to system call
628 ENTRY(sys32_sched_get_priority_min_wrapper)
629         lgfr    %r2,%r2                 # int
630         jg      sys_sched_get_priority_min      # branch to system call
632 ENTRY(sys32_sched_rr_get_interval_wrapper)
633         lgfr    %r2,%r2                 # pid_t
634         llgtr   %r3,%r3                 # struct compat_timespec *
635         jg      sys32_sched_rr_get_interval     # branch to system call
637 ENTRY(compat_sys_nanosleep_wrapper)
638         llgtr   %r2,%r2                 # struct compat_timespec *
639         llgtr   %r3,%r3                 # struct compat_timespec *
640         jg      compat_sys_nanosleep            # branch to system call
642 ENTRY(sys32_mremap_wrapper)
643         llgfr   %r2,%r2                 # unsigned long
644         llgfr   %r3,%r3                 # unsigned long
645         llgfr   %r4,%r4                 # unsigned long
646         llgfr   %r5,%r5                 # unsigned long
647         llgfr   %r6,%r6                 # unsigned long
648         jg      sys_mremap              # branch to system call
650 ENTRY(sys32_setresuid16_wrapper)
651         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t
652         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
653         llgfr   %r4,%r4                 # __kernel_old_uid_emu31_t
654         jg      sys32_setresuid16       # branch to system call
656 ENTRY(sys32_getresuid16_wrapper)
657         llgtr   %r2,%r2                 # __kernel_old_uid_emu31_t *
658         llgtr   %r3,%r3                 # __kernel_old_uid_emu31_t *
659         llgtr   %r4,%r4                 # __kernel_old_uid_emu31_t *
660         jg      sys32_getresuid16       # branch to system call
662 ENTRY(sys32_poll_wrapper)
663         llgtr   %r2,%r2                 # struct pollfd *
664         llgfr   %r3,%r3                 # unsigned int
665         lgfr    %r4,%r4                 # long
666         jg      sys_poll                # branch to system call
668 ENTRY(compat_sys_nfsservctl_wrapper)
669         lgfr    %r2,%r2                 # int
670         llgtr   %r3,%r3                 # struct compat_nfsctl_arg*
671         llgtr   %r4,%r4                 # union compat_nfsctl_res*
672         jg      compat_sys_nfsservctl   # branch to system call
674 ENTRY(sys32_setresgid16_wrapper)
675         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
676         llgfr   %r3,%r3                 # __kernel_old_gid_emu31_t
677         llgfr   %r4,%r4                 # __kernel_old_gid_emu31_t
678         jg      sys32_setresgid16       # branch to system call
680 ENTRY(sys32_getresgid16_wrapper)
681         llgtr   %r2,%r2                 # __kernel_old_gid_emu31_t *
682         llgtr   %r3,%r3                 # __kernel_old_gid_emu31_t *
683         llgtr   %r4,%r4                 # __kernel_old_gid_emu31_t *
684         jg      sys32_getresgid16       # branch to system call
686 ENTRY(sys32_prctl_wrapper)
687         lgfr    %r2,%r2                 # int
688         llgfr   %r3,%r3                 # unsigned long
689         llgfr   %r4,%r4                 # unsigned long
690         llgfr   %r5,%r5                 # unsigned long
691         llgfr   %r6,%r6                 # unsigned long
692         jg      sys_prctl               # branch to system call
694 #sys32_rt_sigreturn_wrapper             # done in rt_sigreturn_glue
696 ENTRY(sys32_rt_sigaction_wrapper)
697         lgfr    %r2,%r2                 # int
698         llgtr   %r3,%r3                 # const struct sigaction_emu31 *
699         llgtr   %r4,%r4                 # const struct sigaction_emu31 *
700         llgfr   %r5,%r5                 # size_t
701         jg      sys32_rt_sigaction      # branch to system call
703 ENTRY(sys32_rt_sigprocmask_wrapper)
704         lgfr    %r2,%r2                 # int
705         llgtr   %r3,%r3                 # old_sigset_emu31 *
706         llgtr   %r4,%r4                 # old_sigset_emu31 *
707         llgfr   %r5,%r5                 # size_t
708         jg      sys32_rt_sigprocmask    # branch to system call
710 ENTRY(sys32_rt_sigpending_wrapper)
711         llgtr   %r2,%r2                 # sigset_emu31 *
712         llgfr   %r3,%r3                 # size_t
713         jg      sys32_rt_sigpending     # branch to system call
715 ENTRY(compat_sys_rt_sigtimedwait_wrapper)
716         llgtr   %r2,%r2                 # const sigset_emu31_t *
717         llgtr   %r3,%r3                 # siginfo_emu31_t *
718         llgtr   %r4,%r4                 # const struct compat_timespec *
719         llgfr   %r5,%r5                 # size_t
720         jg      compat_sys_rt_sigtimedwait      # branch to system call
722 ENTRY(sys32_rt_sigqueueinfo_wrapper)
723         lgfr    %r2,%r2                 # int
724         lgfr    %r3,%r3                 # int
725         llgtr   %r4,%r4                 # siginfo_emu31_t *
726         jg      sys32_rt_sigqueueinfo   # branch to system call
728 ENTRY(compat_sys_rt_sigsuspend_wrapper)
729         llgtr   %r2,%r2                 # compat_sigset_t *
730         llgfr   %r3,%r3                 # compat_size_t
731         jg      compat_sys_rt_sigsuspend
733 ENTRY(sys32_pread64_wrapper)
734         llgfr   %r2,%r2                 # unsigned int
735         llgtr   %r3,%r3                 # char *
736         llgfr   %r4,%r4                 # size_t
737         llgfr   %r5,%r5                 # u32
738         llgfr   %r6,%r6                 # u32
739         jg      sys32_pread64           # branch to system call
741 ENTRY(sys32_pwrite64_wrapper)
742         llgfr   %r2,%r2                 # unsigned int
743         llgtr   %r3,%r3                 # const char *
744         llgfr   %r4,%r4                 # size_t
745         llgfr   %r5,%r5                 # u32
746         llgfr   %r6,%r6                 # u32
747         jg      sys32_pwrite64          # branch to system call
749 ENTRY(sys32_chown16_wrapper)
750         llgtr   %r2,%r2                 # const char *
751         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
752         llgfr   %r4,%r4                 # __kernel_old_gid_emu31_t
753         jg      sys32_chown16           # branch to system call
755 ENTRY(sys32_getcwd_wrapper)
756         llgtr   %r2,%r2                 # char *
757         llgfr   %r3,%r3                 # unsigned long
758         jg      sys_getcwd              # branch to system call
760 ENTRY(sys32_capget_wrapper)
761         llgtr   %r2,%r2                 # cap_user_header_t
762         llgtr   %r3,%r3                 # cap_user_data_t
763         jg      sys_capget              # branch to system call
765 ENTRY(sys32_capset_wrapper)
766         llgtr   %r2,%r2                 # cap_user_header_t
767         llgtr   %r3,%r3                 # const cap_user_data_t
768         jg      sys_capset              # branch to system call
770 ENTRY(sys32_sigaltstack_wrapper)
771         llgtr   %r2,%r2                 # const stack_emu31_t *
772         llgtr   %r3,%r3                 # stack_emu31_t *
773         jg      sys32_sigaltstack
775 ENTRY(sys32_sendfile_wrapper)
776         lgfr    %r2,%r2                 # int
777         lgfr    %r3,%r3                 # int
778         llgtr   %r4,%r4                 # __kernel_off_emu31_t *
779         llgfr   %r5,%r5                 # size_t
780         jg      sys32_sendfile          # branch to system call
782 #sys32_vfork_wrapper                    # done in vfork_glue
784 ENTRY(sys32_truncate64_wrapper)
785         llgtr   %r2,%r2                 # const char *
786         llgfr   %r3,%r3                 # unsigned long
787         llgfr   %r4,%r4                 # unsigned long
788         jg      sys32_truncate64        # branch to system call
790 ENTRY(sys32_ftruncate64_wrapper)
791         llgfr   %r2,%r2                 # unsigned int
792         llgfr   %r3,%r3                 # unsigned long
793         llgfr   %r4,%r4                 # unsigned long
794         jg      sys32_ftruncate64       # branch to system call
796 ENTRY(sys32_lchown_wrapper)
797         llgtr   %r2,%r2                 # const char *
798         llgfr   %r3,%r3                 # uid_t
799         llgfr   %r4,%r4                 # gid_t
800         jg      sys_lchown              # branch to system call
802 #sys32_getuid_wrapper                   # void
803 #sys32_getgid_wrapper                   # void
804 #sys32_geteuid_wrapper                  # void
805 #sys32_getegid_wrapper                  # void
807 ENTRY(sys32_setreuid_wrapper)
808         llgfr   %r2,%r2                 # uid_t
809         llgfr   %r3,%r3                 # uid_t
810         jg      sys_setreuid            # branch to system call
812 ENTRY(sys32_setregid_wrapper)
813         llgfr   %r2,%r2                 # gid_t
814         llgfr   %r3,%r3                 # gid_t
815         jg      sys_setregid            # branch to system call
817 ENTRY(sys32_getgroups_wrapper)
818         lgfr    %r2,%r2                 # int
819         llgtr   %r3,%r3                 # gid_t *
820         jg      sys_getgroups           # branch to system call
822 ENTRY(sys32_setgroups_wrapper)
823         lgfr    %r2,%r2                 # int
824         llgtr   %r3,%r3                 # gid_t *
825         jg      sys_setgroups           # branch to system call
827 ENTRY(sys32_fchown_wrapper)
828         llgfr   %r2,%r2                 # unsigned int
829         llgfr   %r3,%r3                 # uid_t
830         llgfr   %r4,%r4                 # gid_t
831         jg      sys_fchown              # branch to system call
833 ENTRY(sys32_setresuid_wrapper)
834         llgfr   %r2,%r2                 # uid_t
835         llgfr   %r3,%r3                 # uid_t
836         llgfr   %r4,%r4                 # uid_t
837         jg      sys_setresuid           # branch to system call
839 ENTRY(sys32_getresuid_wrapper)
840         llgtr   %r2,%r2                 # uid_t *
841         llgtr   %r3,%r3                 # uid_t *
842         llgtr   %r4,%r4                 # uid_t *
843         jg      sys_getresuid           # branch to system call
845 ENTRY(sys32_setresgid_wrapper)
846         llgfr   %r2,%r2                 # gid_t
847         llgfr   %r3,%r3                 # gid_t
848         llgfr   %r4,%r4                 # gid_t
849         jg      sys_setresgid           # branch to system call
851 ENTRY(sys32_getresgid_wrapper)
852         llgtr   %r2,%r2                 # gid_t *
853         llgtr   %r3,%r3                 # gid_t *
854         llgtr   %r4,%r4                 # gid_t *
855         jg      sys_getresgid           # branch to system call
857 ENTRY(sys32_chown_wrapper)
858         llgtr   %r2,%r2                 # const char *
859         llgfr   %r3,%r3                 # uid_t
860         llgfr   %r4,%r4                 # gid_t
861         jg      sys_chown               # branch to system call
863 ENTRY(sys32_setuid_wrapper)
864         llgfr   %r2,%r2                 # uid_t
865         jg      sys_setuid              # branch to system call
867 ENTRY(sys32_setgid_wrapper)
868         llgfr   %r2,%r2                 # gid_t
869         jg      sys_setgid              # branch to system call
871 ENTRY(sys32_setfsuid_wrapper)
872         llgfr   %r2,%r2                 # uid_t
873         jg      sys_setfsuid            # branch to system call
875 ENTRY(sys32_setfsgid_wrapper)
876         llgfr   %r2,%r2                 # gid_t
877         jg      sys_setfsgid            # branch to system call
879 ENTRY(sys32_pivot_root_wrapper)
880         llgtr   %r2,%r2                 # const char *
881         llgtr   %r3,%r3                 # const char *
882         jg      sys_pivot_root          # branch to system call
884 ENTRY(sys32_mincore_wrapper)
885         llgfr   %r2,%r2                 # unsigned long
886         llgfr   %r3,%r3                 # size_t
887         llgtr   %r4,%r4                 # unsigned char *
888         jg      sys_mincore             # branch to system call
890 ENTRY(sys32_madvise_wrapper)
891         llgfr   %r2,%r2                 # unsigned long
892         llgfr   %r3,%r3                 # size_t
893         lgfr    %r4,%r4                 # int
894         jg      sys_madvise             # branch to system call
896 ENTRY(sys32_getdents64_wrapper)
897         llgfr   %r2,%r2                 # unsigned int
898         llgtr   %r3,%r3                 # void *
899         llgfr   %r4,%r4                 # unsigned int
900         jg      sys_getdents64          # branch to system call
902 ENTRY(compat_sys_fcntl64_wrapper)
903         llgfr   %r2,%r2                 # unsigned int
904         llgfr   %r3,%r3                 # unsigned int
905         llgfr   %r4,%r4                 # unsigned long
906         jg      compat_sys_fcntl64      # branch to system call
908 ENTRY(sys32_stat64_wrapper)
909         llgtr   %r2,%r2                 # char *
910         llgtr   %r3,%r3                 # struct stat64 *
911         jg      sys32_stat64            # branch to system call
913 ENTRY(sys32_lstat64_wrapper)
914         llgtr   %r2,%r2                 # char *
915         llgtr   %r3,%r3                 # struct stat64 *
916         jg      sys32_lstat64           # branch to system call
918 ENTRY(sys32_stime_wrapper)
919         llgtr   %r2,%r2                 # long *
920         jg      compat_sys_stime        # branch to system call
922 ENTRY(sys32_sysctl_wrapper)
923         llgtr   %r2,%r2                 # struct compat_sysctl_args *
924         jg      compat_sys_sysctl
926 ENTRY(sys32_fstat64_wrapper)
927         llgfr   %r2,%r2                 # unsigned long
928         llgtr   %r3,%r3                 # struct stat64 *
929         jg      sys32_fstat64           # branch to system call
931 ENTRY(compat_sys_futex_wrapper)
932         llgtr   %r2,%r2                 # u32 *
933         lgfr    %r3,%r3                 # int
934         lgfr    %r4,%r4                 # int
935         llgtr   %r5,%r5                 # struct compat_timespec *
936         llgtr   %r6,%r6                 # u32 *
937         lgf     %r0,164(%r15)           # int
938         stg     %r0,160(%r15)
939         jg      compat_sys_futex        # branch to system call
941 ENTRY(sys32_setxattr_wrapper)
942         llgtr   %r2,%r2                 # char *
943         llgtr   %r3,%r3                 # char *
944         llgtr   %r4,%r4                 # void *
945         llgfr   %r5,%r5                 # size_t
946         lgfr    %r6,%r6                 # int
947         jg      sys_setxattr
949 ENTRY(sys32_lsetxattr_wrapper)
950         llgtr   %r2,%r2                 # char *
951         llgtr   %r3,%r3                 # char *
952         llgtr   %r4,%r4                 # void *
953         llgfr   %r5,%r5                 # size_t
954         lgfr    %r6,%r6                 # int
955         jg      sys_lsetxattr
957 ENTRY(sys32_fsetxattr_wrapper)
958         lgfr    %r2,%r2                 # int
959         llgtr   %r3,%r3                 # char *
960         llgtr   %r4,%r4                 # void *
961         llgfr   %r5,%r5                 # size_t
962         lgfr    %r6,%r6                 # int
963         jg      sys_fsetxattr
965 ENTRY(sys32_getxattr_wrapper)
966         llgtr   %r2,%r2                 # char *
967         llgtr   %r3,%r3                 # char *
968         llgtr   %r4,%r4                 # void *
969         llgfr   %r5,%r5                 # size_t
970         jg      sys_getxattr
972 ENTRY(sys32_lgetxattr_wrapper)
973         llgtr   %r2,%r2                 # char *
974         llgtr   %r3,%r3                 # char *
975         llgtr   %r4,%r4                 # void *
976         llgfr   %r5,%r5                 # size_t
977         jg      sys_lgetxattr
979 ENTRY(sys32_fgetxattr_wrapper)
980         lgfr    %r2,%r2                 # int
981         llgtr   %r3,%r3                 # char *
982         llgtr   %r4,%r4                 # void *
983         llgfr   %r5,%r5                 # size_t
984         jg      sys_fgetxattr
986 ENTRY(sys32_listxattr_wrapper)
987         llgtr   %r2,%r2                 # char *
988         llgtr   %r3,%r3                 # char *
989         llgfr   %r4,%r4                 # size_t
990         jg      sys_listxattr
992 ENTRY(sys32_llistxattr_wrapper)
993         llgtr   %r2,%r2                 # char *
994         llgtr   %r3,%r3                 # char *
995         llgfr   %r4,%r4                 # size_t
996         jg      sys_llistxattr
998 ENTRY(sys32_flistxattr_wrapper)
999         lgfr    %r2,%r2                 # int
1000         llgtr   %r3,%r3                 # char *
1001         llgfr   %r4,%r4                 # size_t
1002         jg      sys_flistxattr
1004 ENTRY(sys32_removexattr_wrapper)
1005         llgtr   %r2,%r2                 # char *
1006         llgtr   %r3,%r3                 # char *
1007         jg      sys_removexattr
1009 ENTRY(sys32_lremovexattr_wrapper)
1010         llgtr   %r2,%r2                 # char *
1011         llgtr   %r3,%r3                 # char *
1012         jg      sys_lremovexattr
1014 ENTRY(sys32_fremovexattr_wrapper)
1015         lgfr    %r2,%r2                 # int
1016         llgtr   %r3,%r3                 # char *
1017         jg      sys_fremovexattr
1019 ENTRY(sys32_sched_setaffinity_wrapper)
1020         lgfr    %r2,%r2                 # int
1021         llgfr   %r3,%r3                 # unsigned int
1022         llgtr   %r4,%r4                 # unsigned long *
1023         jg      compat_sys_sched_setaffinity
1025 ENTRY(sys32_sched_getaffinity_wrapper)
1026         lgfr    %r2,%r2                 # int
1027         llgfr   %r3,%r3                 # unsigned int
1028         llgtr   %r4,%r4                 # unsigned long *
1029         jg      compat_sys_sched_getaffinity
1031 ENTRY(sys32_exit_group_wrapper)
1032         lgfr    %r2,%r2                 # int
1033         jg      sys_exit_group          # branch to system call
1035 ENTRY(sys32_set_tid_address_wrapper)
1036         llgtr   %r2,%r2                 # int *
1037         jg      sys_set_tid_address     # branch to system call
1039 ENTRY(sys_epoll_create_wrapper)
1040         lgfr    %r2,%r2                 # int
1041         jg      sys_epoll_create        # branch to system call
1043 ENTRY(sys_epoll_ctl_wrapper)
1044         lgfr    %r2,%r2                 # int
1045         lgfr    %r3,%r3                 # int
1046         lgfr    %r4,%r4                 # int
1047         llgtr   %r5,%r5                 # struct epoll_event *
1048         jg      sys_epoll_ctl           # branch to system call
1050 ENTRY(sys_epoll_wait_wrapper)
1051         lgfr    %r2,%r2                 # int
1052         llgtr   %r3,%r3                 # struct epoll_event *
1053         lgfr    %r4,%r4                 # int
1054         lgfr    %r5,%r5                 # int
1055         jg      sys_epoll_wait          # branch to system call
1057 ENTRY(sys32_lookup_dcookie_wrapper)
1058         sllg    %r2,%r2,32              # get high word of 64bit dcookie
1059         or      %r2,%r3                 # get low word of 64bit dcookie
1060         llgtr   %r3,%r4                 # char *
1061         llgfr   %r4,%r5                 # size_t
1062         jg      sys_lookup_dcookie
1064 ENTRY(sys32_fadvise64_wrapper)
1065         lgfr    %r2,%r2                 # int
1066         sllg    %r3,%r3,32              # get high word of 64bit loff_t
1067         or      %r3,%r4                 # get low word of 64bit loff_t
1068         llgfr   %r4,%r5                 # size_t (unsigned long)
1069         lgfr    %r5,%r6                 # int
1070         jg      sys32_fadvise64
1072 ENTRY(sys32_fadvise64_64_wrapper)
1073         llgtr   %r2,%r2                 # struct fadvise64_64_args *
1074         jg      sys32_fadvise64_64
1076 ENTRY(sys32_clock_settime_wrapper)
1077         lgfr    %r2,%r2                 # clockid_t (int)
1078         llgtr   %r3,%r3                 # struct compat_timespec *
1079         jg      compat_sys_clock_settime
1081 ENTRY(sys32_clock_gettime_wrapper)
1082         lgfr    %r2,%r2                 # clockid_t (int)
1083         llgtr   %r3,%r3                 # struct compat_timespec *
1084         jg      compat_sys_clock_gettime
1086 ENTRY(sys32_clock_getres_wrapper)
1087         lgfr    %r2,%r2                 # clockid_t (int)
1088         llgtr   %r3,%r3                 # struct compat_timespec *
1089         jg      compat_sys_clock_getres
1091 ENTRY(sys32_clock_nanosleep_wrapper)
1092         lgfr    %r2,%r2                 # clockid_t (int)
1093         lgfr    %r3,%r3                 # int
1094         llgtr   %r4,%r4                 # struct compat_timespec *
1095         llgtr   %r5,%r5                 # struct compat_timespec *
1096         jg      compat_sys_clock_nanosleep
1098 ENTRY(sys32_timer_create_wrapper)
1099         lgfr    %r2,%r2                 # timer_t (int)
1100         llgtr   %r3,%r3                 # struct compat_sigevent *
1101         llgtr   %r4,%r4                 # timer_t *
1102         jg      compat_sys_timer_create
1104 ENTRY(sys32_timer_settime_wrapper)
1105         lgfr    %r2,%r2                 # timer_t (int)
1106         lgfr    %r3,%r3                 # int
1107         llgtr   %r4,%r4                 # struct compat_itimerspec *
1108         llgtr   %r5,%r5                 # struct compat_itimerspec *
1109         jg      compat_sys_timer_settime
1111 ENTRY(sys32_timer_gettime_wrapper)
1112         lgfr    %r2,%r2                 # timer_t (int)
1113         llgtr   %r3,%r3                 # struct compat_itimerspec *
1114         jg      compat_sys_timer_gettime
1116 ENTRY(sys32_timer_getoverrun_wrapper)
1117         lgfr    %r2,%r2                 # timer_t (int)
1118         jg      sys_timer_getoverrun
1120 ENTRY(sys32_timer_delete_wrapper)
1121         lgfr    %r2,%r2                 # timer_t (int)
1122         jg      sys_timer_delete
1124 ENTRY(sys32_io_setup_wrapper)
1125         llgfr   %r2,%r2                 # unsigned int
1126         llgtr   %r3,%r3                 # u32 *
1127         jg      compat_sys_io_setup
1129 ENTRY(sys32_io_destroy_wrapper)
1130         llgfr   %r2,%r2                 # (aio_context_t) u32
1131         jg      sys_io_destroy
1133 ENTRY(sys32_io_getevents_wrapper)
1134         llgfr   %r2,%r2                 # (aio_context_t) u32
1135         lgfr    %r3,%r3                 # long
1136         lgfr    %r4,%r4                 # long
1137         llgtr   %r5,%r5                 # struct io_event *
1138         llgtr   %r6,%r6                 # struct compat_timespec *
1139         jg      compat_sys_io_getevents
1141 ENTRY(sys32_io_submit_wrapper)
1142         llgfr   %r2,%r2                 # (aio_context_t) u32
1143         lgfr    %r3,%r3                 # long
1144         llgtr   %r4,%r4                 # struct iocb **
1145         jg      compat_sys_io_submit
1147 ENTRY(sys32_io_cancel_wrapper)
1148         llgfr   %r2,%r2                 # (aio_context_t) u32
1149         llgtr   %r3,%r3                 # struct iocb *
1150         llgtr   %r4,%r4                 # struct io_event *
1151         jg      sys_io_cancel
1153 ENTRY(compat_sys_statfs64_wrapper)
1154         llgtr   %r2,%r2                 # const char *
1155         llgfr   %r3,%r3                 # compat_size_t
1156         llgtr   %r4,%r4                 # struct compat_statfs64 *
1157         jg      compat_sys_statfs64
1159 ENTRY(compat_sys_fstatfs64_wrapper)
1160         llgfr   %r2,%r2                 # unsigned int fd
1161         llgfr   %r3,%r3                 # compat_size_t
1162         llgtr   %r4,%r4                 # struct compat_statfs64 *
1163         jg      compat_sys_fstatfs64
1165 ENTRY(compat_sys_mq_open_wrapper)
1166         llgtr   %r2,%r2                 # const char *
1167         lgfr    %r3,%r3                 # int
1168         llgfr   %r4,%r4                 # mode_t
1169         llgtr   %r5,%r5                 # struct compat_mq_attr *
1170         jg      compat_sys_mq_open
1172 ENTRY(sys32_mq_unlink_wrapper)
1173         llgtr   %r2,%r2                 # const char *
1174         jg      sys_mq_unlink
1176 ENTRY(compat_sys_mq_timedsend_wrapper)
1177         lgfr    %r2,%r2                 # mqd_t
1178         llgtr   %r3,%r3                 # const char *
1179         llgfr   %r4,%r4                 # size_t
1180         llgfr   %r5,%r5                 # unsigned int
1181         llgtr   %r6,%r6                 # const struct compat_timespec *
1182         jg      compat_sys_mq_timedsend
1184 ENTRY(compat_sys_mq_timedreceive_wrapper)
1185         lgfr    %r2,%r2                 # mqd_t
1186         llgtr   %r3,%r3                 # char *
1187         llgfr   %r4,%r4                 # size_t
1188         llgtr   %r5,%r5                 # unsigned int *
1189         llgtr   %r6,%r6                 # const struct compat_timespec *
1190         jg      compat_sys_mq_timedreceive
1192 ENTRY(compat_sys_mq_notify_wrapper)
1193         lgfr    %r2,%r2                 # mqd_t
1194         llgtr   %r3,%r3                 # struct compat_sigevent *
1195         jg      compat_sys_mq_notify
1197 ENTRY(compat_sys_mq_getsetattr_wrapper)
1198         lgfr    %r2,%r2                 # mqd_t
1199         llgtr   %r3,%r3                 # struct compat_mq_attr *
1200         llgtr   %r4,%r4                 # struct compat_mq_attr *
1201         jg      compat_sys_mq_getsetattr
1203 ENTRY(compat_sys_add_key_wrapper)
1204         llgtr   %r2,%r2                 # const char *
1205         llgtr   %r3,%r3                 # const char *
1206         llgtr   %r4,%r4                 # const void *
1207         llgfr   %r5,%r5                 # size_t
1208         llgfr   %r6,%r6                 # (key_serial_t) u32
1209         jg      sys_add_key
1211 ENTRY(compat_sys_request_key_wrapper)
1212         llgtr   %r2,%r2                 # const char *
1213         llgtr   %r3,%r3                 # const char *
1214         llgtr   %r4,%r4                 # const void *
1215         llgfr   %r5,%r5                 # (key_serial_t) u32
1216         jg      sys_request_key
1218 ENTRY(sys32_remap_file_pages_wrapper)
1219         llgfr   %r2,%r2                 # unsigned long
1220         llgfr   %r3,%r3                 # unsigned long
1221         llgfr   %r4,%r4                 # unsigned long
1222         llgfr   %r5,%r5                 # unsigned long
1223         llgfr   %r6,%r6                 # unsigned long
1224         jg      sys_remap_file_pages
1226 ENTRY(compat_sys_waitid_wrapper)
1227         lgfr    %r2,%r2                 # int
1228         lgfr    %r3,%r3                 # pid_t
1229         llgtr   %r4,%r4                 # siginfo_emu31_t *
1230         lgfr    %r5,%r5                 # int
1231         llgtr   %r6,%r6                 # struct rusage_emu31 *
1232         jg      compat_sys_waitid
1234 ENTRY(compat_sys_kexec_load_wrapper)
1235         llgfr   %r2,%r2                 # unsigned long
1236         llgfr   %r3,%r3                 # unsigned long
1237         llgtr   %r4,%r4                 # struct kexec_segment *
1238         llgfr   %r5,%r5                 # unsigned long
1239         jg      compat_sys_kexec_load
1241 ENTRY(sys_ioprio_set_wrapper)
1242         lgfr    %r2,%r2                 # int
1243         lgfr    %r3,%r3                 # int
1244         lgfr    %r4,%r4                 # int
1245         jg      sys_ioprio_set
1247 ENTRY(sys_ioprio_get_wrapper)
1248         lgfr    %r2,%r2                 # int
1249         lgfr    %r3,%r3                 # int
1250         jg      sys_ioprio_get
1252 ENTRY(sys_inotify_add_watch_wrapper)
1253         lgfr    %r2,%r2                 # int
1254         llgtr   %r3,%r3                 # const char *
1255         llgfr   %r4,%r4                 # u32
1256         jg      sys_inotify_add_watch
1258 ENTRY(sys_inotify_rm_watch_wrapper)
1259         lgfr    %r2,%r2                 # int
1260         llgfr   %r3,%r3                 # u32
1261         jg      sys_inotify_rm_watch
1263 ENTRY(compat_sys_openat_wrapper)
1264         llgfr   %r2,%r2                 # unsigned int
1265         llgtr   %r3,%r3                 # const char *
1266         lgfr    %r4,%r4                 # int
1267         lgfr    %r5,%r5                 # int
1268         jg      compat_sys_openat
1270 ENTRY(sys_mkdirat_wrapper)
1271         lgfr    %r2,%r2                 # int
1272         llgtr   %r3,%r3                 # const char *
1273         lgfr    %r4,%r4                 # int
1274         jg      sys_mkdirat
1276 ENTRY(sys_mknodat_wrapper)
1277         lgfr    %r2,%r2                 # int
1278         llgtr   %r3,%r3                 # const char *
1279         lgfr    %r4,%r4                 # int
1280         llgfr   %r5,%r5                 # unsigned int
1281         jg      sys_mknodat
1283 ENTRY(sys_fchownat_wrapper)
1284         lgfr    %r2,%r2                 # int
1285         llgtr   %r3,%r3                 # const char *
1286         llgfr   %r4,%r4                 # uid_t
1287         llgfr   %r5,%r5                 # gid_t
1288         lgfr    %r6,%r6                 # int
1289         jg      sys_fchownat
1291 ENTRY(compat_sys_futimesat_wrapper)
1292         llgfr   %r2,%r2                 # unsigned int
1293         llgtr   %r3,%r3                 # char *
1294         llgtr   %r4,%r4                 # struct timeval *
1295         jg      compat_sys_futimesat
1297 ENTRY(sys32_fstatat64_wrapper)
1298         llgfr   %r2,%r2                 # unsigned int
1299         llgtr   %r3,%r3                 # char *
1300         llgtr   %r4,%r4                 # struct stat64 *
1301         lgfr    %r5,%r5                 # int
1302         jg      sys32_fstatat64
1304 ENTRY(sys_unlinkat_wrapper)
1305         lgfr    %r2,%r2                 # int
1306         llgtr   %r3,%r3                 # const char *
1307         lgfr    %r4,%r4                 # int
1308         jg      sys_unlinkat
1310 ENTRY(sys_renameat_wrapper)
1311         lgfr    %r2,%r2                 # int
1312         llgtr   %r3,%r3                 # const char *
1313         lgfr    %r4,%r4                 # int
1314         llgtr   %r5,%r5                 # const char *
1315         jg      sys_renameat
1317 ENTRY(sys_linkat_wrapper)
1318         lgfr    %r2,%r2                 # int
1319         llgtr   %r3,%r3                 # const char *
1320         lgfr    %r4,%r4                 # int
1321         llgtr   %r5,%r5                 # const char *
1322         lgfr    %r6,%r6                 # int
1323         jg      sys_linkat
1325 ENTRY(sys_symlinkat_wrapper)
1326         llgtr   %r2,%r2                 # const char *
1327         lgfr    %r3,%r3                 # int
1328         llgtr   %r4,%r4                 # const char *
1329         jg      sys_symlinkat
1331 ENTRY(sys_readlinkat_wrapper)
1332         lgfr    %r2,%r2                 # int
1333         llgtr   %r3,%r3                 # const char *
1334         llgtr   %r4,%r4                 # char *
1335         lgfr    %r5,%r5                 # int
1336         jg      sys_readlinkat
1338 ENTRY(sys_fchmodat_wrapper)
1339         lgfr    %r2,%r2                 # int
1340         llgtr   %r3,%r3                 # const char *
1341         llgfr   %r4,%r4                 # mode_t
1342         jg      sys_fchmodat
1344 ENTRY(sys_faccessat_wrapper)
1345         lgfr    %r2,%r2                 # int
1346         llgtr   %r3,%r3                 # const char *
1347         lgfr    %r4,%r4                 # int
1348         jg      sys_faccessat
1350 ENTRY(compat_sys_pselect6_wrapper)
1351         lgfr    %r2,%r2                 # int
1352         llgtr   %r3,%r3                 # fd_set *
1353         llgtr   %r4,%r4                 # fd_set *
1354         llgtr   %r5,%r5                 # fd_set *
1355         llgtr   %r6,%r6                 # struct timespec *
1356         llgt    %r0,164(%r15)           # void *
1357         stg     %r0,160(%r15)
1358         jg      compat_sys_pselect6
1360 ENTRY(compat_sys_ppoll_wrapper)
1361         llgtr   %r2,%r2                 # struct pollfd *
1362         llgfr   %r3,%r3                 # unsigned int
1363         llgtr   %r4,%r4                 # struct timespec *
1364         llgtr   %r5,%r5                 # const sigset_t *
1365         llgfr   %r6,%r6                 # size_t
1366         jg      compat_sys_ppoll
1368 ENTRY(sys_unshare_wrapper)
1369         llgfr   %r2,%r2                 # unsigned long
1370         jg      sys_unshare
1372 ENTRY(compat_sys_set_robust_list_wrapper)
1373         llgtr   %r2,%r2                 # struct compat_robust_list_head *
1374         llgfr   %r3,%r3                 # size_t
1375         jg      compat_sys_set_robust_list
1377 ENTRY(compat_sys_get_robust_list_wrapper)
1378         lgfr    %r2,%r2                 # int
1379         llgtr   %r3,%r3                 # compat_uptr_t_t *
1380         llgtr   %r4,%r4                 # compat_size_t *
1381         jg      compat_sys_get_robust_list
1383 ENTRY(sys_splice_wrapper)
1384         lgfr    %r2,%r2                 # int
1385         llgtr   %r3,%r3                 # loff_t *
1386         lgfr    %r4,%r4                 # int
1387         llgtr   %r5,%r5                 # loff_t *
1388         llgfr   %r6,%r6                 # size_t
1389         llgf    %r0,164(%r15)           # unsigned int
1390         stg     %r0,160(%r15)
1391         jg      sys_splice
1393 ENTRY(sys_sync_file_range_wrapper)
1394         lgfr    %r2,%r2                 # int
1395         sllg    %r3,%r3,32              # get high word of 64bit loff_t
1396         or      %r3,%r4                 # get low word of 64bit loff_t
1397         sllg    %r4,%r5,32              # get high word of 64bit loff_t
1398         or      %r4,%r6                 # get low word of 64bit loff_t
1399         llgf    %r5,164(%r15)           # unsigned int
1400         jg      sys_sync_file_range
1402 ENTRY(sys_tee_wrapper)
1403         lgfr    %r2,%r2                 # int
1404         lgfr    %r3,%r3                 # int
1405         llgfr   %r4,%r4                 # size_t
1406         llgfr   %r5,%r5                 # unsigned int
1407         jg      sys_tee
1409 ENTRY(compat_sys_vmsplice_wrapper)
1410         lgfr    %r2,%r2                 # int
1411         llgtr   %r3,%r3                 # compat_iovec *
1412         llgfr   %r4,%r4                 # unsigned int
1413         llgfr   %r5,%r5                 # unsigned int
1414         jg      compat_sys_vmsplice
1416 ENTRY(sys_getcpu_wrapper)
1417         llgtr   %r2,%r2                 # unsigned *
1418         llgtr   %r3,%r3                 # unsigned *
1419         llgtr   %r4,%r4                 # struct getcpu_cache *
1420         jg      sys_getcpu
1422 ENTRY(compat_sys_epoll_pwait_wrapper)
1423         lgfr    %r2,%r2                 # int
1424         llgtr   %r3,%r3                 # struct compat_epoll_event *
1425         lgfr    %r4,%r4                 # int
1426         lgfr    %r5,%r5                 # int
1427         llgtr   %r6,%r6                 # compat_sigset_t *
1428         llgf    %r0,164(%r15)           # compat_size_t
1429         stg     %r0,160(%r15)
1430         jg      compat_sys_epoll_pwait
1432 ENTRY(compat_sys_utimes_wrapper)
1433         llgtr   %r2,%r2                 # char *
1434         llgtr   %r3,%r3                 # struct compat_timeval *
1435         jg      compat_sys_utimes
1437 ENTRY(compat_sys_utimensat_wrapper)
1438         llgfr   %r2,%r2                 # unsigned int
1439         llgtr   %r3,%r3                 # char *
1440         llgtr   %r4,%r4                 # struct compat_timespec *
1441         lgfr    %r5,%r5                 # int
1442         jg      compat_sys_utimensat
1444 ENTRY(compat_sys_signalfd_wrapper)
1445         lgfr    %r2,%r2                 # int
1446         llgtr   %r3,%r3                 # compat_sigset_t *
1447         llgfr   %r4,%r4                 # compat_size_t
1448         jg      compat_sys_signalfd
1450 ENTRY(sys_eventfd_wrapper)
1451         llgfr   %r2,%r2                 # unsigned int
1452         jg      sys_eventfd
1454 ENTRY(sys_fallocate_wrapper)
1455         lgfr    %r2,%r2                 # int
1456         lgfr    %r3,%r3                 # int
1457         sllg    %r4,%r4,32              # get high word of 64bit loff_t
1458         lr      %r4,%r5                 # get low word of 64bit loff_t
1459         sllg    %r5,%r6,32              # get high word of 64bit loff_t
1460         l       %r5,164(%r15)           # get low word of 64bit loff_t
1461         jg      sys_fallocate
1463 ENTRY(sys_timerfd_create_wrapper)
1464         lgfr    %r2,%r2                 # int
1465         lgfr    %r3,%r3                 # int
1466         jg      sys_timerfd_create
1468 ENTRY(compat_sys_timerfd_settime_wrapper)
1469         lgfr    %r2,%r2                 # int
1470         lgfr    %r3,%r3                 # int
1471         llgtr   %r4,%r4                 # struct compat_itimerspec *
1472         llgtr   %r5,%r5                 # struct compat_itimerspec *
1473         jg      compat_sys_timerfd_settime
1475 ENTRY(compat_sys_timerfd_gettime_wrapper)
1476         lgfr    %r2,%r2                 # int
1477         llgtr   %r3,%r3                 # struct compat_itimerspec *
1478         jg      compat_sys_timerfd_gettime
1480 ENTRY(compat_sys_signalfd4_wrapper)
1481         lgfr    %r2,%r2                 # int
1482         llgtr   %r3,%r3                 # compat_sigset_t *
1483         llgfr   %r4,%r4                 # compat_size_t
1484         lgfr    %r5,%r5                 # int
1485         jg      compat_sys_signalfd4
1487 ENTRY(sys_eventfd2_wrapper)
1488         llgfr   %r2,%r2                 # unsigned int
1489         lgfr    %r3,%r3                 # int
1490         jg      sys_eventfd2
1492 ENTRY(sys_inotify_init1_wrapper)
1493         lgfr    %r2,%r2                 # int
1494         jg      sys_inotify_init1
1496 ENTRY(sys_pipe2_wrapper)
1497         llgtr   %r2,%r2                 # u32 *
1498         lgfr    %r3,%r3                 # int
1499         jg      sys_pipe2               # branch to system call
1501 ENTRY(sys_dup3_wrapper)
1502         llgfr   %r2,%r2                 # unsigned int
1503         llgfr   %r3,%r3                 # unsigned int
1504         lgfr    %r4,%r4                 # int
1505         jg      sys_dup3                # branch to system call
1507 ENTRY(sys_epoll_create1_wrapper)
1508         lgfr    %r2,%r2                 # int
1509         jg      sys_epoll_create1       # branch to system call
1511 ENTRY(sys32_readahead_wrapper)
1512         lgfr    %r2,%r2                 # int
1513         llgfr   %r3,%r3                 # u32
1514         llgfr   %r4,%r4                 # u32
1515         lgfr    %r5,%r5                 # s32
1516         jg      sys32_readahead         # branch to system call
1518 ENTRY(sys32_sendfile64_wrapper)
1519         lgfr    %r2,%r2                 # int
1520         lgfr    %r3,%r3                 # int
1521         llgtr   %r4,%r4                 # compat_loff_t *
1522         lgfr    %r5,%r5                 # s32
1523         jg      sys32_sendfile64        # branch to system call
1525 ENTRY(sys_tkill_wrapper)
1526         lgfr    %r2,%r2                 # pid_t
1527         lgfr    %r3,%r3                 # int
1528         jg      sys_tkill               # branch to system call
1530 ENTRY(sys_tgkill_wrapper)
1531         lgfr    %r2,%r2                 # pid_t
1532         lgfr    %r3,%r3                 # pid_t
1533         lgfr    %r4,%r4                 # int
1534         jg      sys_tgkill              # branch to system call
1536 ENTRY(compat_sys_keyctl_wrapper)
1537         llgfr   %r2,%r2                 # u32
1538         llgfr   %r3,%r3                 # u32
1539         llgfr   %r4,%r4                 # u32
1540         llgfr   %r5,%r5                 # u32
1541         llgfr   %r6,%r6                 # u32
1542         jg      compat_sys_keyctl       # branch to system call
1544 ENTRY(compat_sys_preadv_wrapper)
1545         llgfr   %r2,%r2                 # unsigned long
1546         llgtr   %r3,%r3                 # compat_iovec *
1547         llgfr   %r4,%r4                 # unsigned long
1548         llgfr   %r5,%r5                 # u32
1549         llgfr   %r6,%r6                 # u32
1550         jg      compat_sys_preadv       # branch to system call
1552 ENTRY(compat_sys_pwritev_wrapper)
1553         llgfr   %r2,%r2                 # unsigned long
1554         llgtr   %r3,%r3                 # compat_iovec *
1555         llgfr   %r4,%r4                 # unsigned long
1556         llgfr   %r5,%r5                 # u32
1557         llgfr   %r6,%r6                 # u32
1558         jg      compat_sys_pwritev      # branch to system call
1560 ENTRY(compat_sys_rt_tgsigqueueinfo_wrapper)
1561         lgfr    %r2,%r2                 # compat_pid_t
1562         lgfr    %r3,%r3                 # compat_pid_t
1563         lgfr    %r4,%r4                 # int
1564         llgtr   %r5,%r5                 # struct compat_siginfo *
1565         jg      compat_sys_rt_tgsigqueueinfo_wrapper # branch to system call
1567 ENTRY(sys_perf_event_open_wrapper)
1568         llgtr   %r2,%r2                 # const struct perf_event_attr *
1569         lgfr    %r3,%r3                 # pid_t
1570         lgfr    %r4,%r4                 # int
1571         lgfr    %r5,%r5                 # int
1572         llgfr   %r6,%r6                 # unsigned long
1573         jg      sys_perf_event_open     # branch to system call
1575 ENTRY(sys_clone_wrapper)
1576         llgfr   %r2,%r2                 # unsigned long
1577         llgfr   %r3,%r3                 # unsigned long
1578         llgtr   %r4,%r4                 # int *
1579         llgtr   %r5,%r5                 # int *
1580         jg      sys_clone               # branch to system call
1582 ENTRY(sys32_execve_wrapper)
1583         llgtr   %r2,%r2                 # char *
1584         llgtr   %r3,%r3                 # compat_uptr_t *
1585         llgtr   %r4,%r4                 # compat_uptr_t *
1586         jg      sys32_execve            # branch to system call
1588 ENTRY(sys_fanotify_init_wrapper)
1589         llgfr   %r2,%r2                 # unsigned int
1590         llgfr   %r3,%r3                 # unsigned int
1591         jg      sys_fanotify_init       # branch to system call
1593 ENTRY(sys_fanotify_mark_wrapper)
1594         lgfr    %r2,%r2                 # int
1595         llgfr   %r3,%r3                 # unsigned int
1596         sllg    %r4,%r4,32              # get high word of 64bit mask
1597         lr      %r4,%r5                 # get low word of 64bit mask
1598         llgfr   %r5,%r6                 # unsigned int
1599         llgt    %r6,164(%r15)           # char *
1600         jg      sys_fanotify_mark       # branch to system call
1602 ENTRY(sys_prlimit64_wrapper)
1603         lgfr    %r2,%r2                 # pid_t
1604         llgfr   %r3,%r3                 # unsigned int
1605         llgtr   %r4,%r4                 # const struct rlimit64 __user *
1606         llgtr   %r5,%r5                 # struct rlimit64 __user *
1607         jg      sys_prlimit64           # branch to system call
1609 ENTRY(sys_name_to_handle_at_wrapper)
1610         lgfr    %r2,%r2                 # int
1611         llgtr   %r3,%r3                 # const char __user *
1612         llgtr   %r4,%r4                 # struct file_handle __user *
1613         llgtr   %r5,%r5                 # int __user *
1614         lgfr    %r6,%r6                 # int
1615         jg      sys_name_to_handle_at
1617 ENTRY(compat_sys_open_by_handle_at_wrapper)
1618         lgfr    %r2,%r2                 # int
1619         llgtr   %r3,%r3                 # struct file_handle __user *
1620         lgfr    %r4,%r4                 # int
1621         jg      compat_sys_open_by_handle_at
1623 ENTRY(compat_sys_clock_adjtime_wrapper)
1624         lgfr    %r2,%r2                 # clockid_t (int)
1625         llgtr   %r3,%r3                 # struct compat_timex __user *
1626         jg      compat_sys_clock_adjtime
1628 ENTRY(sys_syncfs_wrapper)
1629         lgfr    %r2,%r2                 # int
1630         jg      sys_syncfs
1632         .globl  sys_setns_wrapper
1633 sys_setns_wrapper:
1634         lgfr    %r2,%r2                 # int
1635         lgfr    %r3,%r3                 # int
1636         jg      sys_setns