Merge ../torvalds-2.6/
[linux-2.6] / arch / s390 / kernel / compat_wrapper.S
1 /*
2 *  arch/s390/kernel/sys_wrapper31.S
3 *    wrapper for 31 bit compatible system calls.
4 *
5 *  S390 version
6 *    Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
7 *    Author(s): Gerhard Tonn (ton@de.ibm.com),
8 *               Thomas Spatzier (tspat@de.ibm.com)
9 */ 
10
11         .globl  sys32_exit_wrapper 
12 sys32_exit_wrapper:
13         lgfr    %r2,%r2                 # int
14         jg      sys_exit                # branch to sys_exit
15     
16         .globl  sys32_read_wrapper 
17 sys32_read_wrapper:
18         llgfr   %r2,%r2                 # unsigned int
19         llgtr   %r3,%r3                 # char *
20         llgfr   %r4,%r4                 # size_t
21         jg      sys32_read              # branch to sys_read
22
23         .globl  sys32_write_wrapper 
24 sys32_write_wrapper:
25         llgfr   %r2,%r2                 # unsigned int
26         llgtr   %r3,%r3                 # const char *
27         llgfr   %r4,%r4                 # size_t
28         jg      sys32_write             # branch to system call
29
30         .globl  sys32_open_wrapper 
31 sys32_open_wrapper:
32         llgtr   %r2,%r2                 # const char *
33         lgfr    %r3,%r3                 # int
34         lgfr    %r4,%r4                 # int
35         jg      sys_open                # branch to system call
36
37         .globl  sys32_close_wrapper 
38 sys32_close_wrapper:
39         llgfr   %r2,%r2                 # unsigned int
40         jg      sys_close               # branch to system call
41
42         .globl  sys32_creat_wrapper 
43 sys32_creat_wrapper:
44         llgtr   %r2,%r2                 # const char *
45         lgfr    %r3,%r3                 # int
46         jg      sys_creat               # branch to system call
47
48         .globl  sys32_link_wrapper 
49 sys32_link_wrapper:
50         llgtr   %r2,%r2                 # const char *
51         llgtr   %r3,%r3                 # const char *
52         jg      sys_link                # branch to system call
53
54         .globl  sys32_unlink_wrapper 
55 sys32_unlink_wrapper:
56         llgtr   %r2,%r2                 # const char *
57         jg      sys_unlink              # branch to system call
58
59         .globl  sys32_chdir_wrapper 
60 sys32_chdir_wrapper:
61         llgtr   %r2,%r2                 # const char *
62         jg      sys_chdir               # branch to system call
63
64         .globl  sys32_time_wrapper 
65 sys32_time_wrapper:
66         llgtr   %r2,%r2                 # int *
67         jg      compat_sys_time         # branch to system call
68
69         .globl  sys32_mknod_wrapper 
70 sys32_mknod_wrapper:
71         llgtr   %r2,%r2                 # const char *
72         lgfr    %r3,%r3                 # int 
73         llgfr   %r4,%r4                 # dev
74         jg      sys_mknod               # branch to system call
75
76         .globl  sys32_chmod_wrapper 
77 sys32_chmod_wrapper:
78         llgtr   %r2,%r2                 # const char *
79         llgfr   %r3,%r3                 # mode_t
80         jg      sys_chmod               # branch to system call
81
82         .globl  sys32_lchown16_wrapper 
83 sys32_lchown16_wrapper:
84         llgtr   %r2,%r2                 # const char *
85         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t 
86         llgfr   %r4,%r4                 # __kernel_old_uid_emu31_t 
87         jg      sys32_lchown16          # branch to system call
88
89         .globl  sys32_lseek_wrapper 
90 sys32_lseek_wrapper:
91         llgfr   %r2,%r2                 # unsigned int
92         lgfr    %r3,%r3                 # off_t
93         llgfr   %r4,%r4                 # unsigned int
94         jg      sys_lseek               # branch to system call
95
96 #sys32_getpid_wrapper                           # void 
97
98         .globl  sys32_mount_wrapper 
99 sys32_mount_wrapper:
100         llgtr   %r2,%r2                 # char *
101         llgtr   %r3,%r3                 # char *
102         llgtr   %r4,%r4                 # char *
103         llgfr   %r5,%r5                 # unsigned long
104         llgtr   %r6,%r6                 # void *
105         jg      compat_sys_mount        # branch to system call
106
107         .globl  sys32_oldumount_wrapper 
108 sys32_oldumount_wrapper:
109         llgtr   %r2,%r2                 # char *
110         jg      sys_oldumount           # branch to system call
111
112         .globl  sys32_setuid16_wrapper 
113 sys32_setuid16_wrapper:
114         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t 
115         jg      sys32_setuid16          # branch to system call
116
117 #sys32_getuid16_wrapper                 # void 
118
119         .globl  sys32_ptrace_wrapper 
120 sys32_ptrace_wrapper:
121         lgfr    %r2,%r2                 # long
122         lgfr    %r3,%r3                 # long
123         llgtr   %r4,%r4                 # long
124         llgfr   %r5,%r5                 # long
125         jg      sys_ptrace              # branch to system call
126
127         .globl  sys32_alarm_wrapper 
128 sys32_alarm_wrapper:
129         llgfr   %r2,%r2                 # unsigned int
130         jg      sys_alarm               # branch to system call
131
132 #sys32_pause_wrapper                    # void 
133
134         .globl  compat_sys_utime_wrapper 
135 compat_sys_utime_wrapper:
136         llgtr   %r2,%r2                 # char *
137         llgtr   %r3,%r3                 # struct compat_utimbuf *
138         jg      compat_sys_utime        # branch to system call
139
140         .globl  sys32_access_wrapper 
141 sys32_access_wrapper:
142         llgtr   %r2,%r2                 # const char *
143         lgfr    %r3,%r3                 # int
144         jg      sys_access              # branch to system call
145
146         .globl  sys32_nice_wrapper 
147 sys32_nice_wrapper:
148         lgfr    %r2,%r2                 # int
149         jg      sys_nice                # branch to system call
150
151 #sys32_sync_wrapper                     # void 
152
153         .globl  sys32_kill_wrapper 
154 sys32_kill_wrapper:
155         lgfr    %r2,%r2                 # int
156         lgfr    %r3,%r3                 # int
157         jg      sys_kill                # branch to system call
158
159         .globl  sys32_rename_wrapper 
160 sys32_rename_wrapper:
161         llgtr   %r2,%r2                 # const char *
162         llgtr   %r3,%r3                 # const char *
163         jg      sys_rename              # branch to system call
164
165         .globl  sys32_mkdir_wrapper 
166 sys32_mkdir_wrapper:
167         llgtr   %r2,%r2                 # const char *
168         lgfr    %r3,%r3                 # int
169         jg      sys_mkdir               # branch to system call
170
171         .globl  sys32_rmdir_wrapper 
172 sys32_rmdir_wrapper:
173         llgtr   %r2,%r2                 # const char *
174         jg      sys_rmdir               # branch to system call
175
176         .globl  sys32_dup_wrapper 
177 sys32_dup_wrapper:
178         llgfr   %r2,%r2                 # unsigned int
179         jg      sys_dup                 # branch to system call
180
181         .globl  sys32_pipe_wrapper 
182 sys32_pipe_wrapper:
183         llgtr   %r2,%r2                 # u32 *
184         jg      sys_pipe                # branch to system call
185
186         .globl  compat_sys_times_wrapper 
187 compat_sys_times_wrapper:
188         llgtr   %r2,%r2                 # struct compat_tms *
189         jg      compat_sys_times        # branch to system call
190
191         .globl  sys32_brk_wrapper 
192 sys32_brk_wrapper:
193         llgtr   %r2,%r2                 # unsigned long
194         jg      sys_brk                 # branch to system call
195
196         .globl  sys32_setgid16_wrapper 
197 sys32_setgid16_wrapper:
198         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t 
199         jg      sys32_setgid16          # branch to system call
200
201 #sys32_getgid16_wrapper                 # void 
202
203         .globl sys32_signal_wrapper
204 sys32_signal_wrapper:
205         lgfr    %r2,%r2                 # int 
206         llgtr   %r3,%r3                 # __sighandler_t
207         jg      sys_signal
208
209 #sys32_geteuid16_wrapper                # void 
210
211 #sys32_getegid16_wrapper                # void 
212
213         .globl  sys32_acct_wrapper 
214 sys32_acct_wrapper:
215         llgtr   %r2,%r2                 # char *
216         jg      sys_acct                # branch to system call
217
218         .globl  sys32_umount_wrapper 
219 sys32_umount_wrapper:
220         llgtr   %r2,%r2                 # char *
221         lgfr    %r3,%r3                 # int
222         jg      sys_umount              # branch to system call
223
224         .globl  compat_sys_ioctl_wrapper
225 compat_sys_ioctl_wrapper:
226         llgfr   %r2,%r2                 # unsigned int
227         llgfr   %r3,%r3                 # unsigned int
228         llgfr   %r4,%r4                 # unsigned int
229         jg      compat_sys_ioctl        # branch to system call
230
231         .globl  compat_sys_fcntl_wrapper 
232 compat_sys_fcntl_wrapper:
233         llgfr   %r2,%r2                 # unsigned int
234         llgfr   %r3,%r3                 # unsigned int 
235         llgfr   %r4,%r4                 # unsigned long
236         jg      compat_sys_fcntl        # branch to system call
237
238         .globl  sys32_setpgid_wrapper 
239 sys32_setpgid_wrapper:
240         lgfr    %r2,%r2                 # pid_t
241         lgfr    %r3,%r3                 # pid_t
242         jg      sys_setpgid             # branch to system call
243
244         .globl  sys32_umask_wrapper 
245 sys32_umask_wrapper:
246         lgfr    %r2,%r2                 # int
247         jg      sys_umask               # branch to system call
248
249         .globl  sys32_chroot_wrapper 
250 sys32_chroot_wrapper:
251         llgtr   %r2,%r2                 # char *
252         jg      sys_chroot              # branch to system call
253
254         .globl sys32_ustat_wrapper
255 sys32_ustat_wrapper:
256         llgfr   %r2,%r2                 # dev_t 
257         llgtr   %r3,%r3                 # struct ustat *
258         jg      sys_ustat
259
260         .globl  sys32_dup2_wrapper 
261 sys32_dup2_wrapper:
262         llgfr   %r2,%r2                 # unsigned int
263         llgfr   %r3,%r3                 # unsigned int
264         jg      sys_dup2                # branch to system call
265
266 #sys32_getppid_wrapper                  # void 
267
268 #sys32_getpgrp_wrapper                  # void 
269
270 #sys32_setsid_wrapper                   # void 
271
272         .globl  sys32_sigaction_wrapper
273 sys32_sigaction_wrapper:
274         lgfr    %r2,%r2                 # int 
275         llgtr   %r3,%r3                 # const struct old_sigaction *
276         llgtr   %r4,%r4                 # struct old_sigaction32 *
277         jg      sys32_sigaction         # branch to system call
278
279         .globl  sys32_setreuid16_wrapper 
280 sys32_setreuid16_wrapper:
281         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t 
282         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t 
283         jg      sys32_setreuid16        # branch to system call
284
285         .globl  sys32_setregid16_wrapper 
286 sys32_setregid16_wrapper:
287         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t 
288         llgfr   %r3,%r3                 # __kernel_old_gid_emu31_t 
289         jg      sys32_setregid16        # branch to system call
290
291 #sys32_sigsuspend_wrapper               # done in sigsuspend_glue 
292
293         .globl  compat_sys_sigpending_wrapper 
294 compat_sys_sigpending_wrapper:
295         llgtr   %r2,%r2                 # compat_old_sigset_t *
296         jg      compat_sys_sigpending   # branch to system call
297
298         .globl  sys32_sethostname_wrapper 
299 sys32_sethostname_wrapper:
300         llgtr   %r2,%r2                 # char *
301         lgfr    %r3,%r3                 # int
302         jg      sys_sethostname         # branch to system call
303
304         .globl  compat_sys_setrlimit_wrapper 
305 compat_sys_setrlimit_wrapper:
306         llgfr   %r2,%r2                 # unsigned int
307         llgtr   %r3,%r3                 # struct rlimit_emu31 *
308         jg      compat_sys_setrlimit    # branch to system call
309
310         .globl  compat_sys_old_getrlimit_wrapper 
311 compat_sys_old_getrlimit_wrapper:
312         llgfr   %r2,%r2                 # unsigned int
313         llgtr   %r3,%r3                 # struct rlimit_emu31 *
314         jg      compat_sys_old_getrlimit # branch to system call
315
316         .globl  compat_sys_getrlimit_wrapper 
317 compat_sys_getrlimit_wrapper:
318         llgfr   %r2,%r2                 # unsigned int
319         llgtr   %r3,%r3                 # struct rlimit_emu31 *
320         jg      compat_sys_getrlimit    # branch to system call
321
322         .globl  sys32_mmap2_wrapper 
323 sys32_mmap2_wrapper:
324         llgtr   %r2,%r2                 # struct mmap_arg_struct_emu31 *
325         jg      sys32_mmap2                     # branch to system call
326
327         .globl  compat_sys_getrusage_wrapper 
328 compat_sys_getrusage_wrapper:
329         lgfr    %r2,%r2                 # int
330         llgtr   %r3,%r3                 # struct rusage_emu31 *
331         jg      compat_sys_getrusage    # branch to system call
332
333         .globl  sys32_gettimeofday_wrapper 
334 sys32_gettimeofday_wrapper:
335         llgtr   %r2,%r2                 # struct timeval_emu31 *
336         llgtr   %r3,%r3                 # struct timezone *
337         jg      sys32_gettimeofday      # branch to system call
338
339         .globl  sys32_settimeofday_wrapper 
340 sys32_settimeofday_wrapper:
341         llgtr   %r2,%r2                 # struct timeval_emu31 *
342         llgtr   %r3,%r3                 # struct timezone *
343         jg      sys32_settimeofday      # branch to system call
344
345         .globl  sys32_getgroups16_wrapper 
346 sys32_getgroups16_wrapper:
347         lgfr    %r2,%r2                 # int
348         llgtr   %r3,%r3                 # __kernel_old_gid_emu31_t *
349         jg      sys32_getgroups16       # branch to system call
350
351         .globl  sys32_setgroups16_wrapper 
352 sys32_setgroups16_wrapper:
353         lgfr    %r2,%r2                 # int
354         llgtr   %r3,%r3                 # __kernel_old_gid_emu31_t *
355         jg      sys32_setgroups16       # branch to system call
356
357         .globl  sys32_symlink_wrapper 
358 sys32_symlink_wrapper:
359         llgtr   %r2,%r2                 # const char *
360         llgtr   %r3,%r3                 # const char *
361         jg      sys_symlink             # branch to system call
362
363         .globl  sys32_readlink_wrapper 
364 sys32_readlink_wrapper:
365         llgtr   %r2,%r2                 # const char *
366         llgtr   %r3,%r3                 # char *
367         lgfr    %r4,%r4                 # int
368         jg      sys_readlink            # branch to system call
369
370         .globl  sys32_uselib_wrapper 
371 sys32_uselib_wrapper:
372         llgtr   %r2,%r2                 # const char *
373         jg      sys_uselib              # branch to system call
374
375         .globl  sys32_swapon_wrapper 
376 sys32_swapon_wrapper:
377         llgtr   %r2,%r2                 # const char *
378         lgfr    %r3,%r3                 # int
379         jg      sys_swapon              # branch to system call
380
381         .globl  sys32_reboot_wrapper 
382 sys32_reboot_wrapper:
383         lgfr    %r2,%r2                 # int
384         lgfr    %r3,%r3                 # int
385         llgfr   %r4,%r4                 # unsigned int
386         llgtr   %r5,%r5                 # void *
387         jg      sys_reboot              # branch to system call
388
389         .globl  old32_readdir_wrapper 
390 old32_readdir_wrapper:
391         llgfr   %r2,%r2                 # unsigned int
392         llgtr   %r3,%r3                 # void *
393         llgfr   %r4,%r4                 # unsigned int
394         jg      compat_sys_old_readdir  # branch to system call
395
396         .globl  old32_mmap_wrapper 
397 old32_mmap_wrapper:
398         llgtr   %r2,%r2                 # struct mmap_arg_struct_emu31 *
399         jg      old32_mmap              # branch to system call
400
401         .globl  sys32_munmap_wrapper 
402 sys32_munmap_wrapper:
403         llgfr   %r2,%r2                 # unsigned long
404         llgfr   %r3,%r3                 # size_t 
405         jg      sys_munmap              # branch to system call
406
407         .globl  sys32_truncate_wrapper 
408 sys32_truncate_wrapper:
409         llgtr   %r2,%r2                 # const char *
410         llgfr   %r3,%r3                 # unsigned long
411         jg      sys_truncate            # branch to system call
412
413         .globl  sys32_ftruncate_wrapper 
414 sys32_ftruncate_wrapper:
415         llgfr   %r2,%r2                 # unsigned int
416         llgfr   %r3,%r3                 # unsigned long
417         jg      sys_ftruncate           # branch to system call
418
419         .globl  sys32_fchmod_wrapper 
420 sys32_fchmod_wrapper:
421         llgfr   %r2,%r2                 # unsigned int
422         llgfr   %r3,%r3                 # mode_t
423         jg      sys_fchmod              # branch to system call
424
425         .globl  sys32_fchown16_wrapper 
426 sys32_fchown16_wrapper:
427         llgfr   %r2,%r2                 # unsigned int
428         llgfr   %r3,%r3                 # compat_uid_t
429         llgfr   %r4,%r4                 # compat_uid_t
430         jg      sys32_fchown16          # branch to system call
431
432         .globl  sys32_getpriority_wrapper 
433 sys32_getpriority_wrapper:
434         lgfr    %r2,%r2                 # int
435         lgfr    %r3,%r3                 # int
436         jg      sys_getpriority         # branch to system call
437
438         .globl  sys32_setpriority_wrapper 
439 sys32_setpriority_wrapper:
440         lgfr    %r2,%r2                 # int
441         lgfr    %r3,%r3                 # int
442         lgfr    %r4,%r4                 # int
443         jg      sys_setpriority         # branch to system call
444
445         .globl  compat_sys_statfs_wrapper 
446 compat_sys_statfs_wrapper:
447         llgtr   %r2,%r2                 # char *
448         llgtr   %r3,%r3                 # struct compat_statfs *
449         jg      compat_sys_statfs       # branch to system call
450
451         .globl  compat_sys_fstatfs_wrapper 
452 compat_sys_fstatfs_wrapper:
453         llgfr   %r2,%r2                 # unsigned int
454         llgtr   %r3,%r3                 # struct compat_statfs *
455         jg      compat_sys_fstatfs      # branch to system call
456
457         .globl  compat_sys_socketcall_wrapper 
458 compat_sys_socketcall_wrapper:
459         lgfr    %r2,%r2                 # int
460         llgtr   %r3,%r3                 # u32 *
461         jg      compat_sys_socketcall   # branch to system call
462
463         .globl  sys32_syslog_wrapper 
464 sys32_syslog_wrapper:
465         lgfr    %r2,%r2                 # int
466         llgtr   %r3,%r3                 # char *
467         lgfr    %r4,%r4                 # int
468         jg      sys_syslog              # branch to system call
469
470         .globl  compat_sys_setitimer_wrapper 
471 compat_sys_setitimer_wrapper:
472         lgfr    %r2,%r2                 # int
473         llgtr   %r3,%r3                 # struct itimerval_emu31 *
474         llgtr   %r4,%r4                 # struct itimerval_emu31 *
475         jg      compat_sys_setitimer    # branch to system call
476
477         .globl  compat_sys_getitimer_wrapper 
478 compat_sys_getitimer_wrapper:
479         lgfr    %r2,%r2                 # int
480         llgtr   %r3,%r3                 # struct itimerval_emu31 *
481         jg      compat_sys_getitimer    # branch to system call
482
483         .globl  compat_sys_newstat_wrapper 
484 compat_sys_newstat_wrapper:
485         llgtr   %r2,%r2                 # char *
486         llgtr   %r3,%r3                 # struct stat_emu31 *
487         jg      compat_sys_newstat      # branch to system call
488
489         .globl  compat_sys_newlstat_wrapper 
490 compat_sys_newlstat_wrapper:
491         llgtr   %r2,%r2                 # char *
492         llgtr   %r3,%r3                 # struct stat_emu31 *
493         jg      compat_sys_newlstat     # branch to system call
494
495         .globl  compat_sys_newfstat_wrapper 
496 compat_sys_newfstat_wrapper:
497         llgfr   %r2,%r2                 # unsigned int
498         llgtr   %r3,%r3                 # struct stat_emu31 *
499         jg      compat_sys_newfstat     # branch to system call
500
501 #sys32_vhangup_wrapper                  # void 
502
503         .globl  compat_sys_wait4_wrapper 
504 compat_sys_wait4_wrapper:
505         lgfr    %r2,%r2                 # pid_t
506         llgtr   %r3,%r3                 # unsigned int *
507         lgfr    %r4,%r4                 # int
508         llgtr   %r5,%r5                 # struct rusage *
509         jg      compat_sys_wait4        # branch to system call
510
511         .globl  sys32_swapoff_wrapper 
512 sys32_swapoff_wrapper:
513         llgtr   %r2,%r2                 # const char *
514         jg      sys_swapoff             # branch to system call
515
516         .globl  sys32_sysinfo_wrapper 
517 sys32_sysinfo_wrapper:
518         llgtr   %r2,%r2                 # struct sysinfo_emu31 *
519         jg      sys32_sysinfo           # branch to system call
520
521         .globl  sys32_ipc_wrapper 
522 sys32_ipc_wrapper:
523         llgfr   %r2,%r2                 # uint
524         lgfr    %r3,%r3                 # int
525         lgfr    %r4,%r4                 # int
526         lgfr    %r5,%r5                 # int
527         llgfr   %r6,%r6                 # u32
528         jg      sys32_ipc               # branch to system call
529
530         .globl  sys32_fsync_wrapper 
531 sys32_fsync_wrapper:
532         llgfr   %r2,%r2                 # unsigned int
533         jg      sys_fsync               # branch to system call
534
535 #sys32_sigreturn_wrapper                # done in sigreturn_glue 
536
537 #sys32_clone_wrapper                    # done in clone_glue 
538
539         .globl  sys32_setdomainname_wrapper 
540 sys32_setdomainname_wrapper:
541         llgtr   %r2,%r2                 # char *
542         lgfr    %r3,%r3                 # int
543         jg      sys_setdomainname       # branch to system call
544
545         .globl  sys32_newuname_wrapper 
546 sys32_newuname_wrapper:
547         llgtr   %r2,%r2                 # struct new_utsname *
548         jg      s390x_newuname          # branch to system call
549
550         .globl  sys32_adjtimex_wrapper 
551 sys32_adjtimex_wrapper:
552         llgtr   %r2,%r2                 # struct timex_emu31 *
553         jg      sys32_adjtimex          # branch to system call
554
555         .globl  sys32_mprotect_wrapper 
556 sys32_mprotect_wrapper:
557         llgtr   %r2,%r2                 # unsigned long (actually pointer
558         llgfr   %r3,%r3                 # size_t
559         llgfr   %r4,%r4                 # unsigned long
560         jg      sys_mprotect            # branch to system call
561
562         .globl  compat_sys_sigprocmask_wrapper 
563 compat_sys_sigprocmask_wrapper:
564         lgfr    %r2,%r2                 # int
565         llgtr   %r3,%r3                 # compat_old_sigset_t *
566         llgtr   %r4,%r4                 # compat_old_sigset_t *
567         jg      compat_sys_sigprocmask          # branch to system call
568
569         .globl  sys32_init_module_wrapper 
570 sys32_init_module_wrapper:
571         llgtr   %r2,%r2                 # void *
572         llgfr   %r3,%r3                 # unsigned long
573         llgtr   %r4,%r4                 # char *
574         jg      sys32_init_module       # branch to system call
575
576         .globl  sys32_delete_module_wrapper 
577 sys32_delete_module_wrapper:
578         llgtr   %r2,%r2                 # const char *
579         llgfr   %r3,%r3                 # unsigned int
580         jg      sys32_delete_module     # branch to system call
581
582         .globl  sys32_quotactl_wrapper 
583 sys32_quotactl_wrapper:
584         llgfr   %r2,%r2                 # unsigned int
585         llgtr   %r3,%r3                 # const char *
586         llgfr   %r4,%r4                 # qid_t
587         llgtr   %r5,%r5                 # caddr_t
588         jg      sys_quotactl            # branch to system call
589
590         .globl  sys32_getpgid_wrapper 
591 sys32_getpgid_wrapper:
592         lgfr    %r2,%r2                 # pid_t
593         jg      sys_getpgid             # branch to system call
594
595         .globl  sys32_fchdir_wrapper 
596 sys32_fchdir_wrapper:
597         llgfr   %r2,%r2                 # unsigned int
598         jg      sys_fchdir              # branch to system call
599
600         .globl  sys32_bdflush_wrapper 
601 sys32_bdflush_wrapper:
602         lgfr    %r2,%r2                 # int
603         lgfr    %r3,%r3                 # long
604         jg      sys_bdflush             # branch to system call
605
606         .globl  sys32_sysfs_wrapper 
607 sys32_sysfs_wrapper:
608         lgfr    %r2,%r2                 # int
609         llgfr   %r3,%r3                 # unsigned long
610         llgfr   %r4,%r4                 # unsigned long
611         jg      sys_sysfs               # branch to system call
612
613         .globl  sys32_personality_wrapper 
614 sys32_personality_wrapper:
615         llgfr   %r2,%r2                 # unsigned long
616         jg      s390x_personality       # branch to system call
617
618         .globl  sys32_setfsuid16_wrapper 
619 sys32_setfsuid16_wrapper:
620         llgfr   %r2,%r2                 # __kernel_old_uid_emu31_t 
621         jg      sys32_setfsuid16        # branch to system call
622
623         .globl  sys32_setfsgid16_wrapper 
624 sys32_setfsgid16_wrapper:
625         llgfr   %r2,%r2                 # __kernel_old_gid_emu31_t 
626         jg      sys32_setfsgid16        # branch to system call
627
628         .globl  sys32_llseek_wrapper 
629 sys32_llseek_wrapper:
630         llgfr   %r2,%r2                 # unsigned int
631         llgfr   %r3,%r3                 # unsigned long
632         llgfr   %r4,%r4                 # unsigned long
633         llgtr   %r5,%r5                 # loff_t *
634         llgfr   %r6,%r6                 # unsigned int
635         jg      sys_llseek              # branch to system call
636
637         .globl  sys32_getdents_wrapper 
638 sys32_getdents_wrapper:
639         llgfr   %r2,%r2                 # unsigned int
640         llgtr   %r3,%r3                 # void *
641         llgfr   %r4,%r4                 # unsigned int
642         jg      compat_sys_getdents     # branch to system call
643
644         .globl  compat_sys_select_wrapper
645 compat_sys_select_wrapper:
646         lgfr    %r2,%r2                 # int
647         llgtr   %r3,%r3                 # compat_fd_set *
648         llgtr   %r4,%r4                 # compat_fd_set *
649         llgtr   %r5,%r5                 # compat_fd_set *
650         llgtr   %r6,%r6                 # struct compat_timeval *
651         jg      compat_sys_select       # branch to system call
652
653         .globl  sys32_flock_wrapper 
654 sys32_flock_wrapper:
655         llgfr   %r2,%r2                 # unsigned int
656         llgfr   %r3,%r3                 # unsigned int
657         jg      sys_flock               # branch to system call
658
659         .globl  sys32_msync_wrapper 
660 sys32_msync_wrapper:
661         llgfr   %r2,%r2                 # unsigned long
662         llgfr   %r3,%r3                 # size_t
663         lgfr    %r4,%r4                 # int
664         jg      sys_msync               # branch to system call
665
666         .globl  compat_sys_readv_wrapper
667 compat_sys_readv_wrapper:
668         lgfr    %r2,%r2                 # int
669         llgtr   %r3,%r3                 # const struct compat_iovec *
670         llgfr   %r4,%r4                 # unsigned long
671         jg      compat_sys_readv        # branch to system call
672
673         .globl  compat_sys_writev_wrapper
674 compat_sys_writev_wrapper:
675         lgfr    %r2,%r2                 # int
676         llgtr   %r3,%r3                 # const struct compat_iovec *
677         llgfr   %r4,%r4                 # unsigned long
678         jg      compat_sys_writev       # branch to system call
679
680         .globl  sys32_getsid_wrapper 
681 sys32_getsid_wrapper:
682         lgfr    %r2,%r2                 # pid_t
683         jg      sys_getsid              # branch to system call
684
685         .globl  sys32_fdatasync_wrapper 
686 sys32_fdatasync_wrapper:
687         llgfr   %r2,%r2                 # unsigned int
688         jg      sys_fdatasync           # branch to system call
689
690 #sys32_sysctl_wrapper                   # tbd 
691
692         .globl  sys32_mlock_wrapper 
693 sys32_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 
699 sys32_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 
705 sys32_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 
712 sys32_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 
718 sys32_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 
724 sys32_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 
731 sys32_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 
738 sys32_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 
743 sys32_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 
748 sys32_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 
754 compat_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 
760 sys32_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 
769 sys32_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 
776 sys32_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 
783 sys32_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
790 compat_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 
797 sys32_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 
804 sys32_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 
811 sys32_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 
822 sys32_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 
830 sys32_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 
838 sys32_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
844 compat_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 
852 sys32_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 #sys32_rt_sigsuspend_wrapper            # done in rt_sigsuspend_glue 
859
860         .globl  sys32_pread64_wrapper 
861 sys32_pread64_wrapper:
862         llgfr   %r2,%r2                 # unsigned int
863         llgtr   %r3,%r3                 # char *
864         llgfr   %r4,%r4                 # size_t
865         llgfr   %r5,%r5                 # u32
866         llgfr   %r6,%r6                 # u32
867         jg      sys32_pread64           # branch to system call
868
869         .globl  sys32_pwrite64_wrapper 
870 sys32_pwrite64_wrapper:
871         llgfr   %r2,%r2                 # unsigned int
872         llgtr   %r3,%r3                 # const char *
873         llgfr   %r4,%r4                 # size_t
874         llgfr   %r5,%r5                 # u32
875         llgfr   %r6,%r6                 # u32
876         jg      sys32_pwrite64          # branch to system call
877
878         .globl  sys32_chown16_wrapper 
879 sys32_chown16_wrapper:
880         llgtr   %r2,%r2                 # const char *
881         llgfr   %r3,%r3                 # __kernel_old_uid_emu31_t 
882         llgfr   %r4,%r4                 # __kernel_old_gid_emu31_t 
883         jg      sys32_chown16           # branch to system call
884
885         .globl  sys32_getcwd_wrapper 
886 sys32_getcwd_wrapper:
887         llgtr   %r2,%r2                 # char *
888         llgfr   %r3,%r3                 # unsigned long
889         jg      sys_getcwd              # branch to system call
890
891         .globl  sys32_capget_wrapper 
892 sys32_capget_wrapper:
893         llgtr   %r2,%r2                 # cap_user_header_t
894         llgtr   %r3,%r3                 # cap_user_data_t
895         jg      sys_capget              # branch to system call
896
897         .globl  sys32_capset_wrapper 
898 sys32_capset_wrapper:
899         llgtr   %r2,%r2                 # cap_user_header_t
900         llgtr   %r3,%r3                 # const cap_user_data_t
901         jg      sys_capset              # branch to system call
902
903         .globl sys32_sigaltstack_wrapper
904 sys32_sigaltstack_wrapper:
905         llgtr   %r2,%r2                 # const stack_emu31_t * 
906         llgtr   %r3,%r3                 # stack_emu31_t * 
907         jg      sys32_sigaltstack
908
909         .globl  sys32_sendfile_wrapper 
910 sys32_sendfile_wrapper:
911         lgfr    %r2,%r2                 # int
912         lgfr    %r3,%r3                 # int
913         llgtr   %r4,%r4                 # __kernel_off_emu31_t *
914         llgfr   %r5,%r5                 # size_t
915         jg      sys32_sendfile          # branch to system call
916
917 #sys32_vfork_wrapper                    # done in vfork_glue 
918
919         .globl  sys32_truncate64_wrapper 
920 sys32_truncate64_wrapper:
921         llgtr   %r2,%r2                 # const char *
922         llgfr   %r3,%r3                 # unsigned long
923         llgfr   %r4,%r4                 # unsigned long
924         jg      sys32_truncate64        # branch to system call
925
926         .globl  sys32_ftruncate64_wrapper 
927 sys32_ftruncate64_wrapper:
928         llgfr   %r2,%r2                 # unsigned int
929         llgfr   %r3,%r3                 # unsigned long
930         llgfr   %r4,%r4                 # unsigned long
931         jg      sys32_ftruncate64       # branch to system call
932
933         .globl sys32_lchown_wrapper     
934 sys32_lchown_wrapper:
935         llgtr   %r2,%r2                 # const char *
936         llgfr   %r3,%r3                 # uid_t
937         llgfr   %r4,%r4                 # gid_t
938         jg      sys_lchown              # branch to system call
939
940 #sys32_getuid_wrapper                   # void                   
941 #sys32_getgid_wrapper                   # void 
942 #sys32_geteuid_wrapper                  # void 
943 #sys32_getegid_wrapper                  # void 
944
945         .globl sys32_setreuid_wrapper
946 sys32_setreuid_wrapper:
947         llgfr   %r2,%r2                 # uid_t
948         llgfr   %r3,%r3                 # uid_t
949         jg      sys_setreuid            # branch to system call
950
951         .globl sys32_setregid_wrapper
952 sys32_setregid_wrapper:
953         llgfr   %r2,%r2                 # gid_t
954         llgfr   %r3,%r3                 # gid_t
955         jg      sys_setregid            # branch to system call
956
957         .globl  sys32_getgroups_wrapper 
958 sys32_getgroups_wrapper:
959         lgfr    %r2,%r2                 # int
960         llgtr   %r3,%r3                 # gid_t *
961         jg      sys_getgroups           # branch to system call
962
963         .globl  sys32_setgroups_wrapper 
964 sys32_setgroups_wrapper:
965         lgfr    %r2,%r2                 # int
966         llgtr   %r3,%r3                 # gid_t *
967         jg      sys_setgroups           # branch to system call
968
969         .globl sys32_fchown_wrapper     
970 sys32_fchown_wrapper:
971         llgfr   %r2,%r2                 # unsigned int
972         llgfr   %r3,%r3                 # uid_t
973         llgfr   %r4,%r4                 # gid_t
974         jg      sys_fchown              # branch to system call
975
976         .globl sys32_setresuid_wrapper  
977 sys32_setresuid_wrapper:
978         llgfr   %r2,%r2                 # uid_t
979         llgfr   %r3,%r3                 # uid_t
980         llgfr   %r4,%r4                 # uid_t
981         jg      sys_setresuid           # branch to system call
982
983         .globl sys32_getresuid_wrapper  
984 sys32_getresuid_wrapper:
985         llgtr   %r2,%r2                 # uid_t *
986         llgtr   %r3,%r3                 # uid_t *
987         llgtr   %r4,%r4                 # uid_t *
988         jg      sys_getresuid           # branch to system call
989
990         .globl sys32_setresgid_wrapper  
991 sys32_setresgid_wrapper:
992         llgfr   %r2,%r2                 # gid_t
993         llgfr   %r3,%r3                 # gid_t
994         llgfr   %r4,%r4                 # gid_t
995         jg      sys_setresgid           # branch to system call
996
997         .globl sys32_getresgid_wrapper  
998 sys32_getresgid_wrapper:
999         llgtr   %r2,%r2                 # gid_t *
1000         llgtr   %r3,%r3                 # gid_t *
1001         llgtr   %r4,%r4                 # gid_t *
1002         jg      sys_getresgid           # branch to system call
1003
1004         .globl sys32_chown_wrapper      
1005 sys32_chown_wrapper:
1006         llgtr   %r2,%r2                 # const char *
1007         llgfr   %r3,%r3                 # uid_t
1008         llgfr   %r4,%r4                 # gid_t
1009         jg      sys_chown               # branch to system call
1010
1011         .globl sys32_setuid_wrapper     
1012 sys32_setuid_wrapper:
1013         llgfr   %r2,%r2                 # uid_t
1014         jg      sys_setuid              # branch to system call
1015
1016         .globl sys32_setgid_wrapper     
1017 sys32_setgid_wrapper:
1018         llgfr   %r2,%r2                 # gid_t
1019         jg      sys_setgid              # branch to system call
1020
1021         .globl sys32_setfsuid_wrapper   
1022 sys32_setfsuid_wrapper:
1023         llgfr   %r2,%r2                 # uid_t
1024         jg      sys_setfsuid            # branch to system call
1025
1026         .globl sys32_setfsgid_wrapper   
1027 sys32_setfsgid_wrapper:
1028         llgfr   %r2,%r2                 # gid_t
1029         jg      sys_setfsgid            # branch to system call
1030
1031         .globl  sys32_pivot_root_wrapper 
1032 sys32_pivot_root_wrapper:
1033         llgtr   %r2,%r2                 # const char *
1034         llgtr   %r3,%r3                 # const char *
1035         jg      sys_pivot_root          # branch to system call
1036
1037         .globl  sys32_mincore_wrapper 
1038 sys32_mincore_wrapper:
1039         llgfr   %r2,%r2                 # unsigned long
1040         llgfr   %r3,%r3                 # size_t
1041         llgtr   %r4,%r4                 # unsigned char *
1042         jg      sys_mincore             # branch to system call
1043
1044         .globl  sys32_madvise_wrapper 
1045 sys32_madvise_wrapper:
1046         llgfr   %r2,%r2                 # unsigned long
1047         llgfr   %r3,%r3                 # size_t
1048         lgfr    %r4,%r4                 # int
1049         jg      sys_madvise             # branch to system call
1050
1051         .globl  sys32_getdents64_wrapper 
1052 sys32_getdents64_wrapper:
1053         llgfr   %r2,%r2                 # unsigned int
1054         llgtr   %r3,%r3                 # void *
1055         llgfr   %r4,%r4                 # unsigned int
1056         jg      sys_getdents64          # branch to system call
1057
1058         .globl  compat_sys_fcntl64_wrapper 
1059 compat_sys_fcntl64_wrapper:
1060         llgfr   %r2,%r2                 # unsigned int
1061         llgfr   %r3,%r3                 # unsigned int 
1062         llgfr   %r4,%r4                 # unsigned long
1063         jg      compat_sys_fcntl64      # branch to system call
1064
1065         .globl  sys32_stat64_wrapper
1066 sys32_stat64_wrapper:
1067         llgtr   %r2,%r2                 # char *
1068         llgtr   %r3,%r3                 # struct stat64 *
1069         jg      sys32_stat64            # branch to system call
1070
1071         .globl  sys32_lstat64_wrapper
1072 sys32_lstat64_wrapper:
1073         llgtr   %r2,%r2                 # char *
1074         llgtr   %r3,%r3                 # struct stat64 *
1075         jg      sys32_lstat64           # branch to system call
1076
1077         .globl  sys32_stime_wrapper
1078 sys32_stime_wrapper:
1079         llgtr   %r2,%r2                 # long *
1080         jg      compat_sys_stime        # branch to system call
1081
1082         .globl  sys32_sysctl_wrapper
1083 sys32_sysctl_wrapper:
1084         llgtr   %r2,%r2                 # struct __sysctl_args32 *
1085         jg      sys32_sysctl
1086
1087         .globl  sys32_fstat64_wrapper
1088 sys32_fstat64_wrapper:
1089         llgfr   %r2,%r2                 # unsigned long
1090         llgtr   %r3,%r3                 # struct stat64 *
1091         jg      sys32_fstat64           # branch to system call
1092
1093         .globl  compat_sys_futex_wrapper 
1094 compat_sys_futex_wrapper:
1095         llgtr   %r2,%r2                 # u32 *
1096         lgfr    %r3,%r3                 # int
1097         lgfr    %r4,%r4                 # int
1098         llgtr   %r5,%r5                 # struct compat_timespec *
1099         llgtr   %r6,%r6                 # u32 *
1100         lgf     %r0,164(%r15)           # int
1101         stg     %r0,160(%r15)
1102         jg      compat_sys_futex        # branch to system call
1103
1104         .globl  sys32_setxattr_wrapper
1105 sys32_setxattr_wrapper:
1106         llgtr   %r2,%r2                 # char *
1107         llgtr   %r3,%r3                 # char *
1108         llgtr   %r4,%r4                 # void *
1109         llgfr   %r5,%r5                 # size_t
1110         lgfr    %r6,%r6                 # int
1111         jg      sys_setxattr
1112
1113         .globl  sys32_lsetxattr_wrapper
1114 sys32_lsetxattr_wrapper:
1115         llgtr   %r2,%r2                 # char *
1116         llgtr   %r3,%r3                 # char *
1117         llgtr   %r4,%r4                 # void *
1118         llgfr   %r5,%r5                 # size_t
1119         lgfr    %r6,%r6                 # int
1120         jg      sys_lsetxattr
1121
1122         .globl  sys32_fsetxattr_wrapper
1123 sys32_fsetxattr_wrapper:
1124         lgfr    %r2,%r2                 # int
1125         llgtr   %r3,%r3                 # char *
1126         llgtr   %r4,%r4                 # void *
1127         llgfr   %r5,%r5                 # size_t
1128         lgfr    %r6,%r6                 # int
1129         jg      sys_fsetxattr
1130
1131         .globl  sys32_getxattr_wrapper
1132 sys32_getxattr_wrapper:
1133         llgtr   %r2,%r2                 # char *
1134         llgtr   %r3,%r3                 # char *
1135         llgtr   %r4,%r4                 # void *
1136         llgfr   %r5,%r5                 # size_t
1137         jg      sys_getxattr
1138
1139         .globl  sys32_lgetxattr_wrapper
1140 sys32_lgetxattr_wrapper:
1141         llgtr   %r2,%r2                 # char *
1142         llgtr   %r3,%r3                 # char *
1143         llgtr   %r4,%r4                 # void *
1144         llgfr   %r5,%r5                 # size_t
1145         jg      sys_lgetxattr
1146
1147         .globl  sys32_fgetxattr_wrapper
1148 sys32_fgetxattr_wrapper:
1149         lgfr    %r2,%r2                 # int
1150         llgtr   %r3,%r3                 # char *
1151         llgtr   %r4,%r4                 # void *
1152         llgfr   %r5,%r5                 # size_t
1153         jg      sys_fgetxattr
1154
1155         .globl  sys32_listxattr_wrapper
1156 sys32_listxattr_wrapper:
1157         llgtr   %r2,%r2                 # char *
1158         llgtr   %r3,%r3                 # char *
1159         llgfr   %r4,%r4                 # size_t
1160         jg      sys_listxattr
1161
1162         .globl  sys32_llistxattr_wrapper
1163 sys32_llistxattr_wrapper:
1164         llgtr   %r2,%r2                 # char *
1165         llgtr   %r3,%r3                 # char *
1166         llgfr   %r4,%r4                 # size_t
1167         jg      sys_llistxattr
1168
1169         .globl  sys32_flistxattr_wrapper
1170 sys32_flistxattr_wrapper:
1171         lgfr    %r2,%r2                 # int
1172         llgtr   %r3,%r3                 # char *
1173         llgfr   %r4,%r4                 # size_t
1174         jg      sys_flistxattr
1175
1176         .globl  sys32_removexattr_wrapper
1177 sys32_removexattr_wrapper:
1178         llgtr   %r2,%r2                 # char *
1179         llgtr   %r3,%r3                 # char *
1180         jg      sys_removexattr
1181
1182         .globl  sys32_lremovexattr_wrapper
1183 sys32_lremovexattr_wrapper:
1184         llgtr   %r2,%r2                 # char *
1185         llgtr   %r3,%r3                 # char *
1186         jg      sys_lremovexattr
1187
1188         .globl  sys32_fremovexattr_wrapper
1189 sys32_fremovexattr_wrapper:
1190         lgfr    %r2,%r2                 # int
1191         llgtr   %r3,%r3                 # char *
1192         jg      sys_fremovexattr
1193
1194         .globl  sys32_sched_setaffinity_wrapper
1195 sys32_sched_setaffinity_wrapper:
1196         lgfr    %r2,%r2                 # int
1197         llgfr   %r3,%r3                 # unsigned int
1198         llgtr   %r4,%r4                 # unsigned long *
1199         jg      compat_sys_sched_setaffinity
1200
1201         .globl  sys32_sched_getaffinity_wrapper
1202 sys32_sched_getaffinity_wrapper:
1203         lgfr    %r2,%r2                 # int
1204         llgfr   %r3,%r3                 # unsigned int
1205         llgtr   %r4,%r4                 # unsigned long *
1206         jg      compat_sys_sched_getaffinity
1207
1208         .globl  sys32_exit_group_wrapper
1209 sys32_exit_group_wrapper:
1210         lgfr    %r2,%r2                 # int
1211         jg      sys_exit_group          # branch to system call
1212
1213         .globl  sys32_set_tid_address_wrapper
1214 sys32_set_tid_address_wrapper:
1215         llgtr   %r2,%r2                 # int *
1216         jg      sys_set_tid_address     # branch to system call
1217
1218         .globl  sys_epoll_create_wrapper
1219 sys_epoll_create_wrapper:
1220         lgfr    %r2,%r2                 # int
1221         jg      sys_epoll_create        # branch to system call
1222
1223         .globl  sys_epoll_ctl_wrapper
1224 sys_epoll_ctl_wrapper:
1225         lgfr    %r2,%r2                 # int
1226         lgfr    %r3,%r3                 # int
1227         lgfr    %r4,%r4                 # int
1228         llgtr   %r5,%r5                 # struct epoll_event *
1229         jg      sys_epoll_ctl           # branch to system call
1230
1231         .globl  sys_epoll_wait_wrapper
1232 sys_epoll_wait_wrapper:
1233         lgfr    %r2,%r2                 # int
1234         llgtr   %r3,%r3                 # struct epoll_event *
1235         lgfr    %r4,%r4                 # int
1236         lgfr    %r5,%r5                 # int
1237         jg      sys_epoll_wait          # branch to system call
1238
1239         .globl  sys32_lookup_dcookie_wrapper
1240 sys32_lookup_dcookie_wrapper:
1241         sllg    %r2,%r2,32              # get high word of 64bit dcookie
1242         or      %r2,%r3                 # get low word of 64bit dcookie
1243         llgtr   %r3,%r4                 # char *
1244         llgfr   %r4,%r5                 # size_t
1245         jg      sys_lookup_dcookie
1246
1247         .globl  sys32_fadvise64_wrapper
1248 sys32_fadvise64_wrapper:
1249         lgfr    %r2,%r2                 # int
1250         sllg    %r3,%r3,32              # get high word of 64bit loff_t
1251         or      %r3,%r4                 # get low word of 64bit loff_t
1252         llgfr   %r4,%r5                 # size_t (unsigned long)
1253         lgfr    %r5,%r6                 # int
1254         jg      sys32_fadvise64
1255
1256         .globl  sys32_fadvise64_64_wrapper
1257 sys32_fadvise64_64_wrapper:
1258         llgtr   %r2,%r2                 # struct fadvise64_64_args *
1259         jg      sys32_fadvise64_64
1260
1261         .globl  sys32_clock_settime_wrapper
1262 sys32_clock_settime_wrapper:
1263         lgfr    %r2,%r2                 # clockid_t (int)
1264         llgtr   %r3,%r3                 # struct compat_timespec *
1265         jg      compat_sys_clock_settime
1266
1267         .globl  sys32_clock_gettime_wrapper
1268 sys32_clock_gettime_wrapper:
1269         lgfr    %r2,%r2                 # clockid_t (int)
1270         llgtr   %r3,%r3                 # struct compat_timespec *
1271         jg      compat_sys_clock_gettime
1272
1273         .globl  sys32_clock_getres_wrapper
1274 sys32_clock_getres_wrapper:
1275         lgfr    %r2,%r2                 # clockid_t (int)
1276         llgtr   %r3,%r3                 # struct compat_timespec *
1277         jg      compat_sys_clock_getres
1278
1279         .globl  sys32_clock_nanosleep_wrapper
1280 sys32_clock_nanosleep_wrapper:
1281         lgfr    %r2,%r2                 # clockid_t (int)
1282         lgfr    %r3,%r3                 # int
1283         llgtr   %r4,%r4                 # struct compat_timespec *
1284         llgtr   %r5,%r5                 # struct compat_timespec *
1285         jg      compat_sys_clock_nanosleep
1286
1287         .globl  sys32_timer_create_wrapper
1288 sys32_timer_create_wrapper:
1289         lgfr    %r2,%r2                 # timer_t (int)
1290         llgtr   %r3,%r3                 # struct compat_sigevent *
1291         llgtr   %r4,%r4                 # timer_t *
1292         jg      sys32_timer_create
1293
1294         .globl  sys32_timer_settime_wrapper
1295 sys32_timer_settime_wrapper:
1296         lgfr    %r2,%r2                 # timer_t (int)
1297         lgfr    %r3,%r3                 # int
1298         llgtr   %r4,%r4                 # struct compat_itimerspec *
1299         llgtr   %r5,%r5                 # struct compat_itimerspec *
1300         jg      compat_sys_timer_settime
1301
1302         .globl  sys32_timer_gettime_wrapper
1303 sys32_timer_gettime_wrapper:
1304         lgfr    %r2,%r2                 # timer_t (int)
1305         llgtr   %r3,%r3                 # struct compat_itimerspec *
1306         jg      compat_sys_timer_gettime
1307
1308         .globl  sys32_timer_getoverrun_wrapper
1309 sys32_timer_getoverrun_wrapper:
1310         lgfr    %r2,%r2                 # timer_t (int)
1311         jg      sys_timer_getoverrun
1312
1313         .globl  sys32_timer_delete_wrapper
1314 sys32_timer_delete_wrapper:
1315         lgfr    %r2,%r2                 # timer_t (int)
1316         jg      sys_timer_delete
1317
1318         .globl  sys32_io_setup_wrapper
1319 sys32_io_setup_wrapper:
1320         llgfr   %r2,%r2                 # unsigned int
1321         llgtr   %r3,%r3                 # u32 *
1322         jg      compat_sys_io_setup
1323
1324         .globl  sys32_io_destroy_wrapper
1325 sys32_io_destroy_wrapper:
1326         llgfr   %r2,%r2                 # (aio_context_t) u32
1327         jg      sys_io_destroy
1328
1329         .globl  sys32_io_getevents_wrapper
1330 sys32_io_getevents_wrapper:
1331         llgfr   %r2,%r2                 # (aio_context_t) u32
1332         lgfr    %r3,%r3                 # long
1333         lgfr    %r4,%r4                 # long
1334         llgtr   %r5,%r5                 # struct io_event *
1335         llgtr   %r6,%r6                 # struct compat_timespec *
1336         jg      compat_sys_io_getevents
1337
1338         .globl  sys32_io_submit_wrapper
1339 sys32_io_submit_wrapper:
1340         llgfr   %r2,%r2                 # (aio_context_t) u32
1341         lgfr    %r3,%r3                 # long
1342         llgtr   %r4,%r4                 # struct iocb **
1343         jg      compat_sys_io_submit
1344
1345         .globl  sys32_io_cancel_wrapper
1346 sys32_io_cancel_wrapper:
1347         llgfr   %r2,%r2                 # (aio_context_t) u32
1348         llgtr   %r3,%r3                 # struct iocb *
1349         llgtr   %r4,%r4                 # struct io_event *
1350         jg      sys_io_cancel
1351
1352         .globl compat_sys_statfs64_wrapper
1353 compat_sys_statfs64_wrapper:
1354         llgtr   %r2,%r2                 # const char *
1355         llgfr   %r3,%r3                 # compat_size_t
1356         llgtr   %r4,%r4                 # struct compat_statfs64 *
1357         jg      compat_sys_statfs64
1358
1359         .globl compat_sys_fstatfs64_wrapper
1360 compat_sys_fstatfs64_wrapper:
1361         llgfr   %r2,%r2                 # unsigned int fd
1362         llgfr   %r3,%r3                 # compat_size_t
1363         llgtr   %r4,%r4                 # struct compat_statfs64 *
1364         jg      compat_sys_fstatfs64
1365
1366         .globl  compat_sys_mq_open_wrapper
1367 compat_sys_mq_open_wrapper:
1368         llgtr   %r2,%r2                 # const char *
1369         lgfr    %r3,%r3                 # int
1370         llgfr   %r4,%r4                 # mode_t
1371         llgtr   %r5,%r5                 # struct compat_mq_attr *
1372         jg      compat_sys_mq_open
1373
1374         .globl  sys32_mq_unlink_wrapper
1375 sys32_mq_unlink_wrapper:
1376         llgtr   %r2,%r2                 # const char *
1377         jg      sys_mq_unlink
1378
1379         .globl  compat_sys_mq_timedsend_wrapper
1380 compat_sys_mq_timedsend_wrapper:
1381         lgfr    %r2,%r2                 # mqd_t
1382         llgtr   %r3,%r3                 # const char *
1383         llgfr   %r4,%r4                 # size_t
1384         llgfr   %r5,%r5                 # unsigned int
1385         llgtr   %r6,%r6                 # const struct compat_timespec *
1386         jg      compat_sys_mq_timedsend
1387
1388         .globl  compat_sys_mq_timedreceive_wrapper
1389 compat_sys_mq_timedreceive_wrapper:
1390         lgfr    %r2,%r2                 # mqd_t
1391         llgtr   %r3,%r3                 # char *
1392         llgfr   %r4,%r4                 # size_t
1393         llgtr   %r5,%r5                 # unsigned int *
1394         llgtr   %r6,%r6                 # const struct compat_timespec *
1395         jg      compat_sys_mq_timedreceive
1396
1397         .globl  compat_sys_mq_notify_wrapper
1398 compat_sys_mq_notify_wrapper:
1399         lgfr    %r2,%r2                 # mqd_t
1400         llgtr   %r3,%r3                 # struct compat_sigevent *
1401         jg      compat_sys_mq_notify
1402
1403         .globl  compat_sys_mq_getsetattr_wrapper
1404 compat_sys_mq_getsetattr_wrapper:
1405         lgfr    %r2,%r2                 # mqd_t
1406         llgtr   %r3,%r3                 # struct compat_mq_attr *
1407         llgtr   %r4,%r4                 # struct compat_mq_attr *
1408         jg      compat_sys_mq_getsetattr
1409
1410         .globl  compat_sys_add_key_wrapper
1411 compat_sys_add_key_wrapper:
1412         llgtr   %r2,%r2                 # const char *
1413         llgtr   %r3,%r3                 # const char *
1414         llgtr   %r4,%r4                 # const void *
1415         llgfr   %r5,%r5                 # size_t
1416         llgfr   %r6,%r6                 # (key_serial_t) u32
1417         jg      sys_add_key
1418
1419         .globl  compat_sys_request_key_wrapper
1420 compat_sys_request_key_wrapper:
1421         llgtr   %r2,%r2                 # const char *
1422         llgtr   %r3,%r3                 # const char *
1423         llgtr   %r4,%r4                 # const void *
1424         llgfr   %r5,%r5                 # (key_serial_t) u32
1425         jg      sys_request_key
1426
1427         .globl  sys32_remap_file_pages_wrapper
1428 sys32_remap_file_pages_wrapper:
1429         llgfr   %r2,%r2                 # unsigned long
1430         llgfr   %r3,%r3                 # unsigned long
1431         llgfr   %r4,%r4                 # unsigned long
1432         llgfr   %r5,%r5                 # unsigned long
1433         llgfr   %r6,%r6                 # unsigned long
1434         jg      sys_remap_file_pages
1435
1436         .globl  compat_sys_waitid_wrapper
1437 compat_sys_waitid_wrapper:
1438         lgfr    %r2,%r2                 # int
1439         lgfr    %r3,%r3                 # pid_t
1440         llgtr   %r4,%r4                 # siginfo_emu31_t *
1441         lgfr    %r5,%r5                 # int
1442         llgtr   %r6,%r6                 # struct rusage_emu31 *
1443         jg      compat_sys_waitid
1444
1445         .globl  compat_sys_kexec_load_wrapper
1446 compat_sys_kexec_load_wrapper:
1447         llgfr   %r2,%r2                 # unsigned long
1448         llgfr   %r3,%r3                 # unsigned long
1449         llgtr   %r4,%r4                 # struct kexec_segment *
1450         llgfr   %r5,%r5                 # unsigned long
1451         jg      compat_sys_kexec_load
1452
1453         .globl  sys_ioprio_set_wrapper
1454 sys_ioprio_set_wrapper:
1455         lgfr    %r2,%r2                 # int
1456         lgfr    %r3,%r3                 # int
1457         lgfr    %r4,%r4                 # int
1458         jg      sys_ioprio_set
1459
1460         .globl  sys_ioprio_get_wrapper
1461 sys_ioprio_get_wrapper:
1462         lgfr    %r2,%r2                 # int
1463         lgfr    %r3,%r3                 # int
1464         jg      sys_ioprio_get
1465
1466         .globl  sys_inotify_add_watch_wrapper
1467 sys_inotify_add_watch_wrapper:
1468         lgfr    %r2,%r2                 # int
1469         llgtr   %r3,%r3                 # const char *
1470         llgfr   %r4,%r4                 # u32
1471         jg      sys_inotify_add_watch
1472
1473         .globl  sys_inotify_rm_watch_wrapper
1474 sys_inotify_rm_watch_wrapper:
1475         lgfr    %r2,%r2                 # int
1476         llgfr   %r3,%r3                 # u32
1477         jg      sys_inotify_rm_watch