switch lseek to COMPAT_SYSCALL_DEFINE
[linux-2.6.git] / arch / s390 / kernel / compat_wrapper.S
blob2b1a3a03244f87e9b211bc25e12f09c0a41de0b5
1 /*
2 *    wrapper for 31 bit compatible system calls.
4 *    Copyright IBM Corp. 2000, 2006
5 *    Author(s): Gerhard Tonn (ton@de.ibm.com),
6 *               Thomas Spatzier (tspat@de.ibm.com)
7 */
9 #include <linux/linkage.h>
11 ENTRY(sys32_exit_wrapper)
12         lgfr    %r2,%r2                 # int
13         jg      sys_exit                # branch to sys_exit
15 ENTRY(sys32_read_wrapper)
16         llgfr   %r2,%r2                 # unsigned int
17         llgtr   %r3,%r3                 # char *
18         llgfr   %r4,%r4                 # size_t
19         jg      sys32_read              # branch to sys_read
21 ENTRY(sys32_write_wrapper)
22         llgfr   %r2,%r2                 # unsigned int
23         llgtr   %r3,%r3                 # const char *
24         llgfr   %r4,%r4                 # size_t
25         jg      sys32_write             # branch to system call
27 ENTRY(sys32_close_wrapper)
28         llgfr   %r2,%r2                 # unsigned int
29         jg      sys_close               # branch to system call
31 ENTRY(sys32_creat_wrapper)
32         llgtr   %r2,%r2                 # const char *
33         lgfr    %r3,%r3                 # int
34         jg      sys_creat               # branch to system call
36 ENTRY(sys32_link_wrapper)
37         llgtr   %r2,%r2                 # const char *
38         llgtr   %r3,%r3                 # const char *
39         jg      sys_link                # branch to system call
41 ENTRY(sys32_unlink_wrapper)
42         llgtr   %r2,%r2                 # const char *
43         jg      sys_unlink              # branch to system call
45 ENTRY(sys32_chdir_wrapper)
46         llgtr   %r2,%r2                 # const char *
47         jg      sys_chdir               # branch to system call
49 ENTRY(sys32_time_wrapper)
50         llgtr   %r2,%r2                 # int *
51         jg      compat_sys_time         # branch to system call
53 ENTRY(sys32_mknod_wrapper)
54         llgtr   %r2,%r2                 # const char *
55         lgfr    %r3,%r3                 # int
56         llgfr   %r4,%r4                 # dev
57         jg      sys_mknod               # branch to system call
59 ENTRY(sys32_chmod_wrapper)
60         llgtr   %r2,%r2                 # const char *
61         llgfr   %r3,%r3                 # mode_t
62         jg      sys_chmod               # branch to system call
64 ENTRY(sys32_lchown16_wrapper)
65         llgtr   %r2,%r2                 # const char *
66         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
67         llgfr   %r4,%r4                 # __kernel_old_uid_emu31_t
68         jg      sys32_lchown16          # branch to system call
70 #sys32_getpid_wrapper                           # void
72 ENTRY(sys32_mount_wrapper)
73         llgtr   %r2,%r2                 # char *
74         llgtr   %r3,%r3                 # char *
75         llgtr   %r4,%r4                 # char *
76         llgfr   %r5,%r5                 # unsigned long
77         llgtr   %r6,%r6                 # void *
78         jg      compat_sys_mount        # branch to system call
80 ENTRY(sys32_oldumount_wrapper)
81         llgtr   %r2,%r2                 # char *
82         jg      sys_oldumount           # branch to system call
84 ENTRY(sys32_setuid16_wrapper)
85         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t
86         jg      sys32_setuid16          # branch to system call
88 #sys32_getuid16_wrapper                 # void
90 ENTRY(sys32_ptrace_wrapper)
91         lgfr    %r2,%r2                 # long
92         lgfr    %r3,%r3                 # long
93         llgtr   %r4,%r4                 # long
94         llgfr   %r5,%r5                 # long
95         jg      compat_sys_ptrace       # branch to system call
97 ENTRY(sys32_alarm_wrapper)
98         llgfr   %r2,%r2                 # unsigned int
99         jg      sys_alarm               # branch to system call
101 ENTRY(compat_sys_utime_wrapper)
102         llgtr   %r2,%r2                 # char *
103         llgtr   %r3,%r3                 # struct compat_utimbuf *
104         jg      compat_sys_utime        # branch to system call
106 ENTRY(sys32_access_wrapper)
107         llgtr   %r2,%r2                 # const char *
108         lgfr    %r3,%r3                 # int
109         jg      sys_access              # branch to system call
111 ENTRY(sys32_nice_wrapper)
112         lgfr    %r2,%r2                 # int
113         jg      sys_nice                # branch to system call
115 #sys32_sync_wrapper                     # void
117 ENTRY(sys32_kill_wrapper)
118         lgfr    %r2,%r2                 # int
119         lgfr    %r3,%r3                 # int
120         jg      sys_kill                # branch to system call
122 ENTRY(sys32_rename_wrapper)
123         llgtr   %r2,%r2                 # const char *
124         llgtr   %r3,%r3                 # const char *
125         jg      sys_rename              # branch to system call
127 ENTRY(sys32_mkdir_wrapper)
128         llgtr   %r2,%r2                 # const char *
129         lgfr    %r3,%r3                 # int
130         jg      sys_mkdir               # branch to system call
132 ENTRY(sys32_rmdir_wrapper)
133         llgtr   %r2,%r2                 # const char *
134         jg      sys_rmdir               # branch to system call
136 ENTRY(sys32_dup_wrapper)
137         llgfr   %r2,%r2                 # unsigned int
138         jg      sys_dup                 # branch to system call
140 ENTRY(sys32_pipe_wrapper)
141         llgtr   %r2,%r2                 # u32 *
142         jg      sys_pipe                # branch to system call
144 ENTRY(compat_sys_times_wrapper)
145         llgtr   %r2,%r2                 # struct compat_tms *
146         jg      compat_sys_times        # branch to system call
148 ENTRY(sys32_brk_wrapper)
149         llgtr   %r2,%r2                 # unsigned long
150         jg      sys_brk                 # branch to system call
152 ENTRY(sys32_setgid16_wrapper)
153         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
154         jg      sys32_setgid16          # branch to system call
156 #sys32_getgid16_wrapper                 # void
158 ENTRY(sys32_signal_wrapper)
159         lgfr    %r2,%r2                 # int
160         llgtr   %r3,%r3                 # __sighandler_t
161         jg      sys_signal
163 #sys32_geteuid16_wrapper                # void
165 #sys32_getegid16_wrapper                # void
167 ENTRY(sys32_acct_wrapper)
168         llgtr   %r2,%r2                 # char *
169         jg      sys_acct                # branch to system call
171 ENTRY(sys32_umount_wrapper)
172         llgtr   %r2,%r2                 # char *
173         lgfr    %r3,%r3                 # int
174         jg      sys_umount              # branch to system call
176 ENTRY(compat_sys_ioctl_wrapper)
177         llgfr   %r2,%r2                 # unsigned int
178         llgfr   %r3,%r3                 # unsigned int
179         llgfr   %r4,%r4                 # unsigned int
180         jg      compat_sys_ioctl        # branch to system call
182 ENTRY(compat_sys_fcntl_wrapper)
183         llgfr   %r2,%r2                 # unsigned int
184         llgfr   %r3,%r3                 # unsigned int
185         llgfr   %r4,%r4                 # unsigned long
186         jg      compat_sys_fcntl        # branch to system call
188 ENTRY(sys32_setpgid_wrapper)
189         lgfr    %r2,%r2                 # pid_t
190         lgfr    %r3,%r3                 # pid_t
191         jg      sys_setpgid             # branch to system call
193 ENTRY(sys32_umask_wrapper)
194         lgfr    %r2,%r2                 # int
195         jg      sys_umask               # branch to system call
197 ENTRY(sys32_chroot_wrapper)
198         llgtr   %r2,%r2                 # char *
199         jg      sys_chroot              # branch to system call
201 ENTRY(sys32_ustat_wrapper)
202         llgfr   %r2,%r2                 # dev_t
203         llgtr   %r3,%r3                 # struct ustat *
204         jg      compat_sys_ustat
206 ENTRY(sys32_dup2_wrapper)
207         llgfr   %r2,%r2                 # unsigned int
208         llgfr   %r3,%r3                 # unsigned int
209         jg      sys_dup2                # branch to system call
211 #sys32_getppid_wrapper                  # void
213 #sys32_getpgrp_wrapper                  # void
215 #sys32_setsid_wrapper                   # void
217 ENTRY(sys32_setreuid16_wrapper)
218         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t
219         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
220         jg      sys32_setreuid16        # branch to system call
222 ENTRY(sys32_setregid16_wrapper)
223         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
224         llgfr   %r3,%r3                 # __kernel_old_gid_emu31_t
225         jg      sys32_setregid16        # branch to system call
227 ENTRY(sys_sigsuspend_wrapper)
228         lgfr    %r2,%r2                 # int
229         lgfr    %r3,%r3                 # int
230         llgfr   %r4,%r4                 # old_sigset_t
231         jg      sys_sigsuspend
233 ENTRY(compat_sys_sigpending_wrapper)
234         llgtr   %r2,%r2                 # compat_old_sigset_t *
235         jg      compat_sys_sigpending   # branch to system call
237 ENTRY(sys32_sethostname_wrapper)
238         llgtr   %r2,%r2                 # char *
239         lgfr    %r3,%r3                 # int
240         jg      sys_sethostname         # branch to system call
242 ENTRY(compat_sys_setrlimit_wrapper)
243         llgfr   %r2,%r2                 # unsigned int
244         llgtr   %r3,%r3                 # struct rlimit_emu31 *
245         jg      compat_sys_setrlimit    # branch to system call
247 ENTRY(compat_sys_old_getrlimit_wrapper)
248         llgfr   %r2,%r2                 # unsigned int
249         llgtr   %r3,%r3                 # struct rlimit_emu31 *
250         jg      compat_sys_old_getrlimit # branch to system call
252 ENTRY(compat_sys_getrlimit_wrapper)
253         llgfr   %r2,%r2                 # unsigned int
254         llgtr   %r3,%r3                 # struct rlimit_emu31 *
255         jg      compat_sys_getrlimit    # branch to system call
257 ENTRY(sys32_mmap2_wrapper)
258         llgtr   %r2,%r2                 # struct mmap_arg_struct_emu31 *
259         jg      sys32_mmap2                     # branch to system call
261 ENTRY(compat_sys_getrusage_wrapper)
262         lgfr    %r2,%r2                 # int
263         llgtr   %r3,%r3                 # struct rusage_emu31 *
264         jg      compat_sys_getrusage    # branch to system call
266 ENTRY(compat_sys_gettimeofday_wrapper)
267         llgtr   %r2,%r2                 # struct timeval_emu31 *
268         llgtr   %r3,%r3                 # struct timezone *
269         jg      compat_sys_gettimeofday # branch to system call
271 ENTRY(compat_sys_settimeofday_wrapper)
272         llgtr   %r2,%r2                 # struct timeval_emu31 *
273         llgtr   %r3,%r3                 # struct timezone *
274         jg      compat_sys_settimeofday # branch to system call
276 ENTRY(sys32_getgroups16_wrapper)
277         lgfr    %r2,%r2                 # int
278         llgtr   %r3,%r3                 # __kernel_old_gid_emu31_t *
279         jg      sys32_getgroups16       # branch to system call
281 ENTRY(sys32_setgroups16_wrapper)
282         lgfr    %r2,%r2                 # int
283         llgtr   %r3,%r3                 # __kernel_old_gid_emu31_t *
284         jg      sys32_setgroups16       # branch to system call
286 ENTRY(sys32_symlink_wrapper)
287         llgtr   %r2,%r2                 # const char *
288         llgtr   %r3,%r3                 # const char *
289         jg      sys_symlink             # branch to system call
291 ENTRY(sys32_readlink_wrapper)
292         llgtr   %r2,%r2                 # const char *
293         llgtr   %r3,%r3                 # char *
294         lgfr    %r4,%r4                 # int
295         jg      sys_readlink            # branch to system call
297 ENTRY(sys32_uselib_wrapper)
298         llgtr   %r2,%r2                 # const char *
299         jg      sys_uselib              # branch to system call
301 ENTRY(sys32_swapon_wrapper)
302         llgtr   %r2,%r2                 # const char *
303         lgfr    %r3,%r3                 # int
304         jg      sys_swapon              # branch to system call
306 ENTRY(sys32_reboot_wrapper)
307         lgfr    %r2,%r2                 # int
308         lgfr    %r3,%r3                 # int
309         llgfr   %r4,%r4                 # unsigned int
310         llgtr   %r5,%r5                 # void *
311         jg      sys_reboot              # branch to system call
313 ENTRY(old32_readdir_wrapper)
314         llgfr   %r2,%r2                 # unsigned int
315         llgtr   %r3,%r3                 # void *
316         llgfr   %r4,%r4                 # unsigned int
317         jg      compat_sys_old_readdir  # branch to system call
319 ENTRY(old32_mmap_wrapper)
320         llgtr   %r2,%r2                 # struct mmap_arg_struct_emu31 *
321         jg      old32_mmap              # branch to system call
323 ENTRY(sys32_munmap_wrapper)
324         llgfr   %r2,%r2                 # unsigned long
325         llgfr   %r3,%r3                 # size_t
326         jg      sys_munmap              # branch to system call
328 ENTRY(sys32_truncate_wrapper)
329         llgtr   %r2,%r2                 # const char *
330         lgfr    %r3,%r3                 # long
331         jg      sys_truncate            # branch to system call
333 ENTRY(sys32_ftruncate_wrapper)
334         llgfr   %r2,%r2                 # unsigned int
335         llgfr   %r3,%r3                 # unsigned long
336         jg      sys_ftruncate           # branch to system call
338 ENTRY(sys32_fchmod_wrapper)
339         llgfr   %r2,%r2                 # unsigned int
340         llgfr   %r3,%r3                 # mode_t
341         jg      sys_fchmod              # branch to system call
343 ENTRY(sys32_fchown16_wrapper)
344         llgfr   %r2,%r2                 # unsigned int
345         llgfr   %r3,%r3                 # compat_uid_t
346         llgfr   %r4,%r4                 # compat_uid_t
347         jg      sys32_fchown16          # branch to system call
349 ENTRY(sys32_getpriority_wrapper)
350         lgfr    %r2,%r2                 # int
351         lgfr    %r3,%r3                 # int
352         jg      sys_getpriority         # branch to system call
354 ENTRY(sys32_setpriority_wrapper)
355         lgfr    %r2,%r2                 # int
356         lgfr    %r3,%r3                 # int
357         lgfr    %r4,%r4                 # int
358         jg      sys_setpriority         # branch to system call
360 ENTRY(compat_sys_statfs_wrapper)
361         llgtr   %r2,%r2                 # char *
362         llgtr   %r3,%r3                 # struct compat_statfs *
363         jg      compat_sys_statfs       # branch to system call
365 ENTRY(compat_sys_fstatfs_wrapper)
366         llgfr   %r2,%r2                 # unsigned int
367         llgtr   %r3,%r3                 # struct compat_statfs *
368         jg      compat_sys_fstatfs      # branch to system call
370 ENTRY(compat_sys_socketcall_wrapper)
371         lgfr    %r2,%r2                 # int
372         llgtr   %r3,%r3                 # u32 *
373         jg      compat_sys_socketcall   # branch to system call
375 ENTRY(sys32_syslog_wrapper)
376         lgfr    %r2,%r2                 # int
377         llgtr   %r3,%r3                 # char *
378         lgfr    %r4,%r4                 # int
379         jg      sys_syslog              # branch to system call
381 ENTRY(compat_sys_newstat_wrapper)
382         llgtr   %r2,%r2                 # char *
383         llgtr   %r3,%r3                 # struct stat_emu31 *
384         jg      compat_sys_newstat      # branch to system call
386 ENTRY(compat_sys_newlstat_wrapper)
387         llgtr   %r2,%r2                 # char *
388         llgtr   %r3,%r3                 # struct stat_emu31 *
389         jg      compat_sys_newlstat     # branch to system call
391 ENTRY(compat_sys_newfstat_wrapper)
392         llgfr   %r2,%r2                 # unsigned int
393         llgtr   %r3,%r3                 # struct stat_emu31 *
394         jg      compat_sys_newfstat     # branch to system call
396 #sys32_vhangup_wrapper                  # void
398 ENTRY(sys32_swapoff_wrapper)
399         llgtr   %r2,%r2                 # const char *
400         jg      sys_swapoff             # branch to system call
402 ENTRY(compat_sys_sysinfo_wrapper)
403         llgtr   %r2,%r2                 # struct sysinfo_emu31 *
404         jg      compat_sys_sysinfo      # branch to system call
406 ENTRY(sys32_ipc_wrapper)
407         llgfr   %r2,%r2                 # uint
408         lgfr    %r3,%r3                 # int
409         lgfr    %r4,%r4                 # int
410         lgfr    %r5,%r5                 # int
411         llgfr   %r6,%r6                 # u32
412         jg      sys32_ipc               # branch to system call
414 ENTRY(sys32_fsync_wrapper)
415         llgfr   %r2,%r2                 # unsigned int
416         jg      sys_fsync               # branch to system call
418 #sys32_sigreturn_wrapper                # done in sigreturn_glue
420 #sys32_clone_wrapper                    # done in clone_glue
422 ENTRY(sys32_setdomainname_wrapper)
423         llgtr   %r2,%r2                 # char *
424         lgfr    %r3,%r3                 # int
425         jg      sys_setdomainname       # branch to system call
427 ENTRY(sys32_newuname_wrapper)
428         llgtr   %r2,%r2                 # struct new_utsname *
429         jg      sys_newuname            # branch to system call
431 ENTRY(compat_sys_adjtimex_wrapper)
432         llgtr   %r2,%r2                 # struct compat_timex *
433         jg      compat_sys_adjtimex     # branch to system call
435 ENTRY(sys32_mprotect_wrapper)
436         llgtr   %r2,%r2                 # unsigned long (actually pointer
437         llgfr   %r3,%r3                 # size_t
438         llgfr   %r4,%r4                 # unsigned long
439         jg      sys_mprotect            # branch to system call
441 ENTRY(sys_init_module_wrapper)
442         llgtr   %r2,%r2                 # void *
443         llgfr   %r3,%r3                 # unsigned long
444         llgtr   %r4,%r4                 # char *
445         jg      sys_init_module         # branch to system call
447 ENTRY(sys_delete_module_wrapper)
448         llgtr   %r2,%r2                 # const char *
449         llgfr   %r3,%r3                 # unsigned int
450         jg      sys_delete_module       # branch to system call
452 ENTRY(sys32_quotactl_wrapper)
453         llgfr   %r2,%r2                 # unsigned int
454         llgtr   %r3,%r3                 # const char *
455         llgfr   %r4,%r4                 # qid_t
456         llgtr   %r5,%r5                 # caddr_t
457         jg      sys_quotactl            # branch to system call
459 ENTRY(sys32_getpgid_wrapper)
460         lgfr    %r2,%r2                 # pid_t
461         jg      sys_getpgid             # branch to system call
463 ENTRY(sys32_fchdir_wrapper)
464         llgfr   %r2,%r2                 # unsigned int
465         jg      sys_fchdir              # branch to system call
467 ENTRY(sys32_bdflush_wrapper)
468         lgfr    %r2,%r2                 # int
469         lgfr    %r3,%r3                 # long
470         jg      sys_bdflush             # branch to system call
472 ENTRY(sys32_sysfs_wrapper)
473         lgfr    %r2,%r2                 # int
474         llgfr   %r3,%r3                 # unsigned long
475         llgfr   %r4,%r4                 # unsigned long
476         jg      sys_sysfs               # branch to system call
478 ENTRY(sys32_personality_wrapper)
479         llgfr   %r2,%r2                 # unsigned int
480         jg      sys_s390_personality    # branch to system call
482 ENTRY(sys32_setfsuid16_wrapper)
483         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t
484         jg      sys32_setfsuid16        # branch to system call
486 ENTRY(sys32_setfsgid16_wrapper)
487         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
488         jg      sys32_setfsgid16        # branch to system call
490 ENTRY(sys32_llseek_wrapper)
491         llgfr   %r2,%r2                 # unsigned int
492         llgfr   %r3,%r3                 # unsigned long
493         llgfr   %r4,%r4                 # unsigned long
494         llgtr   %r5,%r5                 # loff_t *
495         llgfr   %r6,%r6                 # unsigned int
496         jg      sys_llseek              # branch to system call
498 ENTRY(sys32_getdents_wrapper)
499         llgfr   %r2,%r2                 # unsigned int
500         llgtr   %r3,%r3                 # void *
501         llgfr   %r4,%r4                 # unsigned int
502         jg      compat_sys_getdents     # branch to system call
504 ENTRY(compat_sys_select_wrapper)
505         lgfr    %r2,%r2                 # int
506         llgtr   %r3,%r3                 # compat_fd_set *
507         llgtr   %r4,%r4                 # compat_fd_set *
508         llgtr   %r5,%r5                 # compat_fd_set *
509         llgtr   %r6,%r6                 # struct compat_timeval *
510         jg      compat_sys_select       # branch to system call
512 ENTRY(sys32_flock_wrapper)
513         llgfr   %r2,%r2                 # unsigned int
514         llgfr   %r3,%r3                 # unsigned int
515         jg      sys_flock               # branch to system call
517 ENTRY(sys32_msync_wrapper)
518         llgfr   %r2,%r2                 # unsigned long
519         llgfr   %r3,%r3                 # size_t
520         lgfr    %r4,%r4                 # int
521         jg      sys_msync               # branch to system call
523 ENTRY(compat_sys_readv_wrapper)
524         lgfr    %r2,%r2                 # int
525         llgtr   %r3,%r3                 # const struct compat_iovec *
526         llgfr   %r4,%r4                 # unsigned long
527         jg      compat_sys_readv        # branch to system call
529 ENTRY(compat_sys_writev_wrapper)
530         lgfr    %r2,%r2                 # int
531         llgtr   %r3,%r3                 # const struct compat_iovec *
532         llgfr   %r4,%r4                 # unsigned long
533         jg      compat_sys_writev       # branch to system call
535 ENTRY(sys32_getsid_wrapper)
536         lgfr    %r2,%r2                 # pid_t
537         jg      sys_getsid              # branch to system call
539 ENTRY(sys32_fdatasync_wrapper)
540         llgfr   %r2,%r2                 # unsigned int
541         jg      sys_fdatasync           # branch to system call
543 ENTRY(sys32_mlock_wrapper)
544         llgfr   %r2,%r2                 # unsigned long
545         llgfr   %r3,%r3                 # size_t
546         jg      sys_mlock               # branch to system call
548 ENTRY(sys32_munlock_wrapper)
549         llgfr   %r2,%r2                 # unsigned long
550         llgfr   %r3,%r3                 # size_t
551         jg      sys_munlock             # branch to system call
553 ENTRY(sys32_mlockall_wrapper)
554         lgfr    %r2,%r2                 # int
555         jg      sys_mlockall            # branch to system call
557 #sys32_munlockall_wrapper               # void
559 ENTRY(sys32_sched_setparam_wrapper)
560         lgfr    %r2,%r2                 # pid_t
561         llgtr   %r3,%r3                 # struct sched_param *
562         jg      sys_sched_setparam      # branch to system call
564 ENTRY(sys32_sched_getparam_wrapper)
565         lgfr    %r2,%r2                 # pid_t
566         llgtr   %r3,%r3                 # struct sched_param *
567         jg      sys_sched_getparam      # branch to system call
569 ENTRY(sys32_sched_setscheduler_wrapper)
570         lgfr    %r2,%r2                 # pid_t
571         lgfr    %r3,%r3                 # int
572         llgtr   %r4,%r4                 # struct sched_param *
573         jg      sys_sched_setscheduler  # branch to system call
575 ENTRY(sys32_sched_getscheduler_wrapper)
576         lgfr    %r2,%r2                 # pid_t
577         jg      sys_sched_getscheduler  # branch to system call
579 #sys32_sched_yield_wrapper              # void
581 ENTRY(sys32_sched_get_priority_max_wrapper)
582         lgfr    %r2,%r2                 # int
583         jg      sys_sched_get_priority_max      # branch to system call
585 ENTRY(sys32_sched_get_priority_min_wrapper)
586         lgfr    %r2,%r2                 # int
587         jg      sys_sched_get_priority_min      # branch to system call
589 ENTRY(compat_sys_nanosleep_wrapper)
590         llgtr   %r2,%r2                 # struct compat_timespec *
591         llgtr   %r3,%r3                 # struct compat_timespec *
592         jg      compat_sys_nanosleep            # branch to system call
594 ENTRY(sys32_mremap_wrapper)
595         llgfr   %r2,%r2                 # unsigned long
596         llgfr   %r3,%r3                 # unsigned long
597         llgfr   %r4,%r4                 # unsigned long
598         llgfr   %r5,%r5                 # unsigned long
599         llgfr   %r6,%r6                 # unsigned long
600         jg      sys_mremap              # branch to system call
602 ENTRY(sys32_setresuid16_wrapper)
603         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t
604         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
605         llgfr   %r4,%r4                 # __kernel_old_uid_emu31_t
606         jg      sys32_setresuid16       # branch to system call
608 ENTRY(sys32_getresuid16_wrapper)
609         llgtr   %r2,%r2                 # __kernel_old_uid_emu31_t *
610         llgtr   %r3,%r3                 # __kernel_old_uid_emu31_t *
611         llgtr   %r4,%r4                 # __kernel_old_uid_emu31_t *
612         jg      sys32_getresuid16       # branch to system call
614 ENTRY(sys32_poll_wrapper)
615         llgtr   %r2,%r2                 # struct pollfd *
616         llgfr   %r3,%r3                 # unsigned int
617         lgfr    %r4,%r4                 # int
618         jg      sys_poll                # branch to system call
620 ENTRY(sys32_setresgid16_wrapper)
621         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t
622         llgfr   %r3,%r3                 # __kernel_old_gid_emu31_t
623         llgfr   %r4,%r4                 # __kernel_old_gid_emu31_t
624         jg      sys32_setresgid16       # branch to system call
626 ENTRY(sys32_getresgid16_wrapper)
627         llgtr   %r2,%r2                 # __kernel_old_gid_emu31_t *
628         llgtr   %r3,%r3                 # __kernel_old_gid_emu31_t *
629         llgtr   %r4,%r4                 # __kernel_old_gid_emu31_t *
630         jg      sys32_getresgid16       # branch to system call
632 ENTRY(sys32_prctl_wrapper)
633         lgfr    %r2,%r2                 # int
634         llgfr   %r3,%r3                 # unsigned long
635         llgfr   %r4,%r4                 # unsigned long
636         llgfr   %r5,%r5                 # unsigned long
637         llgfr   %r6,%r6                 # unsigned long
638         jg      sys_prctl               # branch to system call
640 #sys32_rt_sigreturn_wrapper             # done in rt_sigreturn_glue
642 ENTRY(sys32_pread64_wrapper)
643         llgfr   %r2,%r2                 # unsigned int
644         llgtr   %r3,%r3                 # char *
645         llgfr   %r4,%r4                 # size_t
646         llgfr   %r5,%r5                 # u32
647         llgfr   %r6,%r6                 # u32
648         jg      sys32_pread64           # branch to system call
650 ENTRY(sys32_pwrite64_wrapper)
651         llgfr   %r2,%r2                 # unsigned int
652         llgtr   %r3,%r3                 # const char *
653         llgfr   %r4,%r4                 # size_t
654         llgfr   %r5,%r5                 # u32
655         llgfr   %r6,%r6                 # u32
656         jg      sys32_pwrite64          # branch to system call
658 ENTRY(sys32_chown16_wrapper)
659         llgtr   %r2,%r2                 # const char *
660         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t
661         llgfr   %r4,%r4                 # __kernel_old_gid_emu31_t
662         jg      sys32_chown16           # branch to system call
664 ENTRY(sys32_getcwd_wrapper)
665         llgtr   %r2,%r2                 # char *
666         llgfr   %r3,%r3                 # unsigned long
667         jg      sys_getcwd              # branch to system call
669 ENTRY(sys32_capget_wrapper)
670         llgtr   %r2,%r2                 # cap_user_header_t
671         llgtr   %r3,%r3                 # cap_user_data_t
672         jg      sys_capget              # branch to system call
674 ENTRY(sys32_capset_wrapper)
675         llgtr   %r2,%r2                 # cap_user_header_t
676         llgtr   %r3,%r3                 # const cap_user_data_t
677         jg      sys_capset              # branch to system call
679 ENTRY(sys32_sendfile_wrapper)
680         lgfr    %r2,%r2                 # int
681         lgfr    %r3,%r3                 # int
682         llgtr   %r4,%r4                 # __kernel_off_emu31_t *
683         llgfr   %r5,%r5                 # size_t
684         jg      sys32_sendfile          # branch to system call
686 #sys32_vfork_wrapper                    # done in vfork_glue
688 ENTRY(sys32_truncate64_wrapper)
689         llgtr   %r2,%r2                 # const char *
690         llgfr   %r3,%r3                 # unsigned long
691         llgfr   %r4,%r4                 # unsigned long
692         jg      sys32_truncate64        # branch to system call
694 ENTRY(sys32_ftruncate64_wrapper)
695         llgfr   %r2,%r2                 # unsigned int
696         llgfr   %r3,%r3                 # unsigned long
697         llgfr   %r4,%r4                 # unsigned long
698         jg      sys32_ftruncate64       # branch to system call
700 ENTRY(sys32_lchown_wrapper)
701         llgtr   %r2,%r2                 # const char *
702         llgfr   %r3,%r3                 # uid_t
703         llgfr   %r4,%r4                 # gid_t
704         jg      sys_lchown              # branch to system call
706 #sys32_getuid_wrapper                   # void
707 #sys32_getgid_wrapper                   # void
708 #sys32_geteuid_wrapper                  # void
709 #sys32_getegid_wrapper                  # void
711 ENTRY(sys32_setreuid_wrapper)
712         llgfr   %r2,%r2                 # uid_t
713         llgfr   %r3,%r3                 # uid_t
714         jg      sys_setreuid            # branch to system call
716 ENTRY(sys32_setregid_wrapper)
717         llgfr   %r2,%r2                 # gid_t
718         llgfr   %r3,%r3                 # gid_t
719         jg      sys_setregid            # branch to system call
721 ENTRY(sys32_getgroups_wrapper)
722         lgfr    %r2,%r2                 # int
723         llgtr   %r3,%r3                 # gid_t *
724         jg      sys_getgroups           # branch to system call
726 ENTRY(sys32_setgroups_wrapper)
727         lgfr    %r2,%r2                 # int
728         llgtr   %r3,%r3                 # gid_t *
729         jg      sys_setgroups           # branch to system call
731 ENTRY(sys32_fchown_wrapper)
732         llgfr   %r2,%r2                 # unsigned int
733         llgfr   %r3,%r3                 # uid_t
734         llgfr   %r4,%r4                 # gid_t
735         jg      sys_fchown              # branch to system call
737 ENTRY(sys32_setresuid_wrapper)
738         llgfr   %r2,%r2                 # uid_t
739         llgfr   %r3,%r3                 # uid_t
740         llgfr   %r4,%r4                 # uid_t
741         jg      sys_setresuid           # branch to system call
743 ENTRY(sys32_getresuid_wrapper)
744         llgtr   %r2,%r2                 # uid_t *
745         llgtr   %r3,%r3                 # uid_t *
746         llgtr   %r4,%r4                 # uid_t *
747         jg      sys_getresuid           # branch to system call
749 ENTRY(sys32_setresgid_wrapper)
750         llgfr   %r2,%r2                 # gid_t
751         llgfr   %r3,%r3                 # gid_t
752         llgfr   %r4,%r4                 # gid_t
753         jg      sys_setresgid           # branch to system call
755 ENTRY(sys32_getresgid_wrapper)
756         llgtr   %r2,%r2                 # gid_t *
757         llgtr   %r3,%r3                 # gid_t *
758         llgtr   %r4,%r4                 # gid_t *
759         jg      sys_getresgid           # branch to system call
761 ENTRY(sys32_chown_wrapper)
762         llgtr   %r2,%r2                 # const char *
763         llgfr   %r3,%r3                 # uid_t
764         llgfr   %r4,%r4                 # gid_t
765         jg      sys_chown               # branch to system call
767 ENTRY(sys32_setuid_wrapper)
768         llgfr   %r2,%r2                 # uid_t
769         jg      sys_setuid              # branch to system call
771 ENTRY(sys32_setgid_wrapper)
772         llgfr   %r2,%r2                 # gid_t
773         jg      sys_setgid              # branch to system call
775 ENTRY(sys32_setfsuid_wrapper)
776         llgfr   %r2,%r2                 # uid_t
777         jg      sys_setfsuid            # branch to system call
779 ENTRY(sys32_setfsgid_wrapper)
780         llgfr   %r2,%r2                 # gid_t
781         jg      sys_setfsgid            # branch to system call
783 ENTRY(sys32_pivot_root_wrapper)
784         llgtr   %r2,%r2                 # const char *
785         llgtr   %r3,%r3                 # const char *
786         jg      sys_pivot_root          # branch to system call
788 ENTRY(sys32_mincore_wrapper)
789         llgfr   %r2,%r2                 # unsigned long
790         llgfr   %r3,%r3                 # size_t
791         llgtr   %r4,%r4                 # unsigned char *
792         jg      sys_mincore             # branch to system call
794 ENTRY(sys32_madvise_wrapper)
795         llgfr   %r2,%r2                 # unsigned long
796         llgfr   %r3,%r3                 # size_t
797         lgfr    %r4,%r4                 # int
798         jg      sys_madvise             # branch to system call
800 ENTRY(sys32_getdents64_wrapper)
801         llgfr   %r2,%r2                 # unsigned int
802         llgtr   %r3,%r3                 # void *
803         llgfr   %r4,%r4                 # unsigned int
804         jg      sys_getdents64          # branch to system call
806 ENTRY(compat_sys_fcntl64_wrapper)
807         llgfr   %r2,%r2                 # unsigned int
808         llgfr   %r3,%r3                 # unsigned int
809         llgfr   %r4,%r4                 # unsigned long
810         jg      compat_sys_fcntl64      # branch to system call
812 ENTRY(sys32_stat64_wrapper)
813         llgtr   %r2,%r2                 # char *
814         llgtr   %r3,%r3                 # struct stat64 *
815         jg      sys32_stat64            # branch to system call
817 ENTRY(sys32_lstat64_wrapper)
818         llgtr   %r2,%r2                 # char *
819         llgtr   %r3,%r3                 # struct stat64 *
820         jg      sys32_lstat64           # branch to system call
822 ENTRY(sys32_stime_wrapper)
823         llgtr   %r2,%r2                 # long *
824         jg      compat_sys_stime        # branch to system call
826 ENTRY(sys32_sysctl_wrapper)
827         llgtr   %r2,%r2                 # struct compat_sysctl_args *
828         jg      compat_sys_sysctl
830 ENTRY(sys32_fstat64_wrapper)
831         llgfr   %r2,%r2                 # unsigned long
832         llgtr   %r3,%r3                 # struct stat64 *
833         jg      sys32_fstat64           # branch to system call
835 ENTRY(sys32_setxattr_wrapper)
836         llgtr   %r2,%r2                 # char *
837         llgtr   %r3,%r3                 # char *
838         llgtr   %r4,%r4                 # void *
839         llgfr   %r5,%r5                 # size_t
840         lgfr    %r6,%r6                 # int
841         jg      sys_setxattr
843 ENTRY(sys32_lsetxattr_wrapper)
844         llgtr   %r2,%r2                 # char *
845         llgtr   %r3,%r3                 # char *
846         llgtr   %r4,%r4                 # void *
847         llgfr   %r5,%r5                 # size_t
848         lgfr    %r6,%r6                 # int
849         jg      sys_lsetxattr
851 ENTRY(sys32_fsetxattr_wrapper)
852         lgfr    %r2,%r2                 # int
853         llgtr   %r3,%r3                 # char *
854         llgtr   %r4,%r4                 # void *
855         llgfr   %r5,%r5                 # size_t
856         lgfr    %r6,%r6                 # int
857         jg      sys_fsetxattr
859 ENTRY(sys32_getxattr_wrapper)
860         llgtr   %r2,%r2                 # char *
861         llgtr   %r3,%r3                 # char *
862         llgtr   %r4,%r4                 # void *
863         llgfr   %r5,%r5                 # size_t
864         jg      sys_getxattr
866 ENTRY(sys32_lgetxattr_wrapper)
867         llgtr   %r2,%r2                 # char *
868         llgtr   %r3,%r3                 # char *
869         llgtr   %r4,%r4                 # void *
870         llgfr   %r5,%r5                 # size_t
871         jg      sys_lgetxattr
873 ENTRY(sys32_fgetxattr_wrapper)
874         lgfr    %r2,%r2                 # int
875         llgtr   %r3,%r3                 # char *
876         llgtr   %r4,%r4                 # void *
877         llgfr   %r5,%r5                 # size_t
878         jg      sys_fgetxattr
880 ENTRY(sys32_listxattr_wrapper)
881         llgtr   %r2,%r2                 # char *
882         llgtr   %r3,%r3                 # char *
883         llgfr   %r4,%r4                 # size_t
884         jg      sys_listxattr
886 ENTRY(sys32_llistxattr_wrapper)
887         llgtr   %r2,%r2                 # char *
888         llgtr   %r3,%r3                 # char *
889         llgfr   %r4,%r4                 # size_t
890         jg      sys_llistxattr
892 ENTRY(sys32_flistxattr_wrapper)
893         lgfr    %r2,%r2                 # int
894         llgtr   %r3,%r3                 # char *
895         llgfr   %r4,%r4                 # size_t
896         jg      sys_flistxattr
898 ENTRY(sys32_removexattr_wrapper)
899         llgtr   %r2,%r2                 # char *
900         llgtr   %r3,%r3                 # char *
901         jg      sys_removexattr
903 ENTRY(sys32_lremovexattr_wrapper)
904         llgtr   %r2,%r2                 # char *
905         llgtr   %r3,%r3                 # char *
906         jg      sys_lremovexattr
908 ENTRY(sys32_fremovexattr_wrapper)
909         lgfr    %r2,%r2                 # int
910         llgtr   %r3,%r3                 # char *
911         jg      sys_fremovexattr
913 ENTRY(sys32_sched_setaffinity_wrapper)
914         lgfr    %r2,%r2                 # int
915         llgfr   %r3,%r3                 # unsigned int
916         llgtr   %r4,%r4                 # unsigned long *
917         jg      compat_sys_sched_setaffinity
919 ENTRY(sys32_sched_getaffinity_wrapper)
920         lgfr    %r2,%r2                 # int
921         llgfr   %r3,%r3                 # unsigned int
922         llgtr   %r4,%r4                 # unsigned long *
923         jg      compat_sys_sched_getaffinity
925 ENTRY(sys32_exit_group_wrapper)
926         lgfr    %r2,%r2                 # int
927         jg      sys_exit_group          # branch to system call
929 ENTRY(sys32_set_tid_address_wrapper)
930         llgtr   %r2,%r2                 # int *
931         jg      sys_set_tid_address     # branch to system call
933 ENTRY(sys_epoll_create_wrapper)
934         lgfr    %r2,%r2                 # int
935         jg      sys_epoll_create        # branch to system call
937 ENTRY(sys_epoll_ctl_wrapper)
938         lgfr    %r2,%r2                 # int
939         lgfr    %r3,%r3                 # int
940         lgfr    %r4,%r4                 # int
941         llgtr   %r5,%r5                 # struct epoll_event *
942         jg      sys_epoll_ctl           # branch to system call
944 ENTRY(sys_epoll_wait_wrapper)
945         lgfr    %r2,%r2                 # int
946         llgtr   %r3,%r3                 # struct epoll_event *
947         lgfr    %r4,%r4                 # int
948         lgfr    %r5,%r5                 # int
949         jg      sys_epoll_wait          # branch to system call
951 ENTRY(sys32_lookup_dcookie_wrapper)
952         sllg    %r2,%r2,32              # get high word of 64bit dcookie
953         or      %r2,%r3                 # get low word of 64bit dcookie
954         llgtr   %r3,%r4                 # char *
955         llgfr   %r4,%r5                 # size_t
956         jg      sys_lookup_dcookie
958 ENTRY(sys32_fadvise64_wrapper)
959         lgfr    %r2,%r2                 # int
960         sllg    %r3,%r3,32              # get high word of 64bit loff_t
961         or      %r3,%r4                 # get low word of 64bit loff_t
962         llgfr   %r4,%r5                 # size_t (unsigned long)
963         lgfr    %r5,%r6                 # int
964         jg      sys32_fadvise64
966 ENTRY(sys32_fadvise64_64_wrapper)
967         llgtr   %r2,%r2                 # struct fadvise64_64_args *
968         jg      sys32_fadvise64_64
970 ENTRY(sys32_clock_settime_wrapper)
971         lgfr    %r2,%r2                 # clockid_t (int)
972         llgtr   %r3,%r3                 # struct compat_timespec *
973         jg      compat_sys_clock_settime
975 ENTRY(sys32_clock_gettime_wrapper)
976         lgfr    %r2,%r2                 # clockid_t (int)
977         llgtr   %r3,%r3                 # struct compat_timespec *
978         jg      compat_sys_clock_gettime
980 ENTRY(sys32_clock_getres_wrapper)
981         lgfr    %r2,%r2                 # clockid_t (int)
982         llgtr   %r3,%r3                 # struct compat_timespec *
983         jg      compat_sys_clock_getres
985 ENTRY(sys32_clock_nanosleep_wrapper)
986         lgfr    %r2,%r2                 # clockid_t (int)
987         lgfr    %r3,%r3                 # int
988         llgtr   %r4,%r4                 # struct compat_timespec *
989         llgtr   %r5,%r5                 # struct compat_timespec *
990         jg      compat_sys_clock_nanosleep
992 ENTRY(sys32_timer_create_wrapper)
993         lgfr    %r2,%r2                 # timer_t (int)
994         llgtr   %r3,%r3                 # struct compat_sigevent *
995         llgtr   %r4,%r4                 # timer_t *
996         jg      compat_sys_timer_create
998 ENTRY(sys32_timer_settime_wrapper)
999         lgfr    %r2,%r2                 # timer_t (int)
1000         lgfr    %r3,%r3                 # int
1001         llgtr   %r4,%r4                 # struct compat_itimerspec *
1002         llgtr   %r5,%r5                 # struct compat_itimerspec *
1003         jg      compat_sys_timer_settime
1005 ENTRY(sys32_timer_gettime_wrapper)
1006         lgfr    %r2,%r2                 # timer_t (int)
1007         llgtr   %r3,%r3                 # struct compat_itimerspec *
1008         jg      compat_sys_timer_gettime
1010 ENTRY(sys32_timer_getoverrun_wrapper)
1011         lgfr    %r2,%r2                 # timer_t (int)
1012         jg      sys_timer_getoverrun
1014 ENTRY(sys32_timer_delete_wrapper)
1015         lgfr    %r2,%r2                 # timer_t (int)
1016         jg      sys_timer_delete
1018 ENTRY(sys32_io_setup_wrapper)
1019         llgfr   %r2,%r2                 # unsigned int
1020         llgtr   %r3,%r3                 # u32 *
1021         jg      compat_sys_io_setup
1023 ENTRY(sys32_io_destroy_wrapper)
1024         llgfr   %r2,%r2                 # (aio_context_t) u32
1025         jg      sys_io_destroy
1027 ENTRY(sys32_io_getevents_wrapper)
1028         llgfr   %r2,%r2                 # (aio_context_t) u32
1029         lgfr    %r3,%r3                 # long
1030         lgfr    %r4,%r4                 # long
1031         llgtr   %r5,%r5                 # struct io_event *
1032         llgtr   %r6,%r6                 # struct compat_timespec *
1033         jg      compat_sys_io_getevents
1035 ENTRY(sys32_io_submit_wrapper)
1036         llgfr   %r2,%r2                 # (aio_context_t) u32
1037         lgfr    %r3,%r3                 # long
1038         llgtr   %r4,%r4                 # struct iocb **
1039         jg      compat_sys_io_submit
1041 ENTRY(sys32_io_cancel_wrapper)
1042         llgfr   %r2,%r2                 # (aio_context_t) u32
1043         llgtr   %r3,%r3                 # struct iocb *
1044         llgtr   %r4,%r4                 # struct io_event *
1045         jg      sys_io_cancel
1047 ENTRY(compat_sys_statfs64_wrapper)
1048         llgtr   %r2,%r2                 # const char *
1049         llgfr   %r3,%r3                 # compat_size_t
1050         llgtr   %r4,%r4                 # struct compat_statfs64 *
1051         jg      compat_sys_statfs64
1053 ENTRY(compat_sys_fstatfs64_wrapper)
1054         llgfr   %r2,%r2                 # unsigned int fd
1055         llgfr   %r3,%r3                 # compat_size_t
1056         llgtr   %r4,%r4                 # struct compat_statfs64 *
1057         jg      compat_sys_fstatfs64
1059 ENTRY(compat_sys_mq_open_wrapper)
1060         llgtr   %r2,%r2                 # const char *
1061         lgfr    %r3,%r3                 # int
1062         llgfr   %r4,%r4                 # mode_t
1063         llgtr   %r5,%r5                 # struct compat_mq_attr *
1064         jg      compat_sys_mq_open
1066 ENTRY(sys32_mq_unlink_wrapper)
1067         llgtr   %r2,%r2                 # const char *
1068         jg      sys_mq_unlink
1070 ENTRY(compat_sys_mq_timedsend_wrapper)
1071         lgfr    %r2,%r2                 # mqd_t
1072         llgtr   %r3,%r3                 # const char *
1073         llgfr   %r4,%r4                 # size_t
1074         llgfr   %r5,%r5                 # unsigned int
1075         llgtr   %r6,%r6                 # const struct compat_timespec *
1076         jg      compat_sys_mq_timedsend
1078 ENTRY(compat_sys_mq_timedreceive_wrapper)
1079         lgfr    %r2,%r2                 # mqd_t
1080         llgtr   %r3,%r3                 # char *
1081         llgfr   %r4,%r4                 # size_t
1082         llgtr   %r5,%r5                 # unsigned int *
1083         llgtr   %r6,%r6                 # const struct compat_timespec *
1084         jg      compat_sys_mq_timedreceive
1086 ENTRY(compat_sys_mq_notify_wrapper)
1087         lgfr    %r2,%r2                 # mqd_t
1088         llgtr   %r3,%r3                 # struct compat_sigevent *
1089         jg      compat_sys_mq_notify
1091 ENTRY(compat_sys_mq_getsetattr_wrapper)
1092         lgfr    %r2,%r2                 # mqd_t
1093         llgtr   %r3,%r3                 # struct compat_mq_attr *
1094         llgtr   %r4,%r4                 # struct compat_mq_attr *
1095         jg      compat_sys_mq_getsetattr
1097 ENTRY(compat_sys_add_key_wrapper)
1098         llgtr   %r2,%r2                 # const char *
1099         llgtr   %r3,%r3                 # const char *
1100         llgtr   %r4,%r4                 # const void *
1101         llgfr   %r5,%r5                 # size_t
1102         llgfr   %r6,%r6                 # (key_serial_t) u32
1103         jg      sys_add_key
1105 ENTRY(compat_sys_request_key_wrapper)
1106         llgtr   %r2,%r2                 # const char *
1107         llgtr   %r3,%r3                 # const char *
1108         llgtr   %r4,%r4                 # const void *
1109         llgfr   %r5,%r5                 # (key_serial_t) u32
1110         jg      sys_request_key
1112 ENTRY(sys32_remap_file_pages_wrapper)
1113         llgfr   %r2,%r2                 # unsigned long
1114         llgfr   %r3,%r3                 # unsigned long
1115         llgfr   %r4,%r4                 # unsigned long
1116         llgfr   %r5,%r5                 # unsigned long
1117         llgfr   %r6,%r6                 # unsigned long
1118         jg      sys_remap_file_pages
1120 ENTRY(compat_sys_kexec_load_wrapper)
1121         llgfr   %r2,%r2                 # unsigned long
1122         llgfr   %r3,%r3                 # unsigned long
1123         llgtr   %r4,%r4                 # struct kexec_segment *
1124         llgfr   %r5,%r5                 # unsigned long
1125         jg      compat_sys_kexec_load
1127 ENTRY(sys_ioprio_set_wrapper)
1128         lgfr    %r2,%r2                 # int
1129         lgfr    %r3,%r3                 # int
1130         lgfr    %r4,%r4                 # int
1131         jg      sys_ioprio_set
1133 ENTRY(sys_ioprio_get_wrapper)
1134         lgfr    %r2,%r2                 # int
1135         lgfr    %r3,%r3                 # int
1136         jg      sys_ioprio_get
1138 ENTRY(sys_inotify_add_watch_wrapper)
1139         lgfr    %r2,%r2                 # int
1140         llgtr   %r3,%r3                 # const char *
1141         llgfr   %r4,%r4                 # u32
1142         jg      sys_inotify_add_watch
1144 ENTRY(sys_inotify_rm_watch_wrapper)
1145         lgfr    %r2,%r2                 # int
1146         llgfr   %r3,%r3                 # u32
1147         jg      sys_inotify_rm_watch
1149 ENTRY(sys_mkdirat_wrapper)
1150         lgfr    %r2,%r2                 # int
1151         llgtr   %r3,%r3                 # const char *
1152         lgfr    %r4,%r4                 # int
1153         jg      sys_mkdirat
1155 ENTRY(sys_mknodat_wrapper)
1156         lgfr    %r2,%r2                 # int
1157         llgtr   %r3,%r3                 # const char *
1158         lgfr    %r4,%r4                 # int
1159         llgfr   %r5,%r5                 # unsigned int
1160         jg      sys_mknodat
1162 ENTRY(sys_fchownat_wrapper)
1163         lgfr    %r2,%r2                 # int
1164         llgtr   %r3,%r3                 # const char *
1165         llgfr   %r4,%r4                 # uid_t
1166         llgfr   %r5,%r5                 # gid_t
1167         lgfr    %r6,%r6                 # int
1168         jg      sys_fchownat
1170 ENTRY(compat_sys_futimesat_wrapper)
1171         llgfr   %r2,%r2                 # unsigned int
1172         llgtr   %r3,%r3                 # char *
1173         llgtr   %r4,%r4                 # struct timeval *
1174         jg      compat_sys_futimesat
1176 ENTRY(sys32_fstatat64_wrapper)
1177         llgfr   %r2,%r2                 # unsigned int
1178         llgtr   %r3,%r3                 # char *
1179         llgtr   %r4,%r4                 # struct stat64 *
1180         lgfr    %r5,%r5                 # int
1181         jg      sys32_fstatat64
1183 ENTRY(sys_unlinkat_wrapper)
1184         lgfr    %r2,%r2                 # int
1185         llgtr   %r3,%r3                 # const char *
1186         lgfr    %r4,%r4                 # int
1187         jg      sys_unlinkat
1189 ENTRY(sys_renameat_wrapper)
1190         lgfr    %r2,%r2                 # int
1191         llgtr   %r3,%r3                 # const char *
1192         lgfr    %r4,%r4                 # int
1193         llgtr   %r5,%r5                 # const char *
1194         jg      sys_renameat
1196 ENTRY(sys_linkat_wrapper)
1197         lgfr    %r2,%r2                 # int
1198         llgtr   %r3,%r3                 # const char *
1199         lgfr    %r4,%r4                 # int
1200         llgtr   %r5,%r5                 # const char *
1201         lgfr    %r6,%r6                 # int
1202         jg      sys_linkat
1204 ENTRY(sys_symlinkat_wrapper)
1205         llgtr   %r2,%r2                 # const char *
1206         lgfr    %r3,%r3                 # int
1207         llgtr   %r4,%r4                 # const char *
1208         jg      sys_symlinkat
1210 ENTRY(sys_readlinkat_wrapper)
1211         lgfr    %r2,%r2                 # int
1212         llgtr   %r3,%r3                 # const char *
1213         llgtr   %r4,%r4                 # char *
1214         lgfr    %r5,%r5                 # int
1215         jg      sys_readlinkat
1217 ENTRY(sys_fchmodat_wrapper)
1218         lgfr    %r2,%r2                 # int
1219         llgtr   %r3,%r3                 # const char *
1220         llgfr   %r4,%r4                 # mode_t
1221         jg      sys_fchmodat
1223 ENTRY(sys_faccessat_wrapper)
1224         lgfr    %r2,%r2                 # int
1225         llgtr   %r3,%r3                 # const char *
1226         lgfr    %r4,%r4                 # int
1227         jg      sys_faccessat
1229 ENTRY(compat_sys_pselect6_wrapper)
1230         lgfr    %r2,%r2                 # int
1231         llgtr   %r3,%r3                 # fd_set *
1232         llgtr   %r4,%r4                 # fd_set *
1233         llgtr   %r5,%r5                 # fd_set *
1234         llgtr   %r6,%r6                 # struct timespec *
1235         llgt    %r0,164(%r15)           # void *
1236         stg     %r0,160(%r15)
1237         jg      compat_sys_pselect6
1239 ENTRY(compat_sys_ppoll_wrapper)
1240         llgtr   %r2,%r2                 # struct pollfd *
1241         llgfr   %r3,%r3                 # unsigned int
1242         llgtr   %r4,%r4                 # struct timespec *
1243         llgtr   %r5,%r5                 # const sigset_t *
1244         llgfr   %r6,%r6                 # size_t
1245         jg      compat_sys_ppoll
1247 ENTRY(sys_unshare_wrapper)
1248         llgfr   %r2,%r2                 # unsigned long
1249         jg      sys_unshare
1251 ENTRY(sys_splice_wrapper)
1252         lgfr    %r2,%r2                 # int
1253         llgtr   %r3,%r3                 # loff_t *
1254         lgfr    %r4,%r4                 # int
1255         llgtr   %r5,%r5                 # loff_t *
1256         llgfr   %r6,%r6                 # size_t
1257         llgf    %r0,164(%r15)           # unsigned int
1258         stg     %r0,160(%r15)
1259         jg      sys_splice
1261 ENTRY(sys_sync_file_range_wrapper)
1262         lgfr    %r2,%r2                 # int
1263         sllg    %r3,%r3,32              # get high word of 64bit loff_t
1264         or      %r3,%r4                 # get low word of 64bit loff_t
1265         sllg    %r4,%r5,32              # get high word of 64bit loff_t
1266         or      %r4,%r6                 # get low word of 64bit loff_t
1267         llgf    %r5,164(%r15)           # unsigned int
1268         jg      sys_sync_file_range
1270 ENTRY(sys_tee_wrapper)
1271         lgfr    %r2,%r2                 # int
1272         lgfr    %r3,%r3                 # int
1273         llgfr   %r4,%r4                 # size_t
1274         llgfr   %r5,%r5                 # unsigned int
1275         jg      sys_tee
1277 ENTRY(compat_sys_vmsplice_wrapper)
1278         lgfr    %r2,%r2                 # int
1279         llgtr   %r3,%r3                 # compat_iovec *
1280         llgfr   %r4,%r4                 # unsigned int
1281         llgfr   %r5,%r5                 # unsigned int
1282         jg      compat_sys_vmsplice
1284 ENTRY(sys_getcpu_wrapper)
1285         llgtr   %r2,%r2                 # unsigned *
1286         llgtr   %r3,%r3                 # unsigned *
1287         llgtr   %r4,%r4                 # struct getcpu_cache *
1288         jg      sys_getcpu
1290 ENTRY(compat_sys_epoll_pwait_wrapper)
1291         lgfr    %r2,%r2                 # int
1292         llgtr   %r3,%r3                 # struct compat_epoll_event *
1293         lgfr    %r4,%r4                 # int
1294         lgfr    %r5,%r5                 # int
1295         llgtr   %r6,%r6                 # compat_sigset_t *
1296         llgf    %r0,164(%r15)           # compat_size_t
1297         stg     %r0,160(%r15)
1298         jg      compat_sys_epoll_pwait
1300 ENTRY(compat_sys_utimes_wrapper)
1301         llgtr   %r2,%r2                 # char *
1302         llgtr   %r3,%r3                 # struct compat_timeval *
1303         jg      compat_sys_utimes
1305 ENTRY(compat_sys_utimensat_wrapper)
1306         llgfr   %r2,%r2                 # unsigned int
1307         llgtr   %r3,%r3                 # char *
1308         llgtr   %r4,%r4                 # struct compat_timespec *
1309         lgfr    %r5,%r5                 # int
1310         jg      compat_sys_utimensat
1312 ENTRY(compat_sys_signalfd_wrapper)
1313         lgfr    %r2,%r2                 # int
1314         llgtr   %r3,%r3                 # compat_sigset_t *
1315         llgfr   %r4,%r4                 # compat_size_t
1316         jg      compat_sys_signalfd
1318 ENTRY(sys_eventfd_wrapper)
1319         llgfr   %r2,%r2                 # unsigned int
1320         jg      sys_eventfd
1322 ENTRY(sys_fallocate_wrapper)
1323         lgfr    %r2,%r2                 # int
1324         lgfr    %r3,%r3                 # int
1325         sllg    %r4,%r4,32              # get high word of 64bit loff_t
1326         lr      %r4,%r5                 # get low word of 64bit loff_t
1327         sllg    %r5,%r6,32              # get high word of 64bit loff_t
1328         l       %r5,164(%r15)           # get low word of 64bit loff_t
1329         jg      sys_fallocate
1331 ENTRY(sys_timerfd_create_wrapper)
1332         lgfr    %r2,%r2                 # int
1333         lgfr    %r3,%r3                 # int
1334         jg      sys_timerfd_create
1336 ENTRY(compat_sys_signalfd4_wrapper)
1337         lgfr    %r2,%r2                 # int
1338         llgtr   %r3,%r3                 # compat_sigset_t *
1339         llgfr   %r4,%r4                 # compat_size_t
1340         lgfr    %r5,%r5                 # int
1341         jg      compat_sys_signalfd4
1343 ENTRY(sys_eventfd2_wrapper)
1344         llgfr   %r2,%r2                 # unsigned int
1345         lgfr    %r3,%r3                 # int
1346         jg      sys_eventfd2
1348 ENTRY(sys_inotify_init1_wrapper)
1349         lgfr    %r2,%r2                 # int
1350         jg      sys_inotify_init1
1352 ENTRY(sys_pipe2_wrapper)
1353         llgtr   %r2,%r2                 # u32 *
1354         lgfr    %r3,%r3                 # int
1355         jg      sys_pipe2               # branch to system call
1357 ENTRY(sys_dup3_wrapper)
1358         llgfr   %r2,%r2                 # unsigned int
1359         llgfr   %r3,%r3                 # unsigned int
1360         lgfr    %r4,%r4                 # int
1361         jg      sys_dup3                # branch to system call
1363 ENTRY(sys_epoll_create1_wrapper)
1364         lgfr    %r2,%r2                 # int
1365         jg      sys_epoll_create1       # branch to system call
1367 ENTRY(sys32_readahead_wrapper)
1368         lgfr    %r2,%r2                 # int
1369         llgfr   %r3,%r3                 # u32
1370         llgfr   %r4,%r4                 # u32
1371         lgfr    %r5,%r5                 # s32
1372         jg      sys32_readahead         # branch to system call
1374 ENTRY(sys32_sendfile64_wrapper)
1375         lgfr    %r2,%r2                 # int
1376         lgfr    %r3,%r3                 # int
1377         llgtr   %r4,%r4                 # compat_loff_t *
1378         lgfr    %r5,%r5                 # s32
1379         jg      sys32_sendfile64        # branch to system call
1381 ENTRY(sys_tkill_wrapper)
1382         lgfr    %r2,%r2                 # pid_t
1383         lgfr    %r3,%r3                 # int
1384         jg      sys_tkill               # branch to system call
1386 ENTRY(sys_tgkill_wrapper)
1387         lgfr    %r2,%r2                 # pid_t
1388         lgfr    %r3,%r3                 # pid_t
1389         lgfr    %r4,%r4                 # int
1390         jg      sys_tgkill              # branch to system call
1392 ENTRY(compat_sys_keyctl_wrapper)
1393         llgfr   %r2,%r2                 # u32
1394         llgfr   %r3,%r3                 # u32
1395         llgfr   %r4,%r4                 # u32
1396         llgfr   %r5,%r5                 # u32
1397         llgfr   %r6,%r6                 # u32
1398         jg      compat_sys_keyctl       # branch to system call
1400 ENTRY(compat_sys_preadv_wrapper)
1401         llgfr   %r2,%r2                 # unsigned long
1402         llgtr   %r3,%r3                 # compat_iovec *
1403         llgfr   %r4,%r4                 # unsigned long
1404         llgfr   %r5,%r5                 # u32
1405         llgfr   %r6,%r6                 # u32
1406         jg      compat_sys_preadv       # branch to system call
1408 ENTRY(compat_sys_pwritev_wrapper)
1409         llgfr   %r2,%r2                 # unsigned long
1410         llgtr   %r3,%r3                 # compat_iovec *
1411         llgfr   %r4,%r4                 # unsigned long
1412         llgfr   %r5,%r5                 # u32
1413         llgfr   %r6,%r6                 # u32
1414         jg      compat_sys_pwritev      # branch to system call
1416 ENTRY(sys_perf_event_open_wrapper)
1417         llgtr   %r2,%r2                 # const struct perf_event_attr *
1418         lgfr    %r3,%r3                 # pid_t
1419         lgfr    %r4,%r4                 # int
1420         lgfr    %r5,%r5                 # int
1421         llgfr   %r6,%r6                 # unsigned long
1422         jg      sys_perf_event_open     # branch to system call
1424 ENTRY(sys_clone_wrapper)
1425         llgfr   %r2,%r2                 # unsigned long
1426         llgfr   %r3,%r3                 # unsigned long
1427         llgtr   %r4,%r4                 # int *
1428         llgtr   %r5,%r5                 # int *
1429         jg      sys_clone               # branch to system call
1431 ENTRY(sys32_execve_wrapper)
1432         llgtr   %r2,%r2                 # char *
1433         llgtr   %r3,%r3                 # compat_uptr_t *
1434         llgtr   %r4,%r4                 # compat_uptr_t *
1435         jg      compat_sys_execve       # branch to system call
1437 ENTRY(sys_fanotify_init_wrapper)
1438         llgfr   %r2,%r2                 # unsigned int
1439         llgfr   %r3,%r3                 # unsigned int
1440         jg      sys_fanotify_init       # branch to system call
1442 ENTRY(sys_fanotify_mark_wrapper)
1443         lgfr    %r2,%r2                 # int
1444         llgfr   %r3,%r3                 # unsigned int
1445         sllg    %r4,%r4,32              # get high word of 64bit mask
1446         lr      %r4,%r5                 # get low word of 64bit mask
1447         llgfr   %r5,%r6                 # unsigned int
1448         llgt    %r6,164(%r15)           # char *
1449         jg      sys_fanotify_mark       # branch to system call
1451 ENTRY(sys_prlimit64_wrapper)
1452         lgfr    %r2,%r2                 # pid_t
1453         llgfr   %r3,%r3                 # unsigned int
1454         llgtr   %r4,%r4                 # const struct rlimit64 __user *
1455         llgtr   %r5,%r5                 # struct rlimit64 __user *
1456         jg      sys_prlimit64           # branch to system call
1458 ENTRY(sys_name_to_handle_at_wrapper)
1459         lgfr    %r2,%r2                 # int
1460         llgtr   %r3,%r3                 # const char __user *
1461         llgtr   %r4,%r4                 # struct file_handle __user *
1462         llgtr   %r5,%r5                 # int __user *
1463         lgfr    %r6,%r6                 # int
1464         jg      sys_name_to_handle_at
1466 ENTRY(compat_sys_clock_adjtime_wrapper)
1467         lgfr    %r2,%r2                 # clockid_t (int)
1468         llgtr   %r3,%r3                 # struct compat_timex __user *
1469         jg      compat_sys_clock_adjtime
1471 ENTRY(sys_syncfs_wrapper)
1472         lgfr    %r2,%r2                 # int
1473         jg      sys_syncfs
1475 ENTRY(sys_setns_wrapper)
1476         lgfr    %r2,%r2                 # int
1477         lgfr    %r3,%r3                 # int
1478         jg      sys_setns
1480 ENTRY(compat_sys_process_vm_readv_wrapper)
1481         lgfr    %r2,%r2                 # compat_pid_t
1482         llgtr   %r3,%r3                 # struct compat_iovec __user *
1483         llgfr   %r4,%r4                 # unsigned long
1484         llgtr   %r5,%r5                 # struct compat_iovec __user *
1485         llgfr   %r6,%r6                 # unsigned long
1486         llgf    %r0,164(%r15)           # unsigned long
1487         stg     %r0,160(%r15)
1488         jg      compat_sys_process_vm_readv
1490 ENTRY(compat_sys_process_vm_writev_wrapper)
1491         lgfr    %r2,%r2                 # compat_pid_t
1492         llgtr   %r3,%r3                 # struct compat_iovec __user *
1493         llgfr   %r4,%r4                 # unsigned long
1494         llgtr   %r5,%r5                 # struct compat_iovec __user *
1495         llgfr   %r6,%r6                 # unsigned long
1496         llgf    %r0,164(%r15)           # unsigned long
1497         stg     %r0,160(%r15)
1498         jg      compat_sys_process_vm_writev
1500 ENTRY(sys_s390_runtime_instr_wrapper)
1501         lgfr    %r2,%r2                 # int
1502         lgfr    %r3,%r3                 # int
1503         jg      sys_s390_runtime_instr
1505 ENTRY(sys_kcmp_wrapper)
1506         lgfr    %r2,%r2                 # pid_t
1507         lgfr    %r3,%r3                 # pid_t
1508         lgfr    %r4,%r4                 # int
1509         llgfr   %r5,%r5                 # unsigned long
1510         llgfr   %r6,%r6                 # unsigned long
1511         jg      sys_kcmp
1513 ENTRY(sys_finit_module_wrapper)
1514         lgfr    %r2,%r2                 # int
1515         llgtr   %r3,%r3                 # const char __user *
1516         lgfr    %r4,%r4                 # int
1517         jg      sys_finit_module