aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/compat_wrapper.S
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2006-02-01 06:06:38 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-01 11:53:24 -0500
commit54dfe5dd9abc547f63060d132dad2c024a47de1e (patch)
tree3126ab06c684ecd9766cc47d7413dd2534629173 /arch/s390/kernel/compat_wrapper.S
parent1ab865c146ef5151828f0693f1b983891cf40ff1 (diff)
[PATCH] s390: Add support for new syscalls/TIF_RESTORE_SIGMASK
Add support for the new *at, pselect6 and ppoll system calls. This includes adding required support for TIF_RESTORE_SIGMASK. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/s390/kernel/compat_wrapper.S')
-rw-r--r--arch/s390/kernel/compat_wrapper.S137
1 files changed, 132 insertions, 5 deletions
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index cfde1905d07d..6e27ac68ec3f 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -1,9 +1,8 @@
1/* 1/*
2* arch/s390/kernel/sys_wrapper31.S 2* arch/s390/kernel/compat_wrapper.S
3* wrapper for 31 bit compatible system calls. 3* wrapper for 31 bit compatible system calls.
4* 4*
5* S390 version 5* Copyright (C) IBM Corp. 2000,2006
6* Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
7* Author(s): Gerhard Tonn (ton@de.ibm.com), 6* Author(s): Gerhard Tonn (ton@de.ibm.com),
8* Thomas Spatzier (tspat@de.ibm.com) 7* Thomas Spatzier (tspat@de.ibm.com)
9*/ 8*/
@@ -288,7 +287,12 @@ sys32_setregid16_wrapper:
288 llgfr %r3,%r3 # __kernel_old_gid_emu31_t 287 llgfr %r3,%r3 # __kernel_old_gid_emu31_t
289 jg sys32_setregid16 # branch to system call 288 jg sys32_setregid16 # branch to system call
290 289
291#sys32_sigsuspend_wrapper # done in sigsuspend_glue 290 .globl sys_sigsuspend_wrapper
291sys_sigsuspend_wrapper:
292 lgfr %r2,%r2 # int
293 lgfr %r3,%r3 # int
294 llgfr %r4,%r4 # old_sigset_t
295 jg sys_sigsuspend
292 296
293 .globl compat_sys_sigpending_wrapper 297 .globl compat_sys_sigpending_wrapper
294compat_sys_sigpending_wrapper: 298compat_sys_sigpending_wrapper:
@@ -855,7 +859,11 @@ sys32_rt_sigqueueinfo_wrapper:
855 llgtr %r4,%r4 # siginfo_emu31_t * 859 llgtr %r4,%r4 # siginfo_emu31_t *
856 jg sys32_rt_sigqueueinfo # branch to system call 860 jg sys32_rt_sigqueueinfo # branch to system call
857 861
858#sys32_rt_sigsuspend_wrapper # done in rt_sigsuspend_glue 862 .globl compat_sys_rt_sigsuspend_wrapper
863compat_sys_rt_sigsuspend_wrapper:
864 llgtr %r2,%r2 # compat_sigset_t *
865 llgfr %r3,%r3 # compat_size_t
866 jg compat_sys_rt_sigsuspend
859 867
860 .globl sys32_pread64_wrapper 868 .globl sys32_pread64_wrapper
861sys32_pread64_wrapper: 869sys32_pread64_wrapper:
@@ -1475,3 +1483,122 @@ sys_inotify_rm_watch_wrapper:
1475 lgfr %r2,%r2 # int 1483 lgfr %r2,%r2 # int
1476 llgfr %r3,%r3 # u32 1484 llgfr %r3,%r3 # u32
1477 jg sys_inotify_rm_watch 1485 jg sys_inotify_rm_watch
1486
1487 .globl compat_sys_openat_wrapper
1488compat_sys_openat_wrapper:
1489 lgfr %r2,%r2 # int
1490 llgtr %r3,%r3 # const char *
1491 lgfr %r4,%r4 # int
1492 lgfr %r5,%r5 # int
1493 jg compat_sys_openat
1494
1495 .globl sys_mkdirat_wrapper
1496sys_mkdirat_wrapper:
1497 lgfr %r2,%r2 # int
1498 llgtr %r3,%r3 # const char *
1499 lgfr %r4,%r4 # int
1500 jg sys_mkdirat
1501
1502 .globl sys_mknodat_wrapper
1503sys_mknodat_wrapper:
1504 lgfr %r2,%r2 # int
1505 llgtr %r3,%r3 # const char *
1506 lgfr %r4,%r4 # int
1507 llgfr %r5,%r5 # unsigned int
1508 jg sys_mknodat
1509
1510 .globl sys_fchownat_wrapper
1511sys_fchownat_wrapper:
1512 lgfr %r2,%r2 # int
1513 llgtr %r3,%r3 # const char *
1514 llgfr %r4,%r4 # uid_t
1515 llgfr %r5,%r5 # gid_t
1516 lgfr %r6,%r6 # int
1517 jg sys_fchownat
1518
1519 .globl compat_sys_futimesat_wrapper
1520compat_sys_futimesat_wrapper:
1521 lgfr %r2,%r2 # int
1522 llgtr %r3,%r3 # char *
1523 llgtr %r4,%r4 # struct timeval *
1524 jg compat_sys_futimesat
1525
1526 .globl compat_sys_newfstatat_wrapper
1527compat_sys_newfstatat_wrapper:
1528 lgfr %r2,%r2 # int
1529 llgtr %r3,%r3 # char *
1530 llgtr %r4,%r4 # struct stat *
1531 lgfr %r5,%r5 # int
1532 jg compat_sys_newfstatat
1533
1534 .globl sys_unlinkat_wrapper
1535sys_unlinkat_wrapper:
1536 lgfr %r2,%r2 # int
1537 llgtr %r3,%r3 # const char *
1538 lgfr %r4,%r4 # int
1539 jg sys_unlinkat
1540
1541 .globl sys_renameat_wrapper
1542sys_renameat_wrapper:
1543 lgfr %r2,%r2 # int
1544 llgtr %r3,%r3 # const char *
1545 lgfr %r4,%r4 # int
1546 llgtr %r5,%r5 # const char *
1547 jg sys_renameat
1548
1549 .globl sys_linkat_wrapper
1550sys_linkat_wrapper:
1551 lgfr %r2,%r2 # int
1552 llgtr %r3,%r3 # const char *
1553 lgfr %r4,%r4 # int
1554 llgtr %r5,%r5 # const char *
1555 jg sys_linkat
1556
1557 .globl sys_symlinkat_wrapper
1558sys_symlinkat_wrapper:
1559 llgtr %r2,%r2 # const char *
1560 lgfr %r3,%r3 # int
1561 llgtr %r4,%r4 # const char *
1562 jg sys_symlinkat
1563
1564 .globl sys_readlinkat_wrapper
1565sys_readlinkat_wrapper:
1566 lgfr %r2,%r2 # int
1567 llgtr %r3,%r3 # const char *
1568 llgtr %r4,%r4 # char *
1569 lgfr %r5,%r5 # int
1570 jg sys_readlinkat
1571
1572 .globl sys_fchmodat_wrapper
1573sys_fchmodat_wrapper:
1574 lgfr %r2,%r2 # int
1575 llgtr %r3,%r3 # const char *
1576 llgfr %r4,%r4 # mode_t
1577 jg sys_fchmodat
1578
1579 .globl sys_faccessat_wrapper
1580sys_faccessat_wrapper:
1581 lgfr %r2,%r2 # int
1582 llgtr %r3,%r3 # const char *
1583 lgfr %r4,%r4 # int
1584 jg sys_faccessat
1585
1586 .globl compat_sys_pselect6_wrapper
1587compat_sys_pselect6_wrapper:
1588 lgfr %r2,%r2 # int
1589 llgtr %r3,%r3 # fd_set *
1590 llgtr %r4,%r4 # fd_set *
1591 llgtr %r5,%r5 # fd_set *
1592 llgtr %r6,%r6 # struct timespec *
1593 llgt %r0,164(%r15) # void *
1594 stg %r0,160(%r15)
1595 jg compat_sys_pselect6
1596
1597 .globl compat_sys_ppoll_wrapper
1598compat_sys_ppoll_wrapper:
1599 llgtr %r2,%r2 # struct pollfd *
1600 llgfr %r3,%r3 # unsigned int
1601 llgtr %r4,%r4 # struct timespec *
1602 llgtr %r5,%r5 # const sigset_t *
1603 llgfr %r6,%r6 # size_t
1604 jg compat_sys_ppoll