diff options
Diffstat (limited to 'arch/s390/kernel/compat_wrapper.S')
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 1443 |
1 files changed, 1443 insertions, 0 deletions
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S new file mode 100644 index 000000000000..7a607b1d0380 --- /dev/null +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -0,0 +1,1443 @@ | |||
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 sys_fadvise64 | ||
1255 | |||
1256 | .globl sys32_fadvise64_64_wrapper | ||
1257 | sys32_fadvise64_64_wrapper: | ||
1258 | llgtr %r2,%r2 # struct fadvise64_64_args * | ||
1259 | jg s390_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 | ||