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