Root/arch/s390/kernel/compat_wrapper.S

1/*
2* arch/s390/kernel/compat_wrapper.S
3* wrapper for 31 bit compatible system calls.
4*
5* Copyright (C) IBM Corp. 2000,2006
6* Author(s): Gerhard Tonn (ton@de.ibm.com),
7* Thomas Spatzier (tspat@de.ibm.com)
8*/
9
10    .globl sys32_exit_wrapper
11sys32_exit_wrapper:
12    lgfr %r2,%r2 # int
13    jg sys_exit # branch to sys_exit
14
15    .globl sys32_read_wrapper
16sys32_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
21
22    .globl sys32_write_wrapper
23sys32_write_wrapper:
24    llgfr %r2,%r2 # unsigned int
25    llgtr %r3,%r3 # const char *
26    llgfr %r4,%r4 # size_t
27    jg sys32_write # branch to system call
28
29    .globl sys32_open_wrapper
30sys32_open_wrapper:
31    llgtr %r2,%r2 # const char *
32    lgfr %r3,%r3 # int
33    lgfr %r4,%r4 # int
34    jg sys_open # branch to system call
35
36    .globl sys32_close_wrapper
37sys32_close_wrapper:
38    llgfr %r2,%r2 # unsigned int
39    jg sys_close # branch to system call
40
41    .globl sys32_creat_wrapper
42sys32_creat_wrapper:
43    llgtr %r2,%r2 # const char *
44    lgfr %r3,%r3 # int
45    jg sys_creat # branch to system call
46
47    .globl sys32_link_wrapper
48sys32_link_wrapper:
49    llgtr %r2,%r2 # const char *
50    llgtr %r3,%r3 # const char *
51    jg sys_link # branch to system call
52
53    .globl sys32_unlink_wrapper
54sys32_unlink_wrapper:
55    llgtr %r2,%r2 # const char *
56    jg sys_unlink # branch to system call
57
58    .globl sys32_chdir_wrapper
59sys32_chdir_wrapper:
60    llgtr %r2,%r2 # const char *
61    jg sys_chdir # branch to system call
62
63    .globl sys32_time_wrapper
64sys32_time_wrapper:
65    llgtr %r2,%r2 # int *
66    jg compat_sys_time # branch to system call
67
68    .globl sys32_mknod_wrapper
69sys32_mknod_wrapper:
70    llgtr %r2,%r2 # const char *
71    lgfr %r3,%r3 # int
72    llgfr %r4,%r4 # dev
73    jg sys_mknod # branch to system call
74
75    .globl sys32_chmod_wrapper
76sys32_chmod_wrapper:
77    llgtr %r2,%r2 # const char *
78    llgfr %r3,%r3 # mode_t
79    jg sys_chmod # branch to system call
80
81    .globl sys32_lchown16_wrapper
82sys32_lchown16_wrapper:
83    llgtr %r2,%r2 # const char *
84    llgfr %r3,%r3 # __kernel_old_uid_emu31_t
85    llgfr %r4,%r4 # __kernel_old_uid_emu31_t
86    jg sys32_lchown16 # branch to system call
87
88    .globl sys32_lseek_wrapper
89sys32_lseek_wrapper:
90    llgfr %r2,%r2 # unsigned int
91    lgfr %r3,%r3 # off_t
92    llgfr %r4,%r4 # unsigned int
93    jg sys_lseek # branch to system call
94
95#sys32_getpid_wrapper # void
96
97    .globl sys32_mount_wrapper
98sys32_mount_wrapper:
99    llgtr %r2,%r2 # char *
100    llgtr %r3,%r3 # char *
101    llgtr %r4,%r4 # char *
102    llgfr %r5,%r5 # unsigned long
103    llgtr %r6,%r6 # void *
104    jg compat_sys_mount # branch to system call
105
106    .globl sys32_oldumount_wrapper
107sys32_oldumount_wrapper:
108    llgtr %r2,%r2 # char *
109    jg sys_oldumount # branch to system call
110
111    .globl sys32_setuid16_wrapper
112sys32_setuid16_wrapper:
113    llgfr %r2,%r2 # __kernel_old_uid_emu31_t
114    jg sys32_setuid16 # branch to system call
115
116#sys32_getuid16_wrapper # void
117
118    .globl sys32_ptrace_wrapper
119sys32_ptrace_wrapper:
120    lgfr %r2,%r2 # long
121    lgfr %r3,%r3 # long
122    llgtr %r4,%r4 # long
123    llgfr %r5,%r5 # long
124    jg compat_sys_ptrace # branch to system call
125
126    .globl sys32_alarm_wrapper
127sys32_alarm_wrapper:
128    llgfr %r2,%r2 # unsigned int
129    jg sys_alarm # branch to system call
130
131    .globl compat_sys_utime_wrapper
132compat_sys_utime_wrapper:
133    llgtr %r2,%r2 # char *
134    llgtr %r3,%r3 # struct compat_utimbuf *
135    jg compat_sys_utime # branch to system call
136
137    .globl sys32_access_wrapper
138sys32_access_wrapper:
139    llgtr %r2,%r2 # const char *
140    lgfr %r3,%r3 # int
141    jg sys_access # branch to system call
142
143    .globl sys32_nice_wrapper
144sys32_nice_wrapper:
145    lgfr %r2,%r2 # int
146    jg sys_nice # branch to system call
147
148#sys32_sync_wrapper # void
149
150    .globl sys32_kill_wrapper
151sys32_kill_wrapper:
152    lgfr %r2,%r2 # int
153    lgfr %r3,%r3 # int
154    jg sys_kill # branch to system call
155
156    .globl sys32_rename_wrapper
157sys32_rename_wrapper:
158    llgtr %r2,%r2 # const char *
159    llgtr %r3,%r3 # const char *
160    jg sys_rename # branch to system call
161
162    .globl sys32_mkdir_wrapper
163sys32_mkdir_wrapper:
164    llgtr %r2,%r2 # const char *
165    lgfr %r3,%r3 # int
166    jg sys_mkdir # branch to system call
167
168    .globl sys32_rmdir_wrapper
169sys32_rmdir_wrapper:
170    llgtr %r2,%r2 # const char *
171    jg sys_rmdir # branch to system call
172
173    .globl sys32_dup_wrapper
174sys32_dup_wrapper:
175    llgfr %r2,%r2 # unsigned int
176    jg sys_dup # branch to system call
177
178    .globl sys32_pipe_wrapper
179sys32_pipe_wrapper:
180    llgtr %r2,%r2 # u32 *
181    jg sys_pipe # branch to system call
182
183    .globl compat_sys_times_wrapper
184compat_sys_times_wrapper:
185    llgtr %r2,%r2 # struct compat_tms *
186    jg compat_sys_times # branch to system call
187
188    .globl sys32_brk_wrapper
189sys32_brk_wrapper:
190    llgtr %r2,%r2 # unsigned long
191    jg sys_brk # branch to system call
192
193    .globl sys32_setgid16_wrapper
194sys32_setgid16_wrapper:
195    llgfr %r2,%r2 # __kernel_old_gid_emu31_t
196    jg sys32_setgid16 # branch to system call
197
198#sys32_getgid16_wrapper # void
199
200    .globl sys32_signal_wrapper
201sys32_signal_wrapper:
202    lgfr %r2,%r2 # int
203    llgtr %r3,%r3 # __sighandler_t
204    jg sys_signal
205
206#sys32_geteuid16_wrapper # void
207
208#sys32_getegid16_wrapper # void
209
210    .globl sys32_acct_wrapper
211sys32_acct_wrapper:
212    llgtr %r2,%r2 # char *
213    jg sys_acct # branch to system call
214
215    .globl sys32_umount_wrapper
216sys32_umount_wrapper:
217    llgtr %r2,%r2 # char *
218    lgfr %r3,%r3 # int
219    jg sys_umount # branch to system call
220
221    .globl compat_sys_ioctl_wrapper
222compat_sys_ioctl_wrapper:
223    llgfr %r2,%r2 # unsigned int
224    llgfr %r3,%r3 # unsigned int
225    llgfr %r4,%r4 # unsigned int
226    jg compat_sys_ioctl # branch to system call
227
228    .globl compat_sys_fcntl_wrapper
229compat_sys_fcntl_wrapper:
230    llgfr %r2,%r2 # unsigned int
231    llgfr %r3,%r3 # unsigned int
232    llgfr %r4,%r4 # unsigned long
233    jg compat_sys_fcntl # branch to system call
234
235    .globl sys32_setpgid_wrapper
236sys32_setpgid_wrapper:
237    lgfr %r2,%r2 # pid_t
238    lgfr %r3,%r3 # pid_t
239    jg sys_setpgid # branch to system call
240
241    .globl sys32_umask_wrapper
242sys32_umask_wrapper:
243    lgfr %r2,%r2 # int
244    jg sys_umask # branch to system call
245
246    .globl sys32_chroot_wrapper
247sys32_chroot_wrapper:
248    llgtr %r2,%r2 # char *
249    jg sys_chroot # branch to system call
250
251    .globl sys32_ustat_wrapper
252sys32_ustat_wrapper:
253    llgfr %r2,%r2 # dev_t
254    llgtr %r3,%r3 # struct ustat *
255    jg compat_sys_ustat
256
257    .globl sys32_dup2_wrapper
258sys32_dup2_wrapper:
259    llgfr %r2,%r2 # unsigned int
260    llgfr %r3,%r3 # unsigned int
261    jg sys_dup2 # branch to system call
262
263#sys32_getppid_wrapper # void
264
265#sys32_getpgrp_wrapper # void
266
267#sys32_setsid_wrapper # void
268
269    .globl sys32_sigaction_wrapper
270sys32_sigaction_wrapper:
271    lgfr %r2,%r2 # int
272    llgtr %r3,%r3 # const struct old_sigaction *
273    llgtr %r4,%r4 # struct old_sigaction32 *
274    jg sys32_sigaction # branch to system call
275
276    .globl sys32_setreuid16_wrapper
277sys32_setreuid16_wrapper:
278    llgfr %r2,%r2 # __kernel_old_uid_emu31_t
279    llgfr %r3,%r3 # __kernel_old_uid_emu31_t
280    jg sys32_setreuid16 # branch to system call
281
282    .globl sys32_setregid16_wrapper
283sys32_setregid16_wrapper:
284    llgfr %r2,%r2 # __kernel_old_gid_emu31_t
285    llgfr %r3,%r3 # __kernel_old_gid_emu31_t
286    jg sys32_setregid16 # branch to system call
287
288    .globl sys_sigsuspend_wrapper
289sys_sigsuspend_wrapper:
290    lgfr %r2,%r2 # int
291    lgfr %r3,%r3 # int
292    llgfr %r4,%r4 # old_sigset_t
293    jg sys_sigsuspend
294
295    .globl compat_sys_sigpending_wrapper
296compat_sys_sigpending_wrapper:
297    llgtr %r2,%r2 # compat_old_sigset_t *
298    jg compat_sys_sigpending # branch to system call
299
300    .globl sys32_sethostname_wrapper
301sys32_sethostname_wrapper:
302    llgtr %r2,%r2 # char *
303    lgfr %r3,%r3 # int
304    jg sys_sethostname # branch to system call
305
306    .globl compat_sys_setrlimit_wrapper
307compat_sys_setrlimit_wrapper:
308    llgfr %r2,%r2 # unsigned int
309    llgtr %r3,%r3 # struct rlimit_emu31 *
310    jg compat_sys_setrlimit # branch to system call
311
312    .globl compat_sys_old_getrlimit_wrapper
313compat_sys_old_getrlimit_wrapper:
314    llgfr %r2,%r2 # unsigned int
315    llgtr %r3,%r3 # struct rlimit_emu31 *
316    jg compat_sys_old_getrlimit # branch to system call
317
318    .globl compat_sys_getrlimit_wrapper
319compat_sys_getrlimit_wrapper:
320    llgfr %r2,%r2 # unsigned int
321    llgtr %r3,%r3 # struct rlimit_emu31 *
322    jg compat_sys_getrlimit # branch to system call
323
324    .globl sys32_mmap2_wrapper
325sys32_mmap2_wrapper:
326    llgtr %r2,%r2 # struct mmap_arg_struct_emu31 *
327    jg sys32_mmap2 # branch to system call
328
329    .globl compat_sys_getrusage_wrapper
330compat_sys_getrusage_wrapper:
331    lgfr %r2,%r2 # int
332    llgtr %r3,%r3 # struct rusage_emu31 *
333    jg compat_sys_getrusage # branch to system call
334
335    .globl compat_sys_gettimeofday_wrapper
336compat_sys_gettimeofday_wrapper:
337    llgtr %r2,%r2 # struct timeval_emu31 *
338    llgtr %r3,%r3 # struct timezone *
339    jg compat_sys_gettimeofday # branch to system call
340
341    .globl compat_sys_settimeofday_wrapper
342compat_sys_settimeofday_wrapper:
343    llgtr %r2,%r2 # struct timeval_emu31 *
344    llgtr %r3,%r3 # struct timezone *
345    jg compat_sys_settimeofday # branch to system call
346
347    .globl sys32_getgroups16_wrapper
348sys32_getgroups16_wrapper:
349    lgfr %r2,%r2 # int
350    llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
351    jg sys32_getgroups16 # branch to system call
352
353    .globl sys32_setgroups16_wrapper
354sys32_setgroups16_wrapper:
355    lgfr %r2,%r2 # int
356    llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
357    jg sys32_setgroups16 # branch to system call
358
359    .globl sys32_symlink_wrapper
360sys32_symlink_wrapper:
361    llgtr %r2,%r2 # const char *
362    llgtr %r3,%r3 # const char *
363    jg sys_symlink # branch to system call
364
365    .globl sys32_readlink_wrapper
366sys32_readlink_wrapper:
367    llgtr %r2,%r2 # const char *
368    llgtr %r3,%r3 # char *
369    lgfr %r4,%r4 # int
370    jg sys_readlink # branch to system call
371
372    .globl sys32_uselib_wrapper
373sys32_uselib_wrapper:
374    llgtr %r2,%r2 # const char *
375    jg sys_uselib # branch to system call
376
377    .globl sys32_swapon_wrapper
378sys32_swapon_wrapper:
379    llgtr %r2,%r2 # const char *
380    lgfr %r3,%r3 # int
381    jg sys_swapon # branch to system call
382
383    .globl sys32_reboot_wrapper
384sys32_reboot_wrapper:
385    lgfr %r2,%r2 # int
386    lgfr %r3,%r3 # int
387    llgfr %r4,%r4 # unsigned int
388    llgtr %r5,%r5 # void *
389    jg sys_reboot # branch to system call
390
391    .globl old32_readdir_wrapper
392old32_readdir_wrapper:
393    llgfr %r2,%r2 # unsigned int
394    llgtr %r3,%r3 # void *
395    llgfr %r4,%r4 # unsigned int
396    jg compat_sys_old_readdir # branch to system call
397
398    .globl old32_mmap_wrapper
399old32_mmap_wrapper:
400    llgtr %r2,%r2 # struct mmap_arg_struct_emu31 *
401    jg old32_mmap # branch to system call
402
403    .globl sys32_munmap_wrapper
404sys32_munmap_wrapper:
405    llgfr %r2,%r2 # unsigned long
406    llgfr %r3,%r3 # size_t
407    jg sys_munmap # branch to system call
408
409    .globl sys32_truncate_wrapper
410sys32_truncate_wrapper:
411    llgtr %r2,%r2 # const char *
412    lgfr %r3,%r3 # long
413    jg sys_truncate # branch to system call
414
415    .globl sys32_ftruncate_wrapper
416sys32_ftruncate_wrapper:
417    llgfr %r2,%r2 # unsigned int
418    llgfr %r3,%r3 # unsigned long
419    jg sys_ftruncate # branch to system call
420
421    .globl sys32_fchmod_wrapper
422sys32_fchmod_wrapper:
423    llgfr %r2,%r2 # unsigned int
424    llgfr %r3,%r3 # mode_t
425    jg sys_fchmod # branch to system call
426
427    .globl sys32_fchown16_wrapper
428sys32_fchown16_wrapper:
429    llgfr %r2,%r2 # unsigned int
430    llgfr %r3,%r3 # compat_uid_t
431    llgfr %r4,%r4 # compat_uid_t
432    jg sys32_fchown16 # branch to system call
433
434    .globl sys32_getpriority_wrapper
435sys32_getpriority_wrapper:
436    lgfr %r2,%r2 # int
437    lgfr %r3,%r3 # int
438    jg sys_getpriority # branch to system call
439
440    .globl sys32_setpriority_wrapper
441sys32_setpriority_wrapper:
442    lgfr %r2,%r2 # int
443    lgfr %r3,%r3 # int
444    lgfr %r4,%r4 # int
445    jg sys_setpriority # branch to system call
446
447    .globl compat_sys_statfs_wrapper
448compat_sys_statfs_wrapper:
449    llgtr %r2,%r2 # char *
450    llgtr %r3,%r3 # struct compat_statfs *
451    jg compat_sys_statfs # branch to system call
452
453    .globl compat_sys_fstatfs_wrapper
454compat_sys_fstatfs_wrapper:
455    llgfr %r2,%r2 # unsigned int
456    llgtr %r3,%r3 # struct compat_statfs *
457    jg compat_sys_fstatfs # branch to system call
458
459    .globl compat_sys_socketcall_wrapper
460compat_sys_socketcall_wrapper:
461    lgfr %r2,%r2 # int
462    llgtr %r3,%r3 # u32 *
463    jg compat_sys_socketcall # branch to system call
464
465    .globl sys32_syslog_wrapper
466sys32_syslog_wrapper:
467    lgfr %r2,%r2 # int
468    llgtr %r3,%r3 # char *
469    lgfr %r4,%r4 # int
470    jg sys_syslog # branch to system call
471
472    .globl compat_sys_setitimer_wrapper
473compat_sys_setitimer_wrapper:
474    lgfr %r2,%r2 # int
475    llgtr %r3,%r3 # struct itimerval_emu31 *
476    llgtr %r4,%r4 # struct itimerval_emu31 *
477    jg compat_sys_setitimer # branch to system call
478
479    .globl compat_sys_getitimer_wrapper
480compat_sys_getitimer_wrapper:
481    lgfr %r2,%r2 # int
482    llgtr %r3,%r3 # struct itimerval_emu31 *
483    jg compat_sys_getitimer # branch to system call
484
485    .globl compat_sys_newstat_wrapper
486compat_sys_newstat_wrapper:
487    llgtr %r2,%r2 # char *
488    llgtr %r3,%r3 # struct stat_emu31 *
489    jg compat_sys_newstat # branch to system call
490
491    .globl compat_sys_newlstat_wrapper
492compat_sys_newlstat_wrapper:
493    llgtr %r2,%r2 # char *
494    llgtr %r3,%r3 # struct stat_emu31 *
495    jg compat_sys_newlstat # branch to system call
496
497    .globl compat_sys_newfstat_wrapper
498compat_sys_newfstat_wrapper:
499    llgfr %r2,%r2 # unsigned int
500    llgtr %r3,%r3 # struct stat_emu31 *
501    jg compat_sys_newfstat # branch to system call
502
503#sys32_vhangup_wrapper # void
504
505    .globl compat_sys_wait4_wrapper
506compat_sys_wait4_wrapper:
507    lgfr %r2,%r2 # pid_t
508    llgtr %r3,%r3 # unsigned int *
509    lgfr %r4,%r4 # int
510    llgtr %r5,%r5 # struct rusage *
511    jg compat_sys_wait4 # branch to system call
512
513    .globl sys32_swapoff_wrapper
514sys32_swapoff_wrapper:
515    llgtr %r2,%r2 # const char *
516    jg sys_swapoff # branch to system call
517
518    .globl compat_sys_sysinfo_wrapper
519compat_sys_sysinfo_wrapper:
520    llgtr %r2,%r2 # struct sysinfo_emu31 *
521    jg compat_sys_sysinfo # branch to system call
522
523    .globl sys32_ipc_wrapper
524sys32_ipc_wrapper:
525    llgfr %r2,%r2 # uint
526    lgfr %r3,%r3 # int
527    lgfr %r4,%r4 # int
528    lgfr %r5,%r5 # int
529    llgfr %r6,%r6 # u32
530    jg sys32_ipc # branch to system call
531
532    .globl sys32_fsync_wrapper
533sys32_fsync_wrapper:
534    llgfr %r2,%r2 # unsigned int
535    jg sys_fsync # branch to system call
536
537#sys32_sigreturn_wrapper # done in sigreturn_glue
538
539#sys32_clone_wrapper # done in clone_glue
540
541    .globl sys32_setdomainname_wrapper
542sys32_setdomainname_wrapper:
543    llgtr %r2,%r2 # char *
544    lgfr %r3,%r3 # int
545    jg sys_setdomainname # branch to system call
546
547    .globl sys32_newuname_wrapper
548sys32_newuname_wrapper:
549    llgtr %r2,%r2 # struct new_utsname *
550    jg sys_newuname # branch to system call
551
552    .globl compat_sys_adjtimex_wrapper
553compat_sys_adjtimex_wrapper:
554    llgtr %r2,%r2 # struct compat_timex *
555    jg compat_sys_adjtimex # branch to system call
556
557    .globl sys32_mprotect_wrapper
558sys32_mprotect_wrapper:
559    llgtr %r2,%r2 # unsigned long (actually pointer
560    llgfr %r3,%r3 # size_t
561    llgfr %r4,%r4 # unsigned long
562    jg sys_mprotect # branch to system call
563
564    .globl compat_sys_sigprocmask_wrapper
565compat_sys_sigprocmask_wrapper:
566    lgfr %r2,%r2 # int
567    llgtr %r3,%r3 # compat_old_sigset_t *
568    llgtr %r4,%r4 # compat_old_sigset_t *
569    jg compat_sys_sigprocmask # branch to system call
570
571    .globl sys_init_module_wrapper
572sys_init_module_wrapper:
573    llgtr %r2,%r2 # void *
574    llgfr %r3,%r3 # unsigned long
575    llgtr %r4,%r4 # char *
576    jg sys_init_module # branch to system call
577
578    .globl sys_delete_module_wrapper
579sys_delete_module_wrapper:
580    llgtr %r2,%r2 # const char *
581    llgfr %r3,%r3 # unsigned int
582    jg sys_delete_module # branch to system call
583
584    .globl sys32_quotactl_wrapper
585sys32_quotactl_wrapper:
586    llgfr %r2,%r2 # unsigned int
587    llgtr %r3,%r3 # const char *
588    llgfr %r4,%r4 # qid_t
589    llgtr %r5,%r5 # caddr_t
590    jg sys_quotactl # branch to system call
591
592    .globl sys32_getpgid_wrapper
593sys32_getpgid_wrapper:
594    lgfr %r2,%r2 # pid_t
595    jg sys_getpgid # branch to system call
596
597    .globl sys32_fchdir_wrapper
598sys32_fchdir_wrapper:
599    llgfr %r2,%r2 # unsigned int
600    jg sys_fchdir # branch to system call
601
602    .globl sys32_bdflush_wrapper
603sys32_bdflush_wrapper:
604    lgfr %r2,%r2 # int
605    lgfr %r3,%r3 # long
606    jg sys_bdflush # branch to system call
607
608    .globl sys32_sysfs_wrapper
609sys32_sysfs_wrapper:
610    lgfr %r2,%r2 # int
611    llgfr %r3,%r3 # unsigned long
612    llgfr %r4,%r4 # unsigned long
613    jg sys_sysfs # branch to system call
614
615    .globl sys32_personality_wrapper
616sys32_personality_wrapper:
617    llgfr %r2,%r2 # unsigned int
618    jg sys_s390_personality # branch to system call
619
620    .globl sys32_setfsuid16_wrapper
621sys32_setfsuid16_wrapper:
622    llgfr %r2,%r2 # __kernel_old_uid_emu31_t
623    jg sys32_setfsuid16 # branch to system call
624
625    .globl sys32_setfsgid16_wrapper
626sys32_setfsgid16_wrapper:
627    llgfr %r2,%r2 # __kernel_old_gid_emu31_t
628    jg sys32_setfsgid16 # branch to system call
629
630    .globl sys32_llseek_wrapper
631sys32_llseek_wrapper:
632    llgfr %r2,%r2 # unsigned int
633    llgfr %r3,%r3 # unsigned long
634    llgfr %r4,%r4 # unsigned long
635    llgtr %r5,%r5 # loff_t *
636    llgfr %r6,%r6 # unsigned int
637    jg sys_llseek # branch to system call
638
639    .globl sys32_getdents_wrapper
640sys32_getdents_wrapper:
641    llgfr %r2,%r2 # unsigned int
642    llgtr %r3,%r3 # void *
643    llgfr %r4,%r4 # unsigned int
644    jg compat_sys_getdents # branch to system call
645
646    .globl compat_sys_select_wrapper
647compat_sys_select_wrapper:
648    lgfr %r2,%r2 # int
649    llgtr %r3,%r3 # compat_fd_set *
650    llgtr %r4,%r4 # compat_fd_set *
651    llgtr %r5,%r5 # compat_fd_set *
652    llgtr %r6,%r6 # struct compat_timeval *
653    jg compat_sys_select # branch to system call
654
655    .globl sys32_flock_wrapper
656sys32_flock_wrapper:
657    llgfr %r2,%r2 # unsigned int
658    llgfr %r3,%r3 # unsigned int
659    jg sys_flock # branch to system call
660
661    .globl sys32_msync_wrapper
662sys32_msync_wrapper:
663    llgfr %r2,%r2 # unsigned long
664    llgfr %r3,%r3 # size_t
665    lgfr %r4,%r4 # int
666    jg sys_msync # branch to system call
667
668    .globl compat_sys_readv_wrapper
669compat_sys_readv_wrapper:
670    lgfr %r2,%r2 # int
671    llgtr %r3,%r3 # const struct compat_iovec *
672    llgfr %r4,%r4 # unsigned long
673    jg compat_sys_readv # branch to system call
674
675    .globl compat_sys_writev_wrapper
676compat_sys_writev_wrapper:
677    lgfr %r2,%r2 # int
678    llgtr %r3,%r3 # const struct compat_iovec *
679    llgfr %r4,%r4 # unsigned long
680    jg compat_sys_writev # branch to system call
681
682    .globl sys32_getsid_wrapper
683sys32_getsid_wrapper:
684    lgfr %r2,%r2 # pid_t
685    jg sys_getsid # branch to system call
686
687    .globl sys32_fdatasync_wrapper
688sys32_fdatasync_wrapper:
689    llgfr %r2,%r2 # unsigned int
690    jg sys_fdatasync # branch to system call
691
692    .globl sys32_mlock_wrapper
693sys32_mlock_wrapper:
694    llgfr %r2,%r2 # unsigned long
695    llgfr %r3,%r3 # size_t
696    jg sys_mlock # branch to system call
697
698    .globl sys32_munlock_wrapper
699sys32_munlock_wrapper:
700    llgfr %r2,%r2 # unsigned long
701    llgfr %r3,%r3 # size_t
702    jg sys_munlock # branch to system call
703
704    .globl sys32_mlockall_wrapper
705sys32_mlockall_wrapper:
706    lgfr %r2,%r2 # int
707    jg sys_mlockall # branch to system call
708
709#sys32_munlockall_wrapper # void
710
711    .globl sys32_sched_setparam_wrapper
712sys32_sched_setparam_wrapper:
713    lgfr %r2,%r2 # pid_t
714    llgtr %r3,%r3 # struct sched_param *
715    jg sys_sched_setparam # branch to system call
716
717    .globl sys32_sched_getparam_wrapper
718sys32_sched_getparam_wrapper:
719    lgfr %r2,%r2 # pid_t
720    llgtr %r3,%r3 # struct sched_param *
721    jg sys_sched_getparam # branch to system call
722
723    .globl sys32_sched_setscheduler_wrapper
724sys32_sched_setscheduler_wrapper:
725    lgfr %r2,%r2 # pid_t
726    lgfr %r3,%r3 # int
727    llgtr %r4,%r4 # struct sched_param *
728    jg sys_sched_setscheduler # branch to system call
729
730    .globl sys32_sched_getscheduler_wrapper
731sys32_sched_getscheduler_wrapper:
732    lgfr %r2,%r2 # pid_t
733    jg sys_sched_getscheduler # branch to system call
734
735#sys32_sched_yield_wrapper # void
736
737    .globl sys32_sched_get_priority_max_wrapper
738sys32_sched_get_priority_max_wrapper:
739    lgfr %r2,%r2 # int
740    jg sys_sched_get_priority_max # branch to system call
741
742    .globl sys32_sched_get_priority_min_wrapper
743sys32_sched_get_priority_min_wrapper:
744    lgfr %r2,%r2 # int
745    jg sys_sched_get_priority_min # branch to system call
746
747    .globl sys32_sched_rr_get_interval_wrapper
748sys32_sched_rr_get_interval_wrapper:
749    lgfr %r2,%r2 # pid_t
750    llgtr %r3,%r3 # struct compat_timespec *
751    jg sys32_sched_rr_get_interval # branch to system call
752
753    .globl compat_sys_nanosleep_wrapper
754compat_sys_nanosleep_wrapper:
755    llgtr %r2,%r2 # struct compat_timespec *
756    llgtr %r3,%r3 # struct compat_timespec *
757    jg compat_sys_nanosleep # branch to system call
758
759    .globl sys32_mremap_wrapper
760sys32_mremap_wrapper:
761    llgfr %r2,%r2 # unsigned long
762    llgfr %r3,%r3 # unsigned long
763    llgfr %r4,%r4 # unsigned long
764    llgfr %r5,%r5 # unsigned long
765    llgfr %r6,%r6 # unsigned long
766    jg sys_mremap # branch to system call
767
768    .globl sys32_setresuid16_wrapper
769sys32_setresuid16_wrapper:
770    llgfr %r2,%r2 # __kernel_old_uid_emu31_t
771    llgfr %r3,%r3 # __kernel_old_uid_emu31_t
772    llgfr %r4,%r4 # __kernel_old_uid_emu31_t
773    jg sys32_setresuid16 # branch to system call
774
775    .globl sys32_getresuid16_wrapper
776sys32_getresuid16_wrapper:
777    llgtr %r2,%r2 # __kernel_old_uid_emu31_t *
778    llgtr %r3,%r3 # __kernel_old_uid_emu31_t *
779    llgtr %r4,%r4 # __kernel_old_uid_emu31_t *
780    jg sys32_getresuid16 # branch to system call
781
782    .globl sys32_poll_wrapper
783sys32_poll_wrapper:
784    llgtr %r2,%r2 # struct pollfd *
785    llgfr %r3,%r3 # unsigned int
786    lgfr %r4,%r4 # long
787    jg sys_poll # branch to system call
788
789    .globl compat_sys_nfsservctl_wrapper
790compat_sys_nfsservctl_wrapper:
791    lgfr %r2,%r2 # int
792    llgtr %r3,%r3 # struct compat_nfsctl_arg*
793    llgtr %r4,%r4 # union compat_nfsctl_res*
794    jg compat_sys_nfsservctl # branch to system call
795
796    .globl sys32_setresgid16_wrapper
797sys32_setresgid16_wrapper:
798    llgfr %r2,%r2 # __kernel_old_gid_emu31_t
799    llgfr %r3,%r3 # __kernel_old_gid_emu31_t
800    llgfr %r4,%r4 # __kernel_old_gid_emu31_t
801    jg sys32_setresgid16 # branch to system call
802
803    .globl sys32_getresgid16_wrapper
804sys32_getresgid16_wrapper:
805    llgtr %r2,%r2 # __kernel_old_gid_emu31_t *
806    llgtr %r3,%r3 # __kernel_old_gid_emu31_t *
807    llgtr %r4,%r4 # __kernel_old_gid_emu31_t *
808    jg sys32_getresgid16 # branch to system call
809
810    .globl sys32_prctl_wrapper
811sys32_prctl_wrapper:
812    lgfr %r2,%r2 # int
813    llgfr %r3,%r3 # unsigned long
814    llgfr %r4,%r4 # unsigned long
815    llgfr %r5,%r5 # unsigned long
816    llgfr %r6,%r6 # unsigned long
817    jg sys_prctl # branch to system call
818
819#sys32_rt_sigreturn_wrapper # done in rt_sigreturn_glue
820
821    .globl sys32_rt_sigaction_wrapper
822sys32_rt_sigaction_wrapper:
823    lgfr %r2,%r2 # int
824    llgtr %r3,%r3 # const struct sigaction_emu31 *
825    llgtr %r4,%r4 # const struct sigaction_emu31 *
826    llgfr %r5,%r5 # size_t
827    jg sys32_rt_sigaction # branch to system call
828
829    .globl sys32_rt_sigprocmask_wrapper
830sys32_rt_sigprocmask_wrapper:
831    lgfr %r2,%r2 # int
832    llgtr %r3,%r3 # old_sigset_emu31 *
833    llgtr %r4,%r4 # old_sigset_emu31 *
834    llgfr %r5,%r5 # size_t
835    jg sys32_rt_sigprocmask # branch to system call
836
837    .globl sys32_rt_sigpending_wrapper
838sys32_rt_sigpending_wrapper:
839    llgtr %r2,%r2 # sigset_emu31 *
840    llgfr %r3,%r3 # size_t
841    jg sys32_rt_sigpending # branch to system call
842
843    .globl compat_sys_rt_sigtimedwait_wrapper
844compat_sys_rt_sigtimedwait_wrapper:
845    llgtr %r2,%r2 # const sigset_emu31_t *
846    llgtr %r3,%r3 # siginfo_emu31_t *
847    llgtr %r4,%r4 # const struct compat_timespec *
848    llgfr %r5,%r5 # size_t
849    jg compat_sys_rt_sigtimedwait # branch to system call
850
851    .globl sys32_rt_sigqueueinfo_wrapper
852sys32_rt_sigqueueinfo_wrapper:
853    lgfr %r2,%r2 # int
854    lgfr %r3,%r3 # int
855    llgtr %r4,%r4 # siginfo_emu31_t *
856    jg sys32_rt_sigqueueinfo # branch to system call
857
858    .globl compat_sys_rt_sigsuspend_wrapper
859compat_sys_rt_sigsuspend_wrapper:
860    llgtr %r2,%r2 # compat_sigset_t *
861    llgfr %r3,%r3 # compat_size_t
862    jg compat_sys_rt_sigsuspend
863
864    .globl sys32_pread64_wrapper
865sys32_pread64_wrapper:
866    llgfr %r2,%r2 # unsigned int
867    llgtr %r3,%r3 # char *
868    llgfr %r4,%r4 # size_t
869    llgfr %r5,%r5 # u32
870    llgfr %r6,%r6 # u32
871    jg sys32_pread64 # branch to system call
872
873    .globl sys32_pwrite64_wrapper
874sys32_pwrite64_wrapper:
875    llgfr %r2,%r2 # unsigned int
876    llgtr %r3,%r3 # const char *
877    llgfr %r4,%r4 # size_t
878    llgfr %r5,%r5 # u32
879    llgfr %r6,%r6 # u32
880    jg sys32_pwrite64 # branch to system call
881
882    .globl sys32_chown16_wrapper
883sys32_chown16_wrapper:
884    llgtr %r2,%r2 # const char *
885    llgfr %r3,%r3 # __kernel_old_uid_emu31_t
886    llgfr %r4,%r4 # __kernel_old_gid_emu31_t
887    jg sys32_chown16 # branch to system call
888
889    .globl sys32_getcwd_wrapper
890sys32_getcwd_wrapper:
891    llgtr %r2,%r2 # char *
892    llgfr %r3,%r3 # unsigned long
893    jg sys_getcwd # branch to system call
894
895    .globl sys32_capget_wrapper
896sys32_capget_wrapper:
897    llgtr %r2,%r2 # cap_user_header_t
898    llgtr %r3,%r3 # cap_user_data_t
899    jg sys_capget # branch to system call
900
901    .globl sys32_capset_wrapper
902sys32_capset_wrapper:
903    llgtr %r2,%r2 # cap_user_header_t
904    llgtr %r3,%r3 # const cap_user_data_t
905    jg sys_capset # branch to system call
906
907    .globl sys32_sigaltstack_wrapper
908sys32_sigaltstack_wrapper:
909    llgtr %r2,%r2 # const stack_emu31_t *
910    llgtr %r3,%r3 # stack_emu31_t *
911    jg sys32_sigaltstack
912
913    .globl sys32_sendfile_wrapper
914sys32_sendfile_wrapper:
915    lgfr %r2,%r2 # int
916    lgfr %r3,%r3 # int
917    llgtr %r4,%r4 # __kernel_off_emu31_t *
918    llgfr %r5,%r5 # size_t
919    jg sys32_sendfile # branch to system call
920
921#sys32_vfork_wrapper # done in vfork_glue
922
923    .globl sys32_truncate64_wrapper
924sys32_truncate64_wrapper:
925    llgtr %r2,%r2 # const char *
926    llgfr %r3,%r3 # unsigned long
927    llgfr %r4,%r4 # unsigned long
928    jg sys32_truncate64 # branch to system call
929
930    .globl sys32_ftruncate64_wrapper
931sys32_ftruncate64_wrapper:
932    llgfr %r2,%r2 # unsigned int
933    llgfr %r3,%r3 # unsigned long
934    llgfr %r4,%r4 # unsigned long
935    jg sys32_ftruncate64 # branch to system call
936
937    .globl sys32_lchown_wrapper
938sys32_lchown_wrapper:
939    llgtr %r2,%r2 # const char *
940    llgfr %r3,%r3 # uid_t
941    llgfr %r4,%r4 # gid_t
942    jg sys_lchown # branch to system call
943
944#sys32_getuid_wrapper # void
945#sys32_getgid_wrapper # void
946#sys32_geteuid_wrapper # void
947#sys32_getegid_wrapper # void
948
949    .globl sys32_setreuid_wrapper
950sys32_setreuid_wrapper:
951    llgfr %r2,%r2 # uid_t
952    llgfr %r3,%r3 # uid_t
953    jg sys_setreuid # branch to system call
954
955    .globl sys32_setregid_wrapper
956sys32_setregid_wrapper:
957    llgfr %r2,%r2 # gid_t
958    llgfr %r3,%r3 # gid_t
959    jg sys_setregid # branch to system call
960
961    .globl sys32_getgroups_wrapper
962sys32_getgroups_wrapper:
963    lgfr %r2,%r2 # int
964    llgtr %r3,%r3 # gid_t *
965    jg sys_getgroups # branch to system call
966
967    .globl sys32_setgroups_wrapper
968sys32_setgroups_wrapper:
969    lgfr %r2,%r2 # int
970    llgtr %r3,%r3 # gid_t *
971    jg sys_setgroups # branch to system call
972
973    .globl sys32_fchown_wrapper
974sys32_fchown_wrapper:
975    llgfr %r2,%r2 # unsigned int
976    llgfr %r3,%r3 # uid_t
977    llgfr %r4,%r4 # gid_t
978    jg sys_fchown # branch to system call
979
980    .globl sys32_setresuid_wrapper
981sys32_setresuid_wrapper:
982    llgfr %r2,%r2 # uid_t
983    llgfr %r3,%r3 # uid_t
984    llgfr %r4,%r4 # uid_t
985    jg sys_setresuid # branch to system call
986
987    .globl sys32_getresuid_wrapper
988sys32_getresuid_wrapper:
989    llgtr %r2,%r2 # uid_t *
990    llgtr %r3,%r3 # uid_t *
991    llgtr %r4,%r4 # uid_t *
992    jg sys_getresuid # branch to system call
993
994    .globl sys32_setresgid_wrapper
995sys32_setresgid_wrapper:
996    llgfr %r2,%r2 # gid_t
997    llgfr %r3,%r3 # gid_t
998    llgfr %r4,%r4 # gid_t
999    jg sys_setresgid # branch to system call
1000
1001    .globl sys32_getresgid_wrapper
1002sys32_getresgid_wrapper:
1003    llgtr %r2,%r2 # gid_t *
1004    llgtr %r3,%r3 # gid_t *
1005    llgtr %r4,%r4 # gid_t *
1006    jg sys_getresgid # branch to system call
1007
1008    .globl sys32_chown_wrapper
1009sys32_chown_wrapper:
1010    llgtr %r2,%r2 # const char *
1011    llgfr %r3,%r3 # uid_t
1012    llgfr %r4,%r4 # gid_t
1013    jg sys_chown # branch to system call
1014
1015    .globl sys32_setuid_wrapper
1016sys32_setuid_wrapper:
1017    llgfr %r2,%r2 # uid_t
1018    jg sys_setuid # branch to system call
1019
1020    .globl sys32_setgid_wrapper
1021sys32_setgid_wrapper:
1022    llgfr %r2,%r2 # gid_t
1023    jg sys_setgid # branch to system call
1024
1025    .globl sys32_setfsuid_wrapper
1026sys32_setfsuid_wrapper:
1027    llgfr %r2,%r2 # uid_t
1028    jg sys_setfsuid # branch to system call
1029
1030    .globl sys32_setfsgid_wrapper
1031sys32_setfsgid_wrapper:
1032    llgfr %r2,%r2 # gid_t
1033    jg sys_setfsgid # branch to system call
1034
1035    .globl sys32_pivot_root_wrapper
1036sys32_pivot_root_wrapper:
1037    llgtr %r2,%r2 # const char *
1038    llgtr %r3,%r3 # const char *
1039    jg sys_pivot_root # branch to system call
1040
1041    .globl sys32_mincore_wrapper
1042sys32_mincore_wrapper:
1043    llgfr %r2,%r2 # unsigned long
1044    llgfr %r3,%r3 # size_t
1045    llgtr %r4,%r4 # unsigned char *
1046    jg sys_mincore # branch to system call
1047
1048    .globl sys32_madvise_wrapper
1049sys32_madvise_wrapper:
1050    llgfr %r2,%r2 # unsigned long
1051    llgfr %r3,%r3 # size_t
1052    lgfr %r4,%r4 # int
1053    jg sys_madvise # branch to system call
1054
1055    .globl sys32_getdents64_wrapper
1056sys32_getdents64_wrapper:
1057    llgfr %r2,%r2 # unsigned int
1058    llgtr %r3,%r3 # void *
1059    llgfr %r4,%r4 # unsigned int
1060    jg sys_getdents64 # branch to system call
1061
1062    .globl compat_sys_fcntl64_wrapper
1063compat_sys_fcntl64_wrapper:
1064    llgfr %r2,%r2 # unsigned int
1065    llgfr %r3,%r3 # unsigned int
1066    llgfr %r4,%r4 # unsigned long
1067    jg compat_sys_fcntl64 # branch to system call
1068
1069    .globl sys32_stat64_wrapper
1070sys32_stat64_wrapper:
1071    llgtr %r2,%r2 # char *
1072    llgtr %r3,%r3 # struct stat64 *
1073    jg sys32_stat64 # branch to system call
1074
1075    .globl sys32_lstat64_wrapper
1076sys32_lstat64_wrapper:
1077    llgtr %r2,%r2 # char *
1078    llgtr %r3,%r3 # struct stat64 *
1079    jg sys32_lstat64 # branch to system call
1080
1081    .globl sys32_stime_wrapper
1082sys32_stime_wrapper:
1083    llgtr %r2,%r2 # long *
1084    jg compat_sys_stime # branch to system call
1085
1086    .globl sys32_sysctl_wrapper
1087sys32_sysctl_wrapper:
1088    llgtr %r2,%r2 # struct compat_sysctl_args *
1089    jg compat_sys_sysctl
1090
1091    .globl sys32_fstat64_wrapper
1092sys32_fstat64_wrapper:
1093    llgfr %r2,%r2 # unsigned long
1094    llgtr %r3,%r3 # struct stat64 *
1095    jg sys32_fstat64 # branch to system call
1096
1097    .globl compat_sys_futex_wrapper
1098compat_sys_futex_wrapper:
1099    llgtr %r2,%r2 # u32 *
1100    lgfr %r3,%r3 # int
1101    lgfr %r4,%r4 # int
1102    llgtr %r5,%r5 # struct compat_timespec *
1103    llgtr %r6,%r6 # u32 *
1104    lgf %r0,164(%r15) # int
1105    stg %r0,160(%r15)
1106    jg compat_sys_futex # branch to system call
1107
1108    .globl sys32_setxattr_wrapper
1109sys32_setxattr_wrapper:
1110    llgtr %r2,%r2 # char *
1111    llgtr %r3,%r3 # char *
1112    llgtr %r4,%r4 # void *
1113    llgfr %r5,%r5 # size_t
1114    lgfr %r6,%r6 # int
1115    jg sys_setxattr
1116
1117    .globl sys32_lsetxattr_wrapper
1118sys32_lsetxattr_wrapper:
1119    llgtr %r2,%r2 # char *
1120    llgtr %r3,%r3 # char *
1121    llgtr %r4,%r4 # void *
1122    llgfr %r5,%r5 # size_t
1123    lgfr %r6,%r6 # int
1124    jg sys_lsetxattr
1125
1126    .globl sys32_fsetxattr_wrapper
1127sys32_fsetxattr_wrapper:
1128    lgfr %r2,%r2 # int
1129    llgtr %r3,%r3 # char *
1130    llgtr %r4,%r4 # void *
1131    llgfr %r5,%r5 # size_t
1132    lgfr %r6,%r6 # int
1133    jg sys_fsetxattr
1134
1135    .globl sys32_getxattr_wrapper
1136sys32_getxattr_wrapper:
1137    llgtr %r2,%r2 # char *
1138    llgtr %r3,%r3 # char *
1139    llgtr %r4,%r4 # void *
1140    llgfr %r5,%r5 # size_t
1141    jg sys_getxattr
1142
1143    .globl sys32_lgetxattr_wrapper
1144sys32_lgetxattr_wrapper:
1145    llgtr %r2,%r2 # char *
1146    llgtr %r3,%r3 # char *
1147    llgtr %r4,%r4 # void *
1148    llgfr %r5,%r5 # size_t
1149    jg sys_lgetxattr
1150
1151    .globl sys32_fgetxattr_wrapper
1152sys32_fgetxattr_wrapper:
1153    lgfr %r2,%r2 # int
1154    llgtr %r3,%r3 # char *
1155    llgtr %r4,%r4 # void *
1156    llgfr %r5,%r5 # size_t
1157    jg sys_fgetxattr
1158
1159    .globl sys32_listxattr_wrapper
1160sys32_listxattr_wrapper:
1161    llgtr %r2,%r2 # char *
1162    llgtr %r3,%r3 # char *
1163    llgfr %r4,%r4 # size_t
1164    jg sys_listxattr
1165
1166    .globl sys32_llistxattr_wrapper
1167sys32_llistxattr_wrapper:
1168    llgtr %r2,%r2 # char *
1169    llgtr %r3,%r3 # char *
1170    llgfr %r4,%r4 # size_t
1171    jg sys_llistxattr
1172
1173    .globl sys32_flistxattr_wrapper
1174sys32_flistxattr_wrapper:
1175    lgfr %r2,%r2 # int
1176    llgtr %r3,%r3 # char *
1177    llgfr %r4,%r4 # size_t
1178    jg sys_flistxattr
1179
1180    .globl sys32_removexattr_wrapper
1181sys32_removexattr_wrapper:
1182    llgtr %r2,%r2 # char *
1183    llgtr %r3,%r3 # char *
1184    jg sys_removexattr
1185
1186    .globl sys32_lremovexattr_wrapper
1187sys32_lremovexattr_wrapper:
1188    llgtr %r2,%r2 # char *
1189    llgtr %r3,%r3 # char *
1190    jg sys_lremovexattr
1191
1192    .globl sys32_fremovexattr_wrapper
1193sys32_fremovexattr_wrapper:
1194    lgfr %r2,%r2 # int
1195    llgtr %r3,%r3 # char *
1196    jg sys_fremovexattr
1197
1198    .globl sys32_sched_setaffinity_wrapper
1199sys32_sched_setaffinity_wrapper:
1200    lgfr %r2,%r2 # int
1201    llgfr %r3,%r3 # unsigned int
1202    llgtr %r4,%r4 # unsigned long *
1203    jg compat_sys_sched_setaffinity
1204
1205    .globl sys32_sched_getaffinity_wrapper
1206sys32_sched_getaffinity_wrapper:
1207    lgfr %r2,%r2 # int
1208    llgfr %r3,%r3 # unsigned int
1209    llgtr %r4,%r4 # unsigned long *
1210    jg compat_sys_sched_getaffinity
1211
1212    .globl sys32_exit_group_wrapper
1213sys32_exit_group_wrapper:
1214    lgfr %r2,%r2 # int
1215    jg sys_exit_group # branch to system call
1216
1217    .globl sys32_set_tid_address_wrapper
1218sys32_set_tid_address_wrapper:
1219    llgtr %r2,%r2 # int *
1220    jg sys_set_tid_address # branch to system call
1221
1222    .globl sys_epoll_create_wrapper
1223sys_epoll_create_wrapper:
1224    lgfr %r2,%r2 # int
1225    jg sys_epoll_create # branch to system call
1226
1227    .globl sys_epoll_ctl_wrapper
1228sys_epoll_ctl_wrapper:
1229    lgfr %r2,%r2 # int
1230    lgfr %r3,%r3 # int
1231    lgfr %r4,%r4 # int
1232    llgtr %r5,%r5 # struct epoll_event *
1233    jg sys_epoll_ctl # branch to system call
1234
1235    .globl sys_epoll_wait_wrapper
1236sys_epoll_wait_wrapper:
1237    lgfr %r2,%r2 # int
1238    llgtr %r3,%r3 # struct epoll_event *
1239    lgfr %r4,%r4 # int
1240    lgfr %r5,%r5 # int
1241    jg sys_epoll_wait # branch to system call
1242
1243    .globl sys32_lookup_dcookie_wrapper
1244sys32_lookup_dcookie_wrapper:
1245    sllg %r2,%r2,32 # get high word of 64bit dcookie
1246    or %r2,%r3 # get low word of 64bit dcookie
1247    llgtr %r3,%r4 # char *
1248    llgfr %r4,%r5 # size_t
1249    jg sys_lookup_dcookie
1250
1251    .globl sys32_fadvise64_wrapper
1252sys32_fadvise64_wrapper:
1253    lgfr %r2,%r2 # int
1254    sllg %r3,%r3,32 # get high word of 64bit loff_t
1255    or %r3,%r4 # get low word of 64bit loff_t
1256    llgfr %r4,%r5 # size_t (unsigned long)
1257    lgfr %r5,%r6 # int
1258    jg sys32_fadvise64
1259
1260    .globl sys32_fadvise64_64_wrapper
1261sys32_fadvise64_64_wrapper:
1262    llgtr %r2,%r2 # struct fadvise64_64_args *
1263    jg sys32_fadvise64_64
1264
1265    .globl sys32_clock_settime_wrapper
1266sys32_clock_settime_wrapper:
1267    lgfr %r2,%r2 # clockid_t (int)
1268    llgtr %r3,%r3 # struct compat_timespec *
1269    jg compat_sys_clock_settime
1270
1271    .globl sys32_clock_gettime_wrapper
1272sys32_clock_gettime_wrapper:
1273    lgfr %r2,%r2 # clockid_t (int)
1274    llgtr %r3,%r3 # struct compat_timespec *
1275    jg compat_sys_clock_gettime
1276
1277    .globl sys32_clock_getres_wrapper
1278sys32_clock_getres_wrapper:
1279    lgfr %r2,%r2 # clockid_t (int)
1280    llgtr %r3,%r3 # struct compat_timespec *
1281    jg compat_sys_clock_getres
1282
1283    .globl sys32_clock_nanosleep_wrapper
1284sys32_clock_nanosleep_wrapper:
1285    lgfr %r2,%r2 # clockid_t (int)
1286    lgfr %r3,%r3 # int
1287    llgtr %r4,%r4 # struct compat_timespec *
1288    llgtr %r5,%r5 # struct compat_timespec *
1289    jg compat_sys_clock_nanosleep
1290
1291    .globl sys32_timer_create_wrapper
1292sys32_timer_create_wrapper:
1293    lgfr %r2,%r2 # timer_t (int)
1294    llgtr %r3,%r3 # struct compat_sigevent *
1295    llgtr %r4,%r4 # timer_t *
1296    jg compat_sys_timer_create
1297
1298    .globl sys32_timer_settime_wrapper
1299sys32_timer_settime_wrapper:
1300    lgfr %r2,%r2 # timer_t (int)
1301    lgfr %r3,%r3 # int
1302    llgtr %r4,%r4 # struct compat_itimerspec *
1303    llgtr %r5,%r5 # struct compat_itimerspec *
1304    jg compat_sys_timer_settime
1305
1306    .globl sys32_timer_gettime_wrapper
1307sys32_timer_gettime_wrapper:
1308    lgfr %r2,%r2 # timer_t (int)
1309    llgtr %r3,%r3 # struct compat_itimerspec *
1310    jg compat_sys_timer_gettime
1311
1312    .globl sys32_timer_getoverrun_wrapper
1313sys32_timer_getoverrun_wrapper:
1314    lgfr %r2,%r2 # timer_t (int)
1315    jg sys_timer_getoverrun
1316
1317    .globl sys32_timer_delete_wrapper
1318sys32_timer_delete_wrapper:
1319    lgfr %r2,%r2 # timer_t (int)
1320    jg sys_timer_delete
1321
1322    .globl sys32_io_setup_wrapper
1323sys32_io_setup_wrapper:
1324    llgfr %r2,%r2 # unsigned int
1325    llgtr %r3,%r3 # u32 *
1326    jg compat_sys_io_setup
1327
1328    .globl sys32_io_destroy_wrapper
1329sys32_io_destroy_wrapper:
1330    llgfr %r2,%r2 # (aio_context_t) u32
1331    jg sys_io_destroy
1332
1333    .globl sys32_io_getevents_wrapper
1334sys32_io_getevents_wrapper:
1335    llgfr %r2,%r2 # (aio_context_t) u32
1336    lgfr %r3,%r3 # long
1337    lgfr %r4,%r4 # long
1338    llgtr %r5,%r5 # struct io_event *
1339    llgtr %r6,%r6 # struct compat_timespec *
1340    jg compat_sys_io_getevents
1341
1342    .globl sys32_io_submit_wrapper
1343sys32_io_submit_wrapper:
1344    llgfr %r2,%r2 # (aio_context_t) u32
1345    lgfr %r3,%r3 # long
1346    llgtr %r4,%r4 # struct iocb **
1347    jg compat_sys_io_submit
1348
1349    .globl sys32_io_cancel_wrapper
1350sys32_io_cancel_wrapper:
1351    llgfr %r2,%r2 # (aio_context_t) u32
1352    llgtr %r3,%r3 # struct iocb *
1353    llgtr %r4,%r4 # struct io_event *
1354    jg sys_io_cancel
1355
1356    .globl compat_sys_statfs64_wrapper
1357compat_sys_statfs64_wrapper:
1358    llgtr %r2,%r2 # const char *
1359    llgfr %r3,%r3 # compat_size_t
1360    llgtr %r4,%r4 # struct compat_statfs64 *
1361    jg compat_sys_statfs64
1362
1363    .globl compat_sys_fstatfs64_wrapper
1364compat_sys_fstatfs64_wrapper:
1365    llgfr %r2,%r2 # unsigned int fd
1366    llgfr %r3,%r3 # compat_size_t
1367    llgtr %r4,%r4 # struct compat_statfs64 *
1368    jg compat_sys_fstatfs64
1369
1370    .globl compat_sys_mq_open_wrapper
1371compat_sys_mq_open_wrapper:
1372    llgtr %r2,%r2 # const char *
1373    lgfr %r3,%r3 # int
1374    llgfr %r4,%r4 # mode_t
1375    llgtr %r5,%r5 # struct compat_mq_attr *
1376    jg compat_sys_mq_open
1377
1378    .globl sys32_mq_unlink_wrapper
1379sys32_mq_unlink_wrapper:
1380    llgtr %r2,%r2 # const char *
1381    jg sys_mq_unlink
1382
1383    .globl compat_sys_mq_timedsend_wrapper
1384compat_sys_mq_timedsend_wrapper:
1385    lgfr %r2,%r2 # mqd_t
1386    llgtr %r3,%r3 # const char *
1387    llgfr %r4,%r4 # size_t
1388    llgfr %r5,%r5 # unsigned int
1389    llgtr %r6,%r6 # const struct compat_timespec *
1390    jg compat_sys_mq_timedsend
1391
1392    .globl compat_sys_mq_timedreceive_wrapper
1393compat_sys_mq_timedreceive_wrapper:
1394    lgfr %r2,%r2 # mqd_t
1395    llgtr %r3,%r3 # char *
1396    llgfr %r4,%r4 # size_t
1397    llgtr %r5,%r5 # unsigned int *
1398    llgtr %r6,%r6 # const struct compat_timespec *
1399    jg compat_sys_mq_timedreceive
1400
1401    .globl compat_sys_mq_notify_wrapper
1402compat_sys_mq_notify_wrapper:
1403    lgfr %r2,%r2 # mqd_t
1404    llgtr %r3,%r3 # struct compat_sigevent *
1405    jg compat_sys_mq_notify
1406
1407    .globl compat_sys_mq_getsetattr_wrapper
1408compat_sys_mq_getsetattr_wrapper:
1409    lgfr %r2,%r2 # mqd_t
1410    llgtr %r3,%r3 # struct compat_mq_attr *
1411    llgtr %r4,%r4 # struct compat_mq_attr *
1412    jg compat_sys_mq_getsetattr
1413
1414    .globl compat_sys_add_key_wrapper
1415compat_sys_add_key_wrapper:
1416    llgtr %r2,%r2 # const char *
1417    llgtr %r3,%r3 # const char *
1418    llgtr %r4,%r4 # const void *
1419    llgfr %r5,%r5 # size_t
1420    llgfr %r6,%r6 # (key_serial_t) u32
1421    jg sys_add_key
1422
1423    .globl compat_sys_request_key_wrapper
1424compat_sys_request_key_wrapper:
1425    llgtr %r2,%r2 # const char *
1426    llgtr %r3,%r3 # const char *
1427    llgtr %r4,%r4 # const void *
1428    llgfr %r5,%r5 # (key_serial_t) u32
1429    jg sys_request_key
1430
1431    .globl sys32_remap_file_pages_wrapper
1432sys32_remap_file_pages_wrapper:
1433    llgfr %r2,%r2 # unsigned long
1434    llgfr %r3,%r3 # unsigned long
1435    llgfr %r4,%r4 # unsigned long
1436    llgfr %r5,%r5 # unsigned long
1437    llgfr %r6,%r6 # unsigned long
1438    jg sys_remap_file_pages
1439
1440    .globl compat_sys_waitid_wrapper
1441compat_sys_waitid_wrapper:
1442    lgfr %r2,%r2 # int
1443    lgfr %r3,%r3 # pid_t
1444    llgtr %r4,%r4 # siginfo_emu31_t *
1445    lgfr %r5,%r5 # int
1446    llgtr %r6,%r6 # struct rusage_emu31 *
1447    jg compat_sys_waitid
1448
1449    .globl compat_sys_kexec_load_wrapper
1450compat_sys_kexec_load_wrapper:
1451    llgfr %r2,%r2 # unsigned long
1452    llgfr %r3,%r3 # unsigned long
1453    llgtr %r4,%r4 # struct kexec_segment *
1454    llgfr %r5,%r5 # unsigned long
1455    jg compat_sys_kexec_load
1456
1457    .globl sys_ioprio_set_wrapper
1458sys_ioprio_set_wrapper:
1459    lgfr %r2,%r2 # int
1460    lgfr %r3,%r3 # int
1461    lgfr %r4,%r4 # int
1462    jg sys_ioprio_set
1463
1464    .globl sys_ioprio_get_wrapper
1465sys_ioprio_get_wrapper:
1466    lgfr %r2,%r2 # int
1467    lgfr %r3,%r3 # int
1468    jg sys_ioprio_get
1469
1470    .globl sys_inotify_add_watch_wrapper
1471sys_inotify_add_watch_wrapper:
1472    lgfr %r2,%r2 # int
1473    llgtr %r3,%r3 # const char *
1474    llgfr %r4,%r4 # u32
1475    jg sys_inotify_add_watch
1476
1477    .globl sys_inotify_rm_watch_wrapper
1478sys_inotify_rm_watch_wrapper:
1479    lgfr %r2,%r2 # int
1480    llgfr %r3,%r3 # u32
1481    jg sys_inotify_rm_watch
1482
1483    .globl compat_sys_openat_wrapper
1484compat_sys_openat_wrapper:
1485    llgfr %r2,%r2 # unsigned int
1486    llgtr %r3,%r3 # const char *
1487    lgfr %r4,%r4 # int
1488    lgfr %r5,%r5 # int
1489    jg compat_sys_openat
1490
1491    .globl sys_mkdirat_wrapper
1492sys_mkdirat_wrapper:
1493    lgfr %r2,%r2 # int
1494    llgtr %r3,%r3 # const char *
1495    lgfr %r4,%r4 # int
1496    jg sys_mkdirat
1497
1498    .globl sys_mknodat_wrapper
1499sys_mknodat_wrapper:
1500    lgfr %r2,%r2 # int
1501    llgtr %r3,%r3 # const char *
1502    lgfr %r4,%r4 # int
1503    llgfr %r5,%r5 # unsigned int
1504    jg sys_mknodat
1505
1506    .globl sys_fchownat_wrapper
1507sys_fchownat_wrapper:
1508    lgfr %r2,%r2 # int
1509    llgtr %r3,%r3 # const char *
1510    llgfr %r4,%r4 # uid_t
1511    llgfr %r5,%r5 # gid_t
1512    lgfr %r6,%r6 # int
1513    jg sys_fchownat
1514
1515    .globl compat_sys_futimesat_wrapper
1516compat_sys_futimesat_wrapper:
1517    llgfr %r2,%r2 # unsigned int
1518    llgtr %r3,%r3 # char *
1519    llgtr %r4,%r4 # struct timeval *
1520    jg compat_sys_futimesat
1521
1522    .globl sys32_fstatat64_wrapper
1523sys32_fstatat64_wrapper:
1524    llgfr %r2,%r2 # unsigned int
1525    llgtr %r3,%r3 # char *
1526    llgtr %r4,%r4 # struct stat64 *
1527    lgfr %r5,%r5 # int
1528    jg sys32_fstatat64
1529
1530    .globl sys_unlinkat_wrapper
1531sys_unlinkat_wrapper:
1532    lgfr %r2,%r2 # int
1533    llgtr %r3,%r3 # const char *
1534    lgfr %r4,%r4 # int
1535    jg sys_unlinkat
1536
1537    .globl sys_renameat_wrapper
1538sys_renameat_wrapper:
1539    lgfr %r2,%r2 # int
1540    llgtr %r3,%r3 # const char *
1541    lgfr %r4,%r4 # int
1542    llgtr %r5,%r5 # const char *
1543    jg sys_renameat
1544
1545    .globl sys_linkat_wrapper
1546sys_linkat_wrapper:
1547    lgfr %r2,%r2 # int
1548    llgtr %r3,%r3 # const char *
1549    lgfr %r4,%r4 # int
1550    llgtr %r5,%r5 # const char *
1551    lgfr %r6,%r6 # int
1552    jg sys_linkat
1553
1554    .globl sys_symlinkat_wrapper
1555sys_symlinkat_wrapper:
1556    llgtr %r2,%r2 # const char *
1557    lgfr %r3,%r3 # int
1558    llgtr %r4,%r4 # const char *
1559    jg sys_symlinkat
1560
1561    .globl sys_readlinkat_wrapper
1562sys_readlinkat_wrapper:
1563    lgfr %r2,%r2 # int
1564    llgtr %r3,%r3 # const char *
1565    llgtr %r4,%r4 # char *
1566    lgfr %r5,%r5 # int
1567    jg sys_readlinkat
1568
1569    .globl sys_fchmodat_wrapper
1570sys_fchmodat_wrapper:
1571    lgfr %r2,%r2 # int
1572    llgtr %r3,%r3 # const char *
1573    llgfr %r4,%r4 # mode_t
1574    jg sys_fchmodat
1575
1576    .globl sys_faccessat_wrapper
1577sys_faccessat_wrapper:
1578    lgfr %r2,%r2 # int
1579    llgtr %r3,%r3 # const char *
1580    lgfr %r4,%r4 # int
1581    jg sys_faccessat
1582
1583    .globl compat_sys_pselect6_wrapper
1584compat_sys_pselect6_wrapper:
1585    lgfr %r2,%r2 # int
1586    llgtr %r3,%r3 # fd_set *
1587    llgtr %r4,%r4 # fd_set *
1588    llgtr %r5,%r5 # fd_set *
1589    llgtr %r6,%r6 # struct timespec *
1590    llgt %r0,164(%r15) # void *
1591    stg %r0,160(%r15)
1592    jg compat_sys_pselect6
1593
1594    .globl compat_sys_ppoll_wrapper
1595compat_sys_ppoll_wrapper:
1596    llgtr %r2,%r2 # struct pollfd *
1597    llgfr %r3,%r3 # unsigned int
1598    llgtr %r4,%r4 # struct timespec *
1599    llgtr %r5,%r5 # const sigset_t *
1600    llgfr %r6,%r6 # size_t
1601    jg compat_sys_ppoll
1602
1603    .globl sys_unshare_wrapper
1604sys_unshare_wrapper:
1605    llgfr %r2,%r2 # unsigned long
1606    jg sys_unshare
1607
1608    .globl compat_sys_set_robust_list_wrapper
1609compat_sys_set_robust_list_wrapper:
1610    llgtr %r2,%r2 # struct compat_robust_list_head *
1611    llgfr %r3,%r3 # size_t
1612    jg compat_sys_set_robust_list
1613
1614    .globl compat_sys_get_robust_list_wrapper
1615compat_sys_get_robust_list_wrapper:
1616    lgfr %r2,%r2 # int
1617    llgtr %r3,%r3 # compat_uptr_t_t *
1618    llgtr %r4,%r4 # compat_size_t *
1619    jg compat_sys_get_robust_list
1620
1621    .globl sys_splice_wrapper
1622sys_splice_wrapper:
1623    lgfr %r2,%r2 # int
1624    llgtr %r3,%r3 # loff_t *
1625    lgfr %r4,%r4 # int
1626    llgtr %r5,%r5 # loff_t *
1627    llgfr %r6,%r6 # size_t
1628    llgf %r0,164(%r15) # unsigned int
1629    stg %r0,160(%r15)
1630    jg sys_splice
1631
1632    .globl sys_sync_file_range_wrapper
1633sys_sync_file_range_wrapper:
1634    lgfr %r2,%r2 # int
1635    sllg %r3,%r3,32 # get high word of 64bit loff_t
1636    or %r3,%r4 # get low word of 64bit loff_t
1637    sllg %r4,%r5,32 # get high word of 64bit loff_t
1638    or %r4,%r6 # get low word of 64bit loff_t
1639    llgf %r5,164(%r15) # unsigned int
1640    jg sys_sync_file_range
1641
1642    .globl sys_tee_wrapper
1643sys_tee_wrapper:
1644    lgfr %r2,%r2 # int
1645    lgfr %r3,%r3 # int
1646    llgfr %r4,%r4 # size_t
1647    llgfr %r5,%r5 # unsigned int
1648    jg sys_tee
1649
1650    .globl compat_sys_vmsplice_wrapper
1651compat_sys_vmsplice_wrapper:
1652    lgfr %r2,%r2 # int
1653    llgtr %r3,%r3 # compat_iovec *
1654    llgfr %r4,%r4 # unsigned int
1655    llgfr %r5,%r5 # unsigned int
1656    jg compat_sys_vmsplice
1657
1658    .globl sys_getcpu_wrapper
1659sys_getcpu_wrapper:
1660    llgtr %r2,%r2 # unsigned *
1661    llgtr %r3,%r3 # unsigned *
1662    llgtr %r4,%r4 # struct getcpu_cache *
1663    jg sys_getcpu
1664
1665    .globl compat_sys_epoll_pwait_wrapper
1666compat_sys_epoll_pwait_wrapper:
1667    lgfr %r2,%r2 # int
1668    llgtr %r3,%r3 # struct compat_epoll_event *
1669    lgfr %r4,%r4 # int
1670    lgfr %r5,%r5 # int
1671    llgtr %r6,%r6 # compat_sigset_t *
1672    llgf %r0,164(%r15) # compat_size_t
1673    stg %r0,160(%r15)
1674    jg compat_sys_epoll_pwait
1675
1676    .globl compat_sys_utimes_wrapper
1677compat_sys_utimes_wrapper:
1678    llgtr %r2,%r2 # char *
1679    llgtr %r3,%r3 # struct compat_timeval *
1680    jg compat_sys_utimes
1681
1682    .globl compat_sys_utimensat_wrapper
1683compat_sys_utimensat_wrapper:
1684    llgfr %r2,%r2 # unsigned int
1685    llgtr %r3,%r3 # char *
1686    llgtr %r4,%r4 # struct compat_timespec *
1687    lgfr %r5,%r5 # int
1688    jg compat_sys_utimensat
1689
1690    .globl compat_sys_signalfd_wrapper
1691compat_sys_signalfd_wrapper:
1692    lgfr %r2,%r2 # int
1693    llgtr %r3,%r3 # compat_sigset_t *
1694    llgfr %r4,%r4 # compat_size_t
1695    jg compat_sys_signalfd
1696
1697    .globl sys_eventfd_wrapper
1698sys_eventfd_wrapper:
1699    llgfr %r2,%r2 # unsigned int
1700    jg sys_eventfd
1701
1702    .globl sys_fallocate_wrapper
1703sys_fallocate_wrapper:
1704    lgfr %r2,%r2 # int
1705    lgfr %r3,%r3 # int
1706    sllg %r4,%r4,32 # get high word of 64bit loff_t
1707    lr %r4,%r5 # get low word of 64bit loff_t
1708    sllg %r5,%r6,32 # get high word of 64bit loff_t
1709    l %r5,164(%r15) # get low word of 64bit loff_t
1710    jg sys_fallocate
1711
1712    .globl sys_timerfd_create_wrapper
1713sys_timerfd_create_wrapper:
1714    lgfr %r2,%r2 # int
1715    lgfr %r3,%r3 # int
1716    jg sys_timerfd_create
1717
1718    .globl compat_sys_timerfd_settime_wrapper
1719compat_sys_timerfd_settime_wrapper:
1720    lgfr %r2,%r2 # int
1721    lgfr %r3,%r3 # int
1722    llgtr %r4,%r4 # struct compat_itimerspec *
1723    llgtr %r5,%r5 # struct compat_itimerspec *
1724    jg compat_sys_timerfd_settime
1725
1726    .globl compat_sys_timerfd_gettime_wrapper
1727compat_sys_timerfd_gettime_wrapper:
1728    lgfr %r2,%r2 # int
1729    llgtr %r3,%r3 # struct compat_itimerspec *
1730    jg compat_sys_timerfd_gettime
1731
1732    .globl compat_sys_signalfd4_wrapper
1733compat_sys_signalfd4_wrapper:
1734    lgfr %r2,%r2 # int
1735    llgtr %r3,%r3 # compat_sigset_t *
1736    llgfr %r4,%r4 # compat_size_t
1737    lgfr %r5,%r5 # int
1738    jg compat_sys_signalfd4
1739
1740    .globl sys_eventfd2_wrapper
1741sys_eventfd2_wrapper:
1742    llgfr %r2,%r2 # unsigned int
1743    lgfr %r3,%r3 # int
1744    jg sys_eventfd2
1745
1746    .globl sys_inotify_init1_wrapper
1747sys_inotify_init1_wrapper:
1748    lgfr %r2,%r2 # int
1749    jg sys_inotify_init1
1750
1751    .globl sys_pipe2_wrapper
1752sys_pipe2_wrapper:
1753    llgtr %r2,%r2 # u32 *
1754    lgfr %r3,%r3 # int
1755    jg sys_pipe2 # branch to system call
1756
1757    .globl sys_dup3_wrapper
1758sys_dup3_wrapper:
1759    llgfr %r2,%r2 # unsigned int
1760    llgfr %r3,%r3 # unsigned int
1761    lgfr %r4,%r4 # int
1762    jg sys_dup3 # branch to system call
1763
1764    .globl sys_epoll_create1_wrapper
1765sys_epoll_create1_wrapper:
1766    lgfr %r2,%r2 # int
1767    jg sys_epoll_create1 # branch to system call
1768
1769    .globl sys32_readahead_wrapper
1770sys32_readahead_wrapper:
1771    lgfr %r2,%r2 # int
1772    llgfr %r3,%r3 # u32
1773    llgfr %r4,%r4 # u32
1774    lgfr %r5,%r5 # s32
1775    jg sys32_readahead # branch to system call
1776
1777    .globl sys32_sendfile64_wrapper
1778sys32_sendfile64_wrapper:
1779    lgfr %r2,%r2 # int
1780    lgfr %r3,%r3 # int
1781    llgtr %r4,%r4 # compat_loff_t *
1782    lgfr %r5,%r5 # s32
1783    jg sys32_sendfile64 # branch to system call
1784
1785    .globl sys_tkill_wrapper
1786sys_tkill_wrapper:
1787    lgfr %r2,%r2 # pid_t
1788    lgfr %r3,%r3 # int
1789    jg sys_tkill # branch to system call
1790
1791    .globl sys_tgkill_wrapper
1792sys_tgkill_wrapper:
1793    lgfr %r2,%r2 # pid_t
1794    lgfr %r3,%r3 # pid_t
1795    lgfr %r4,%r4 # int
1796    jg sys_tgkill # branch to system call
1797
1798    .globl compat_sys_keyctl_wrapper
1799compat_sys_keyctl_wrapper:
1800    llgfr %r2,%r2 # u32
1801    llgfr %r3,%r3 # u32
1802    llgfr %r4,%r4 # u32
1803    llgfr %r5,%r5 # u32
1804    llgfr %r6,%r6 # u32
1805    jg compat_sys_keyctl # branch to system call
1806
1807    .globl compat_sys_preadv_wrapper
1808compat_sys_preadv_wrapper:
1809    llgfr %r2,%r2 # unsigned long
1810    llgtr %r3,%r3 # compat_iovec *
1811    llgfr %r4,%r4 # unsigned long
1812    llgfr %r5,%r5 # u32
1813    llgfr %r6,%r6 # u32
1814    jg compat_sys_preadv # branch to system call
1815
1816    .globl compat_sys_pwritev_wrapper
1817compat_sys_pwritev_wrapper:
1818    llgfr %r2,%r2 # unsigned long
1819    llgtr %r3,%r3 # compat_iovec *
1820    llgfr %r4,%r4 # unsigned long
1821    llgfr %r5,%r5 # u32
1822    llgfr %r6,%r6 # u32
1823    jg compat_sys_pwritev # branch to system call
1824
1825    .globl compat_sys_rt_tgsigqueueinfo_wrapper
1826compat_sys_rt_tgsigqueueinfo_wrapper:
1827    lgfr %r2,%r2 # compat_pid_t
1828    lgfr %r3,%r3 # compat_pid_t
1829    lgfr %r4,%r4 # int
1830    llgtr %r5,%r5 # struct compat_siginfo *
1831    jg compat_sys_rt_tgsigqueueinfo_wrapper # branch to system call
1832
1833    .globl sys_perf_event_open_wrapper
1834sys_perf_event_open_wrapper:
1835    llgtr %r2,%r2 # const struct perf_event_attr *
1836    lgfr %r3,%r3 # pid_t
1837    lgfr %r4,%r4 # int
1838    lgfr %r5,%r5 # int
1839    llgfr %r6,%r6 # unsigned long
1840    jg sys_perf_event_open # branch to system call
1841
1842    .globl sys_clone_wrapper
1843sys_clone_wrapper:
1844    llgfr %r2,%r2 # unsigned long
1845    llgfr %r3,%r3 # unsigned long
1846    llgtr %r4,%r4 # int *
1847    llgtr %r5,%r5 # int *
1848    jg sys_clone # branch to system call
1849
1850    .globl sys32_execve_wrapper
1851sys32_execve_wrapper:
1852    llgtr %r2,%r2 # char *
1853    llgtr %r3,%r3 # compat_uptr_t *
1854    llgtr %r4,%r4 # compat_uptr_t *
1855    jg sys32_execve # branch to system call
1856
1857    .globl sys_fanotify_init_wrapper
1858sys_fanotify_init_wrapper:
1859    llgfr %r2,%r2 # unsigned int
1860    llgfr %r3,%r3 # unsigned int
1861    jg sys_fanotify_init # branch to system call
1862
1863    .globl sys_fanotify_mark_wrapper
1864sys_fanotify_mark_wrapper:
1865    lgfr %r2,%r2 # int
1866    llgfr %r3,%r3 # unsigned int
1867    sllg %r4,%r4,32 # get high word of 64bit mask
1868    lr %r4,%r5 # get low word of 64bit mask
1869    llgfr %r5,%r6 # unsigned int
1870    llgt %r6,164(%r15) # char *
1871    jg sys_fanotify_mark # branch to system call
1872
1873    .globl sys_prlimit64_wrapper
1874sys_prlimit64_wrapper:
1875    lgfr %r2,%r2 # pid_t
1876    llgfr %r3,%r3 # unsigned int
1877    llgtr %r4,%r4 # const struct rlimit64 __user *
1878    llgtr %r5,%r5 # struct rlimit64 __user *
1879    jg sys_prlimit64 # branch to system call
1880

Archive Download this file



interactive