Merge tag 'v3.1-rc9' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
[linux-2.6/linux-mips.git] / arch / s390 / kernel / compat_wrapper.S
blob7526db6bf501f8a5394f56dfc0cadfc343ef82e6
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(sys32_setresgid16_wrapper)
669         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
670         llgfr   %r3,%r3                 # __kernel_old_gid_emu31_t
671         llgfr   %r4,%r4                 # __kernel_old_gid_emu31_t
672         jg      sys32_setresgid16       # branch to system call
674 ENTRY(sys32_getresgid16_wrapper)
675         llgtr   %r2,%r2                 # __kernel_old_gid_emu31_t *
676         llgtr   %r3,%r3                 # __kernel_old_gid_emu31_t *
677         llgtr   %r4,%r4                 # __kernel_old_gid_emu31_t *
678         jg      sys32_getresgid16       # branch to system call
680 ENTRY(sys32_prctl_wrapper)
681         lgfr    %r2,%r2                 # int
682         llgfr   %r3,%r3                 # unsigned long
683         llgfr   %r4,%r4                 # unsigned long
684         llgfr   %r5,%r5                 # unsigned long
685         llgfr   %r6,%r6                 # unsigned long
686         jg      sys_prctl               # branch to system call
688 #sys32_rt_sigreturn_wrapper             # done in rt_sigreturn_glue
690 ENTRY(sys32_rt_sigaction_wrapper)
691         lgfr    %r2,%r2                 # int
692         llgtr   %r3,%r3                 # const struct sigaction_emu31 *
693         llgtr   %r4,%r4                 # const struct sigaction_emu31 *
694         llgfr   %r5,%r5                 # size_t
695         jg      sys32_rt_sigaction      # branch to system call
697 ENTRY(sys32_rt_sigprocmask_wrapper)
698         lgfr    %r2,%r2                 # int
699         llgtr   %r3,%r3                 # old_sigset_emu31 *
700         llgtr   %r4,%r4                 # old_sigset_emu31 *
701         llgfr   %r5,%r5                 # size_t
702         jg      sys32_rt_sigprocmask    # branch to system call
704 ENTRY(sys32_rt_sigpending_wrapper)
705         llgtr   %r2,%r2                 # sigset_emu31 *
706         llgfr   %r3,%r3                 # size_t
707         jg      sys32_rt_sigpending     # branch to system call
709 ENTRY(compat_sys_rt_sigtimedwait_wrapper)
710         llgtr   %r2,%r2                 # const sigset_emu31_t *
711         llgtr   %r3,%r3                 # siginfo_emu31_t *
712         llgtr   %r4,%r4                 # const struct compat_timespec *
713         llgfr   %r5,%r5                 # size_t
714         jg      compat_sys_rt_sigtimedwait      # branch to system call
716 ENTRY(sys32_rt_sigqueueinfo_wrapper)
717         lgfr    %r2,%r2                 # int
718         lgfr    %r3,%r3                 # int
719         llgtr   %r4,%r4                 # siginfo_emu31_t *
720         jg      sys32_rt_sigqueueinfo   # branch to system call
722 ENTRY(compat_sys_rt_sigsuspend_wrapper)
723         llgtr   %r2,%r2                 # compat_sigset_t *
724         llgfr   %r3,%r3                 # compat_size_t
725         jg      compat_sys_rt_sigsuspend
727 ENTRY(sys32_pread64_wrapper)
728         llgfr   %r2,%r2                 # unsigned int
729         llgtr   %r3,%r3                 # char *
730         llgfr   %r4,%r4                 # size_t
731         llgfr   %r5,%r5                 # u32
732         llgfr   %r6,%r6                 # u32
733         jg      sys32_pread64           # branch to system call
735 ENTRY(sys32_pwrite64_wrapper)
736         llgfr   %r2,%r2                 # unsigned int
737         llgtr   %r3,%r3                 # const char *
738         llgfr   %r4,%r4                 # size_t
739         llgfr   %r5,%r5                 # u32
740         llgfr   %r6,%r6                 # u32
741         jg      sys32_pwrite64          # branch to system call
743 ENTRY(sys32_chown16_wrapper)
744         llgtr   %r2,%r2                 # const char *
745         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
746         llgfr   %r4,%r4                 # __kernel_old_gid_emu31_t
747         jg      sys32_chown16           # branch to system call
749 ENTRY(sys32_getcwd_wrapper)
750         llgtr   %r2,%r2                 # char *
751         llgfr   %r3,%r3                 # unsigned long
752         jg      sys_getcwd              # branch to system call
754 ENTRY(sys32_capget_wrapper)
755         llgtr   %r2,%r2                 # cap_user_header_t
756         llgtr   %r3,%r3                 # cap_user_data_t
757         jg      sys_capget              # branch to system call
759 ENTRY(sys32_capset_wrapper)
760         llgtr   %r2,%r2                 # cap_user_header_t
761         llgtr   %r3,%r3                 # const cap_user_data_t
762         jg      sys_capset              # branch to system call
764 ENTRY(sys32_sigaltstack_wrapper)
765         llgtr   %r2,%r2                 # const stack_emu31_t *
766         llgtr   %r3,%r3                 # stack_emu31_t *
767         jg      sys32_sigaltstack
769 ENTRY(sys32_sendfile_wrapper)
770         lgfr    %r2,%r2                 # int
771         lgfr    %r3,%r3                 # int
772         llgtr   %r4,%r4                 # __kernel_off_emu31_t *
773         llgfr   %r5,%r5                 # size_t
774         jg      sys32_sendfile          # branch to system call
776 #sys32_vfork_wrapper                    # done in vfork_glue
778 ENTRY(sys32_truncate64_wrapper)
779         llgtr   %r2,%r2                 # const char *
780         llgfr   %r3,%r3                 # unsigned long
781         llgfr   %r4,%r4                 # unsigned long
782         jg      sys32_truncate64        # branch to system call
784 ENTRY(sys32_ftruncate64_wrapper)
785         llgfr   %r2,%r2                 # unsigned int
786         llgfr   %r3,%r3                 # unsigned long
787         llgfr   %r4,%r4                 # unsigned long
788         jg      sys32_ftruncate64       # branch to system call
790 ENTRY(sys32_lchown_wrapper)
791         llgtr   %r2,%r2                 # const char *
792         llgfr   %r3,%r3                 # uid_t
793         llgfr   %r4,%r4                 # gid_t
794         jg      sys_lchown              # branch to system call
796 #sys32_getuid_wrapper                   # void
797 #sys32_getgid_wrapper                   # void
798 #sys32_geteuid_wrapper                  # void
799 #sys32_getegid_wrapper                  # void
801 ENTRY(sys32_setreuid_wrapper)
802         llgfr   %r2,%r2                 # uid_t
803         llgfr   %r3,%r3                 # uid_t
804         jg      sys_setreuid            # branch to system call
806 ENTRY(sys32_setregid_wrapper)
807         llgfr   %r2,%r2                 # gid_t
808         llgfr   %r3,%r3                 # gid_t
809         jg      sys_setregid            # branch to system call
811 ENTRY(sys32_getgroups_wrapper)
812         lgfr    %r2,%r2                 # int
813         llgtr   %r3,%r3                 # gid_t *
814         jg      sys_getgroups           # branch to system call
816 ENTRY(sys32_setgroups_wrapper)
817         lgfr    %r2,%r2                 # int
818         llgtr   %r3,%r3                 # gid_t *
819         jg      sys_setgroups           # branch to system call
821 ENTRY(sys32_fchown_wrapper)
822         llgfr   %r2,%r2                 # unsigned int
823         llgfr   %r3,%r3                 # uid_t
824         llgfr   %r4,%r4                 # gid_t
825         jg      sys_fchown              # branch to system call
827 ENTRY(sys32_setresuid_wrapper)
828         llgfr   %r2,%r2                 # uid_t
829         llgfr   %r3,%r3                 # uid_t
830         llgfr   %r4,%r4                 # uid_t
831         jg      sys_setresuid           # branch to system call
833 ENTRY(sys32_getresuid_wrapper)
834         llgtr   %r2,%r2                 # uid_t *
835         llgtr   %r3,%r3                 # uid_t *
836         llgtr   %r4,%r4                 # uid_t *
837         jg      sys_getresuid           # branch to system call
839 ENTRY(sys32_setresgid_wrapper)
840         llgfr   %r2,%r2                 # gid_t
841         llgfr   %r3,%r3                 # gid_t
842         llgfr   %r4,%r4                 # gid_t
843         jg      sys_setresgid           # branch to system call
845 ENTRY(sys32_getresgid_wrapper)
846         llgtr   %r2,%r2                 # gid_t *
847         llgtr   %r3,%r3                 # gid_t *
848         llgtr   %r4,%r4                 # gid_t *
849         jg      sys_getresgid           # branch to system call
851 ENTRY(sys32_chown_wrapper)
852         llgtr   %r2,%r2                 # const char *
853         llgfr   %r3,%r3                 # uid_t
854         llgfr   %r4,%r4                 # gid_t
855         jg      sys_chown               # branch to system call
857 ENTRY(sys32_setuid_wrapper)
858         llgfr   %r2,%r2                 # uid_t
859         jg      sys_setuid              # branch to system call
861 ENTRY(sys32_setgid_wrapper)
862         llgfr   %r2,%r2                 # gid_t
863         jg      sys_setgid              # branch to system call
865 ENTRY(sys32_setfsuid_wrapper)
866         llgfr   %r2,%r2                 # uid_t
867         jg      sys_setfsuid            # branch to system call
869 ENTRY(sys32_setfsgid_wrapper)
870         llgfr   %r2,%r2                 # gid_t
871         jg      sys_setfsgid            # branch to system call
873 ENTRY(sys32_pivot_root_wrapper)
874         llgtr   %r2,%r2                 # const char *
875         llgtr   %r3,%r3                 # const char *
876         jg      sys_pivot_root          # branch to system call
878 ENTRY(sys32_mincore_wrapper)
879         llgfr   %r2,%r2                 # unsigned long
880         llgfr   %r3,%r3                 # size_t
881         llgtr   %r4,%r4                 # unsigned char *
882         jg      sys_mincore             # branch to system call
884 ENTRY(sys32_madvise_wrapper)
885         llgfr   %r2,%r2                 # unsigned long
886         llgfr   %r3,%r3                 # size_t
887         lgfr    %r4,%r4                 # int
888         jg      sys_madvise             # branch to system call
890 ENTRY(sys32_getdents64_wrapper)
891         llgfr   %r2,%r2                 # unsigned int
892         llgtr   %r3,%r3                 # void *
893         llgfr   %r4,%r4                 # unsigned int
894         jg      sys_getdents64          # branch to system call
896 ENTRY(compat_sys_fcntl64_wrapper)
897         llgfr   %r2,%r2                 # unsigned int
898         llgfr   %r3,%r3                 # unsigned int
899         llgfr   %r4,%r4                 # unsigned long
900         jg      compat_sys_fcntl64      # branch to system call
902 ENTRY(sys32_stat64_wrapper)
903         llgtr   %r2,%r2                 # char *
904         llgtr   %r3,%r3                 # struct stat64 *
905         jg      sys32_stat64            # branch to system call
907 ENTRY(sys32_lstat64_wrapper)
908         llgtr   %r2,%r2                 # char *
909         llgtr   %r3,%r3                 # struct stat64 *
910         jg      sys32_lstat64           # branch to system call
912 ENTRY(sys32_stime_wrapper)
913         llgtr   %r2,%r2                 # long *
914         jg      compat_sys_stime        # branch to system call
916 ENTRY(sys32_sysctl_wrapper)
917         llgtr   %r2,%r2                 # struct compat_sysctl_args *
918         jg      compat_sys_sysctl
920 ENTRY(sys32_fstat64_wrapper)
921         llgfr   %r2,%r2                 # unsigned long
922         llgtr   %r3,%r3                 # struct stat64 *
923         jg      sys32_fstat64           # branch to system call
925 ENTRY(compat_sys_futex_wrapper)
926         llgtr   %r2,%r2                 # u32 *
927         lgfr    %r3,%r3                 # int
928         lgfr    %r4,%r4                 # int
929         llgtr   %r5,%r5                 # struct compat_timespec *
930         llgtr   %r6,%r6                 # u32 *
931         lgf     %r0,164(%r15)           # int
932         stg     %r0,160(%r15)
933         jg      compat_sys_futex        # branch to system call
935 ENTRY(sys32_setxattr_wrapper)
936         llgtr   %r2,%r2                 # char *
937         llgtr   %r3,%r3                 # char *
938         llgtr   %r4,%r4                 # void *
939         llgfr   %r5,%r5                 # size_t
940         lgfr    %r6,%r6                 # int
941         jg      sys_setxattr
943 ENTRY(sys32_lsetxattr_wrapper)
944         llgtr   %r2,%r2                 # char *
945         llgtr   %r3,%r3                 # char *
946         llgtr   %r4,%r4                 # void *
947         llgfr   %r5,%r5                 # size_t
948         lgfr    %r6,%r6                 # int
949         jg      sys_lsetxattr
951 ENTRY(sys32_fsetxattr_wrapper)
952         lgfr    %r2,%r2                 # int
953         llgtr   %r3,%r3                 # char *
954         llgtr   %r4,%r4                 # void *
955         llgfr   %r5,%r5                 # size_t
956         lgfr    %r6,%r6                 # int
957         jg      sys_fsetxattr
959 ENTRY(sys32_getxattr_wrapper)
960         llgtr   %r2,%r2                 # char *
961         llgtr   %r3,%r3                 # char *
962         llgtr   %r4,%r4                 # void *
963         llgfr   %r5,%r5                 # size_t
964         jg      sys_getxattr
966 ENTRY(sys32_lgetxattr_wrapper)
967         llgtr   %r2,%r2                 # char *
968         llgtr   %r3,%r3                 # char *
969         llgtr   %r4,%r4                 # void *
970         llgfr   %r5,%r5                 # size_t
971         jg      sys_lgetxattr
973 ENTRY(sys32_fgetxattr_wrapper)
974         lgfr    %r2,%r2                 # int
975         llgtr   %r3,%r3                 # char *
976         llgtr   %r4,%r4                 # void *
977         llgfr   %r5,%r5                 # size_t
978         jg      sys_fgetxattr
980 ENTRY(sys32_listxattr_wrapper)
981         llgtr   %r2,%r2                 # char *
982         llgtr   %r3,%r3                 # char *
983         llgfr   %r4,%r4                 # size_t
984         jg      sys_listxattr
986 ENTRY(sys32_llistxattr_wrapper)
987         llgtr   %r2,%r2                 # char *
988         llgtr   %r3,%r3                 # char *
989         llgfr   %r4,%r4                 # size_t
990         jg      sys_llistxattr
992 ENTRY(sys32_flistxattr_wrapper)
993         lgfr    %r2,%r2                 # int
994         llgtr   %r3,%r3                 # char *
995         llgfr   %r4,%r4                 # size_t
996         jg      sys_flistxattr
998 ENTRY(sys32_removexattr_wrapper)
999         llgtr   %r2,%r2                 # char *
1000         llgtr   %r3,%r3                 # char *
1001         jg      sys_removexattr
1003 ENTRY(sys32_lremovexattr_wrapper)
1004         llgtr   %r2,%r2                 # char *
1005         llgtr   %r3,%r3                 # char *
1006         jg      sys_lremovexattr
1008 ENTRY(sys32_fremovexattr_wrapper)
1009         lgfr    %r2,%r2                 # int
1010         llgtr   %r3,%r3                 # char *
1011         jg      sys_fremovexattr
1013 ENTRY(sys32_sched_setaffinity_wrapper)
1014         lgfr    %r2,%r2                 # int
1015         llgfr   %r3,%r3                 # unsigned int
1016         llgtr   %r4,%r4                 # unsigned long *
1017         jg      compat_sys_sched_setaffinity
1019 ENTRY(sys32_sched_getaffinity_wrapper)
1020         lgfr    %r2,%r2                 # int
1021         llgfr   %r3,%r3                 # unsigned int
1022         llgtr   %r4,%r4                 # unsigned long *
1023         jg      compat_sys_sched_getaffinity
1025 ENTRY(sys32_exit_group_wrapper)
1026         lgfr    %r2,%r2                 # int
1027         jg      sys_exit_group          # branch to system call
1029 ENTRY(sys32_set_tid_address_wrapper)
1030         llgtr   %r2,%r2                 # int *
1031         jg      sys_set_tid_address     # branch to system call
1033 ENTRY(sys_epoll_create_wrapper)
1034         lgfr    %r2,%r2                 # int
1035         jg      sys_epoll_create        # branch to system call
1037 ENTRY(sys_epoll_ctl_wrapper)
1038         lgfr    %r2,%r2                 # int
1039         lgfr    %r3,%r3                 # int
1040         lgfr    %r4,%r4                 # int
1041         llgtr   %r5,%r5                 # struct epoll_event *
1042         jg      sys_epoll_ctl           # branch to system call
1044 ENTRY(sys_epoll_wait_wrapper)
1045         lgfr    %r2,%r2                 # int
1046         llgtr   %r3,%r3                 # struct epoll_event *
1047         lgfr    %r4,%r4                 # int
1048         lgfr    %r5,%r5                 # int
1049         jg      sys_epoll_wait          # branch to system call
1051 ENTRY(sys32_lookup_dcookie_wrapper)
1052         sllg    %r2,%r2,32              # get high word of 64bit dcookie
1053         or      %r2,%r3                 # get low word of 64bit dcookie
1054         llgtr   %r3,%r4                 # char *
1055         llgfr   %r4,%r5                 # size_t
1056         jg      sys_lookup_dcookie
1058 ENTRY(sys32_fadvise64_wrapper)
1059         lgfr    %r2,%r2                 # int
1060         sllg    %r3,%r3,32              # get high word of 64bit loff_t
1061         or      %r3,%r4                 # get low word of 64bit loff_t
1062         llgfr   %r4,%r5                 # size_t (unsigned long)
1063         lgfr    %r5,%r6                 # int
1064         jg      sys32_fadvise64
1066 ENTRY(sys32_fadvise64_64_wrapper)
1067         llgtr   %r2,%r2                 # struct fadvise64_64_args *
1068         jg      sys32_fadvise64_64
1070 ENTRY(sys32_clock_settime_wrapper)
1071         lgfr    %r2,%r2                 # clockid_t (int)
1072         llgtr   %r3,%r3                 # struct compat_timespec *
1073         jg      compat_sys_clock_settime
1075 ENTRY(sys32_clock_gettime_wrapper)
1076         lgfr    %r2,%r2                 # clockid_t (int)
1077         llgtr   %r3,%r3                 # struct compat_timespec *
1078         jg      compat_sys_clock_gettime
1080 ENTRY(sys32_clock_getres_wrapper)
1081         lgfr    %r2,%r2                 # clockid_t (int)
1082         llgtr   %r3,%r3                 # struct compat_timespec *
1083         jg      compat_sys_clock_getres
1085 ENTRY(sys32_clock_nanosleep_wrapper)
1086         lgfr    %r2,%r2                 # clockid_t (int)
1087         lgfr    %r3,%r3                 # int
1088         llgtr   %r4,%r4                 # struct compat_timespec *
1089         llgtr   %r5,%r5                 # struct compat_timespec *
1090         jg      compat_sys_clock_nanosleep
1092 ENTRY(sys32_timer_create_wrapper)
1093         lgfr    %r2,%r2                 # timer_t (int)
1094         llgtr   %r3,%r3                 # struct compat_sigevent *
1095         llgtr   %r4,%r4                 # timer_t *
1096         jg      compat_sys_timer_create
1098 ENTRY(sys32_timer_settime_wrapper)
1099         lgfr    %r2,%r2                 # timer_t (int)
1100         lgfr    %r3,%r3                 # int
1101         llgtr   %r4,%r4                 # struct compat_itimerspec *
1102         llgtr   %r5,%r5                 # struct compat_itimerspec *
1103         jg      compat_sys_timer_settime
1105 ENTRY(sys32_timer_gettime_wrapper)
1106         lgfr    %r2,%r2                 # timer_t (int)
1107         llgtr   %r3,%r3                 # struct compat_itimerspec *
1108         jg      compat_sys_timer_gettime
1110 ENTRY(sys32_timer_getoverrun_wrapper)
1111         lgfr    %r2,%r2                 # timer_t (int)
1112         jg      sys_timer_getoverrun
1114 ENTRY(sys32_timer_delete_wrapper)
1115         lgfr    %r2,%r2                 # timer_t (int)
1116         jg      sys_timer_delete
1118 ENTRY(sys32_io_setup_wrapper)
1119         llgfr   %r2,%r2                 # unsigned int
1120         llgtr   %r3,%r3                 # u32 *
1121         jg      compat_sys_io_setup
1123 ENTRY(sys32_io_destroy_wrapper)
1124         llgfr   %r2,%r2                 # (aio_context_t) u32
1125         jg      sys_io_destroy
1127 ENTRY(sys32_io_getevents_wrapper)
1128         llgfr   %r2,%r2                 # (aio_context_t) u32
1129         lgfr    %r3,%r3                 # long
1130         lgfr    %r4,%r4                 # long
1131         llgtr   %r5,%r5                 # struct io_event *
1132         llgtr   %r6,%r6                 # struct compat_timespec *
1133         jg      compat_sys_io_getevents
1135 ENTRY(sys32_io_submit_wrapper)
1136         llgfr   %r2,%r2                 # (aio_context_t) u32
1137         lgfr    %r3,%r3                 # long
1138         llgtr   %r4,%r4                 # struct iocb **
1139         jg      compat_sys_io_submit
1141 ENTRY(sys32_io_cancel_wrapper)
1142         llgfr   %r2,%r2                 # (aio_context_t) u32
1143         llgtr   %r3,%r3                 # struct iocb *
1144         llgtr   %r4,%r4                 # struct io_event *
1145         jg      sys_io_cancel
1147 ENTRY(compat_sys_statfs64_wrapper)
1148         llgtr   %r2,%r2                 # const char *
1149         llgfr   %r3,%r3                 # compat_size_t
1150         llgtr   %r4,%r4                 # struct compat_statfs64 *
1151         jg      compat_sys_statfs64
1153 ENTRY(compat_sys_fstatfs64_wrapper)
1154         llgfr   %r2,%r2                 # unsigned int fd
1155         llgfr   %r3,%r3                 # compat_size_t
1156         llgtr   %r4,%r4                 # struct compat_statfs64 *
1157         jg      compat_sys_fstatfs64
1159 ENTRY(compat_sys_mq_open_wrapper)
1160         llgtr   %r2,%r2                 # const char *
1161         lgfr    %r3,%r3                 # int
1162         llgfr   %r4,%r4                 # mode_t
1163         llgtr   %r5,%r5                 # struct compat_mq_attr *
1164         jg      compat_sys_mq_open
1166 ENTRY(sys32_mq_unlink_wrapper)
1167         llgtr   %r2,%r2                 # const char *
1168         jg      sys_mq_unlink
1170 ENTRY(compat_sys_mq_timedsend_wrapper)
1171         lgfr    %r2,%r2                 # mqd_t
1172         llgtr   %r3,%r3                 # const char *
1173         llgfr   %r4,%r4                 # size_t
1174         llgfr   %r5,%r5                 # unsigned int
1175         llgtr   %r6,%r6                 # const struct compat_timespec *
1176         jg      compat_sys_mq_timedsend
1178 ENTRY(compat_sys_mq_timedreceive_wrapper)
1179         lgfr    %r2,%r2                 # mqd_t
1180         llgtr   %r3,%r3                 # char *
1181         llgfr   %r4,%r4                 # size_t
1182         llgtr   %r5,%r5                 # unsigned int *
1183         llgtr   %r6,%r6                 # const struct compat_timespec *
1184         jg      compat_sys_mq_timedreceive
1186 ENTRY(compat_sys_mq_notify_wrapper)
1187         lgfr    %r2,%r2                 # mqd_t
1188         llgtr   %r3,%r3                 # struct compat_sigevent *
1189         jg      compat_sys_mq_notify
1191 ENTRY(compat_sys_mq_getsetattr_wrapper)
1192         lgfr    %r2,%r2                 # mqd_t
1193         llgtr   %r3,%r3                 # struct compat_mq_attr *
1194         llgtr   %r4,%r4                 # struct compat_mq_attr *
1195         jg      compat_sys_mq_getsetattr
1197 ENTRY(compat_sys_add_key_wrapper)
1198         llgtr   %r2,%r2                 # const char *
1199         llgtr   %r3,%r3                 # const char *
1200         llgtr   %r4,%r4                 # const void *
1201         llgfr   %r5,%r5                 # size_t
1202         llgfr   %r6,%r6                 # (key_serial_t) u32
1203         jg      sys_add_key
1205 ENTRY(compat_sys_request_key_wrapper)
1206         llgtr   %r2,%r2                 # const char *
1207         llgtr   %r3,%r3                 # const char *
1208         llgtr   %r4,%r4                 # const void *
1209         llgfr   %r5,%r5                 # (key_serial_t) u32
1210         jg      sys_request_key
1212 ENTRY(sys32_remap_file_pages_wrapper)
1213         llgfr   %r2,%r2                 # unsigned long
1214         llgfr   %r3,%r3                 # unsigned long
1215         llgfr   %r4,%r4                 # unsigned long
1216         llgfr   %r5,%r5                 # unsigned long
1217         llgfr   %r6,%r6                 # unsigned long
1218         jg      sys_remap_file_pages
1220 ENTRY(compat_sys_waitid_wrapper)
1221         lgfr    %r2,%r2                 # int
1222         lgfr    %r3,%r3                 # pid_t
1223         llgtr   %r4,%r4                 # siginfo_emu31_t *
1224         lgfr    %r5,%r5                 # int
1225         llgtr   %r6,%r6                 # struct rusage_emu31 *
1226         jg      compat_sys_waitid
1228 ENTRY(compat_sys_kexec_load_wrapper)
1229         llgfr   %r2,%r2                 # unsigned long
1230         llgfr   %r3,%r3                 # unsigned long
1231         llgtr   %r4,%r4                 # struct kexec_segment *
1232         llgfr   %r5,%r5                 # unsigned long
1233         jg      compat_sys_kexec_load
1235 ENTRY(sys_ioprio_set_wrapper)
1236         lgfr    %r2,%r2                 # int
1237         lgfr    %r3,%r3                 # int
1238         lgfr    %r4,%r4                 # int
1239         jg      sys_ioprio_set
1241 ENTRY(sys_ioprio_get_wrapper)
1242         lgfr    %r2,%r2                 # int
1243         lgfr    %r3,%r3                 # int
1244         jg      sys_ioprio_get
1246 ENTRY(sys_inotify_add_watch_wrapper)
1247         lgfr    %r2,%r2                 # int
1248         llgtr   %r3,%r3                 # const char *
1249         llgfr   %r4,%r4                 # u32
1250         jg      sys_inotify_add_watch
1252 ENTRY(sys_inotify_rm_watch_wrapper)
1253         lgfr    %r2,%r2                 # int
1254         llgfr   %r3,%r3                 # u32
1255         jg      sys_inotify_rm_watch
1257 ENTRY(compat_sys_openat_wrapper)
1258         llgfr   %r2,%r2                 # unsigned int
1259         llgtr   %r3,%r3                 # const char *
1260         lgfr    %r4,%r4                 # int
1261         lgfr    %r5,%r5                 # int
1262         jg      compat_sys_openat
1264 ENTRY(sys_mkdirat_wrapper)
1265         lgfr    %r2,%r2                 # int
1266         llgtr   %r3,%r3                 # const char *
1267         lgfr    %r4,%r4                 # int
1268         jg      sys_mkdirat
1270 ENTRY(sys_mknodat_wrapper)
1271         lgfr    %r2,%r2                 # int
1272         llgtr   %r3,%r3                 # const char *
1273         lgfr    %r4,%r4                 # int
1274         llgfr   %r5,%r5                 # unsigned int
1275         jg      sys_mknodat
1277 ENTRY(sys_fchownat_wrapper)
1278         lgfr    %r2,%r2                 # int
1279         llgtr   %r3,%r3                 # const char *
1280         llgfr   %r4,%r4                 # uid_t
1281         llgfr   %r5,%r5                 # gid_t
1282         lgfr    %r6,%r6                 # int
1283         jg      sys_fchownat
1285 ENTRY(compat_sys_futimesat_wrapper)
1286         llgfr   %r2,%r2                 # unsigned int
1287         llgtr   %r3,%r3                 # char *
1288         llgtr   %r4,%r4                 # struct timeval *
1289         jg      compat_sys_futimesat
1291 ENTRY(sys32_fstatat64_wrapper)
1292         llgfr   %r2,%r2                 # unsigned int
1293         llgtr   %r3,%r3                 # char *
1294         llgtr   %r4,%r4                 # struct stat64 *
1295         lgfr    %r5,%r5                 # int
1296         jg      sys32_fstatat64
1298 ENTRY(sys_unlinkat_wrapper)
1299         lgfr    %r2,%r2                 # int
1300         llgtr   %r3,%r3                 # const char *
1301         lgfr    %r4,%r4                 # int
1302         jg      sys_unlinkat
1304 ENTRY(sys_renameat_wrapper)
1305         lgfr    %r2,%r2                 # int
1306         llgtr   %r3,%r3                 # const char *
1307         lgfr    %r4,%r4                 # int
1308         llgtr   %r5,%r5                 # const char *
1309         jg      sys_renameat
1311 ENTRY(sys_linkat_wrapper)
1312         lgfr    %r2,%r2                 # int
1313         llgtr   %r3,%r3                 # const char *
1314         lgfr    %r4,%r4                 # int
1315         llgtr   %r5,%r5                 # const char *
1316         lgfr    %r6,%r6                 # int
1317         jg      sys_linkat
1319 ENTRY(sys_symlinkat_wrapper)
1320         llgtr   %r2,%r2                 # const char *
1321         lgfr    %r3,%r3                 # int
1322         llgtr   %r4,%r4                 # const char *
1323         jg      sys_symlinkat
1325 ENTRY(sys_readlinkat_wrapper)
1326         lgfr    %r2,%r2                 # int
1327         llgtr   %r3,%r3                 # const char *
1328         llgtr   %r4,%r4                 # char *
1329         lgfr    %r5,%r5                 # int
1330         jg      sys_readlinkat
1332 ENTRY(sys_fchmodat_wrapper)
1333         lgfr    %r2,%r2                 # int
1334         llgtr   %r3,%r3                 # const char *
1335         llgfr   %r4,%r4                 # mode_t
1336         jg      sys_fchmodat
1338 ENTRY(sys_faccessat_wrapper)
1339         lgfr    %r2,%r2                 # int
1340         llgtr   %r3,%r3                 # const char *
1341         lgfr    %r4,%r4                 # int
1342         jg      sys_faccessat
1344 ENTRY(compat_sys_pselect6_wrapper)
1345         lgfr    %r2,%r2                 # int
1346         llgtr   %r3,%r3                 # fd_set *
1347         llgtr   %r4,%r4                 # fd_set *
1348         llgtr   %r5,%r5                 # fd_set *
1349         llgtr   %r6,%r6                 # struct timespec *
1350         llgt    %r0,164(%r15)           # void *
1351         stg     %r0,160(%r15)
1352         jg      compat_sys_pselect6
1354 ENTRY(compat_sys_ppoll_wrapper)
1355         llgtr   %r2,%r2                 # struct pollfd *
1356         llgfr   %r3,%r3                 # unsigned int
1357         llgtr   %r4,%r4                 # struct timespec *
1358         llgtr   %r5,%r5                 # const sigset_t *
1359         llgfr   %r6,%r6                 # size_t
1360         jg      compat_sys_ppoll
1362 ENTRY(sys_unshare_wrapper)
1363         llgfr   %r2,%r2                 # unsigned long
1364         jg      sys_unshare
1366 ENTRY(compat_sys_set_robust_list_wrapper)
1367         llgtr   %r2,%r2                 # struct compat_robust_list_head *
1368         llgfr   %r3,%r3                 # size_t
1369         jg      compat_sys_set_robust_list
1371 ENTRY(compat_sys_get_robust_list_wrapper)
1372         lgfr    %r2,%r2                 # int
1373         llgtr   %r3,%r3                 # compat_uptr_t_t *
1374         llgtr   %r4,%r4                 # compat_size_t *
1375         jg      compat_sys_get_robust_list
1377 ENTRY(sys_splice_wrapper)
1378         lgfr    %r2,%r2                 # int
1379         llgtr   %r3,%r3                 # loff_t *
1380         lgfr    %r4,%r4                 # int
1381         llgtr   %r5,%r5                 # loff_t *
1382         llgfr   %r6,%r6                 # size_t
1383         llgf    %r0,164(%r15)           # unsigned int
1384         stg     %r0,160(%r15)
1385         jg      sys_splice
1387 ENTRY(sys_sync_file_range_wrapper)
1388         lgfr    %r2,%r2                 # int
1389         sllg    %r3,%r3,32              # get high word of 64bit loff_t
1390         or      %r3,%r4                 # get low word of 64bit loff_t
1391         sllg    %r4,%r5,32              # get high word of 64bit loff_t
1392         or      %r4,%r6                 # get low word of 64bit loff_t
1393         llgf    %r5,164(%r15)           # unsigned int
1394         jg      sys_sync_file_range
1396 ENTRY(sys_tee_wrapper)
1397         lgfr    %r2,%r2                 # int
1398         lgfr    %r3,%r3                 # int
1399         llgfr   %r4,%r4                 # size_t
1400         llgfr   %r5,%r5                 # unsigned int
1401         jg      sys_tee
1403 ENTRY(compat_sys_vmsplice_wrapper)
1404         lgfr    %r2,%r2                 # int
1405         llgtr   %r3,%r3                 # compat_iovec *
1406         llgfr   %r4,%r4                 # unsigned int
1407         llgfr   %r5,%r5                 # unsigned int
1408         jg      compat_sys_vmsplice
1410 ENTRY(sys_getcpu_wrapper)
1411         llgtr   %r2,%r2                 # unsigned *
1412         llgtr   %r3,%r3                 # unsigned *
1413         llgtr   %r4,%r4                 # struct getcpu_cache *
1414         jg      sys_getcpu
1416 ENTRY(compat_sys_epoll_pwait_wrapper)
1417         lgfr    %r2,%r2                 # int
1418         llgtr   %r3,%r3                 # struct compat_epoll_event *
1419         lgfr    %r4,%r4                 # int
1420         lgfr    %r5,%r5                 # int
1421         llgtr   %r6,%r6                 # compat_sigset_t *
1422         llgf    %r0,164(%r15)           # compat_size_t
1423         stg     %r0,160(%r15)
1424         jg      compat_sys_epoll_pwait
1426 ENTRY(compat_sys_utimes_wrapper)
1427         llgtr   %r2,%r2                 # char *
1428         llgtr   %r3,%r3                 # struct compat_timeval *
1429         jg      compat_sys_utimes
1431 ENTRY(compat_sys_utimensat_wrapper)
1432         llgfr   %r2,%r2                 # unsigned int
1433         llgtr   %r3,%r3                 # char *
1434         llgtr   %r4,%r4                 # struct compat_timespec *
1435         lgfr    %r5,%r5                 # int
1436         jg      compat_sys_utimensat
1438 ENTRY(compat_sys_signalfd_wrapper)
1439         lgfr    %r2,%r2                 # int
1440         llgtr   %r3,%r3                 # compat_sigset_t *
1441         llgfr   %r4,%r4                 # compat_size_t
1442         jg      compat_sys_signalfd
1444 ENTRY(sys_eventfd_wrapper)
1445         llgfr   %r2,%r2                 # unsigned int
1446         jg      sys_eventfd
1448 ENTRY(sys_fallocate_wrapper)
1449         lgfr    %r2,%r2                 # int
1450         lgfr    %r3,%r3                 # int
1451         sllg    %r4,%r4,32              # get high word of 64bit loff_t
1452         lr      %r4,%r5                 # get low word of 64bit loff_t
1453         sllg    %r5,%r6,32              # get high word of 64bit loff_t
1454         l       %r5,164(%r15)           # get low word of 64bit loff_t
1455         jg      sys_fallocate
1457 ENTRY(sys_timerfd_create_wrapper)
1458         lgfr    %r2,%r2                 # int
1459         lgfr    %r3,%r3                 # int
1460         jg      sys_timerfd_create
1462 ENTRY(compat_sys_timerfd_settime_wrapper)
1463         lgfr    %r2,%r2                 # int
1464         lgfr    %r3,%r3                 # int
1465         llgtr   %r4,%r4                 # struct compat_itimerspec *
1466         llgtr   %r5,%r5                 # struct compat_itimerspec *
1467         jg      compat_sys_timerfd_settime
1469 ENTRY(compat_sys_timerfd_gettime_wrapper)
1470         lgfr    %r2,%r2                 # int
1471         llgtr   %r3,%r3                 # struct compat_itimerspec *
1472         jg      compat_sys_timerfd_gettime
1474 ENTRY(compat_sys_signalfd4_wrapper)
1475         lgfr    %r2,%r2                 # int
1476         llgtr   %r3,%r3                 # compat_sigset_t *
1477         llgfr   %r4,%r4                 # compat_size_t
1478         lgfr    %r5,%r5                 # int
1479         jg      compat_sys_signalfd4
1481 ENTRY(sys_eventfd2_wrapper)
1482         llgfr   %r2,%r2                 # unsigned int
1483         lgfr    %r3,%r3                 # int
1484         jg      sys_eventfd2
1486 ENTRY(sys_inotify_init1_wrapper)
1487         lgfr    %r2,%r2                 # int
1488         jg      sys_inotify_init1
1490 ENTRY(sys_pipe2_wrapper)
1491         llgtr   %r2,%r2                 # u32 *
1492         lgfr    %r3,%r3                 # int
1493         jg      sys_pipe2               # branch to system call
1495 ENTRY(sys_dup3_wrapper)
1496         llgfr   %r2,%r2                 # unsigned int
1497         llgfr   %r3,%r3                 # unsigned int
1498         lgfr    %r4,%r4                 # int
1499         jg      sys_dup3                # branch to system call
1501 ENTRY(sys_epoll_create1_wrapper)
1502         lgfr    %r2,%r2                 # int
1503         jg      sys_epoll_create1       # branch to system call
1505 ENTRY(sys32_readahead_wrapper)
1506         lgfr    %r2,%r2                 # int
1507         llgfr   %r3,%r3                 # u32
1508         llgfr   %r4,%r4                 # u32
1509         lgfr    %r5,%r5                 # s32
1510         jg      sys32_readahead         # branch to system call
1512 ENTRY(sys32_sendfile64_wrapper)
1513         lgfr    %r2,%r2                 # int
1514         lgfr    %r3,%r3                 # int
1515         llgtr   %r4,%r4                 # compat_loff_t *
1516         lgfr    %r5,%r5                 # s32
1517         jg      sys32_sendfile64        # branch to system call
1519 ENTRY(sys_tkill_wrapper)
1520         lgfr    %r2,%r2                 # pid_t
1521         lgfr    %r3,%r3                 # int
1522         jg      sys_tkill               # branch to system call
1524 ENTRY(sys_tgkill_wrapper)
1525         lgfr    %r2,%r2                 # pid_t
1526         lgfr    %r3,%r3                 # pid_t
1527         lgfr    %r4,%r4                 # int
1528         jg      sys_tgkill              # branch to system call
1530 ENTRY(compat_sys_keyctl_wrapper)
1531         llgfr   %r2,%r2                 # u32
1532         llgfr   %r3,%r3                 # u32
1533         llgfr   %r4,%r4                 # u32
1534         llgfr   %r5,%r5                 # u32
1535         llgfr   %r6,%r6                 # u32
1536         jg      compat_sys_keyctl       # branch to system call
1538 ENTRY(compat_sys_preadv_wrapper)
1539         llgfr   %r2,%r2                 # unsigned long
1540         llgtr   %r3,%r3                 # compat_iovec *
1541         llgfr   %r4,%r4                 # unsigned long
1542         llgfr   %r5,%r5                 # u32
1543         llgfr   %r6,%r6                 # u32
1544         jg      compat_sys_preadv       # branch to system call
1546 ENTRY(compat_sys_pwritev_wrapper)
1547         llgfr   %r2,%r2                 # unsigned long
1548         llgtr   %r3,%r3                 # compat_iovec *
1549         llgfr   %r4,%r4                 # unsigned long
1550         llgfr   %r5,%r5                 # u32
1551         llgfr   %r6,%r6                 # u32
1552         jg      compat_sys_pwritev      # branch to system call
1554 ENTRY(compat_sys_rt_tgsigqueueinfo_wrapper)
1555         lgfr    %r2,%r2                 # compat_pid_t
1556         lgfr    %r3,%r3                 # compat_pid_t
1557         lgfr    %r4,%r4                 # int
1558         llgtr   %r5,%r5                 # struct compat_siginfo *
1559         jg      compat_sys_rt_tgsigqueueinfo_wrapper # branch to system call
1561 ENTRY(sys_perf_event_open_wrapper)
1562         llgtr   %r2,%r2                 # const struct perf_event_attr *
1563         lgfr    %r3,%r3                 # pid_t
1564         lgfr    %r4,%r4                 # int
1565         lgfr    %r5,%r5                 # int
1566         llgfr   %r6,%r6                 # unsigned long
1567         jg      sys_perf_event_open     # branch to system call
1569 ENTRY(sys_clone_wrapper)
1570         llgfr   %r2,%r2                 # unsigned long
1571         llgfr   %r3,%r3                 # unsigned long
1572         llgtr   %r4,%r4                 # int *
1573         llgtr   %r5,%r5                 # int *
1574         jg      sys_clone               # branch to system call
1576 ENTRY(sys32_execve_wrapper)
1577         llgtr   %r2,%r2                 # char *
1578         llgtr   %r3,%r3                 # compat_uptr_t *
1579         llgtr   %r4,%r4                 # compat_uptr_t *
1580         jg      sys32_execve            # branch to system call
1582 ENTRY(sys_fanotify_init_wrapper)
1583         llgfr   %r2,%r2                 # unsigned int
1584         llgfr   %r3,%r3                 # unsigned int
1585         jg      sys_fanotify_init       # branch to system call
1587 ENTRY(sys_fanotify_mark_wrapper)
1588         lgfr    %r2,%r2                 # int
1589         llgfr   %r3,%r3                 # unsigned int
1590         sllg    %r4,%r4,32              # get high word of 64bit mask
1591         lr      %r4,%r5                 # get low word of 64bit mask
1592         llgfr   %r5,%r6                 # unsigned int
1593         llgt    %r6,164(%r15)           # char *
1594         jg      sys_fanotify_mark       # branch to system call
1596 ENTRY(sys_prlimit64_wrapper)
1597         lgfr    %r2,%r2                 # pid_t
1598         llgfr   %r3,%r3                 # unsigned int
1599         llgtr   %r4,%r4                 # const struct rlimit64 __user *
1600         llgtr   %r5,%r5                 # struct rlimit64 __user *
1601         jg      sys_prlimit64           # branch to system call
1603 ENTRY(sys_name_to_handle_at_wrapper)
1604         lgfr    %r2,%r2                 # int
1605         llgtr   %r3,%r3                 # const char __user *
1606         llgtr   %r4,%r4                 # struct file_handle __user *
1607         llgtr   %r5,%r5                 # int __user *
1608         lgfr    %r6,%r6                 # int
1609         jg      sys_name_to_handle_at
1611 ENTRY(compat_sys_open_by_handle_at_wrapper)
1612         lgfr    %r2,%r2                 # int
1613         llgtr   %r3,%r3                 # struct file_handle __user *
1614         lgfr    %r4,%r4                 # int
1615         jg      compat_sys_open_by_handle_at
1617 ENTRY(compat_sys_clock_adjtime_wrapper)
1618         lgfr    %r2,%r2                 # clockid_t (int)
1619         llgtr   %r3,%r3                 # struct compat_timex __user *
1620         jg      compat_sys_clock_adjtime
1622 ENTRY(sys_syncfs_wrapper)
1623         lgfr    %r2,%r2                 # int
1624         jg      sys_syncfs
1626         .globl  sys_setns_wrapper
1627 sys_setns_wrapper:
1628         lgfr    %r2,%r2                 # int
1629         lgfr    %r3,%r3                 # int
1630         jg      sys_setns