Fromn 2.4 s390/s390x doesn't implement the xattr syscalls yet.

p.s. any chance s390 will at least be in a compilable shape when
2.4.21 is release?


--- 1.14/arch/s390/kernel/entry.S       Tue Jul 30 13:27:40 2002
+++ edited/arch/s390/kernel/entry.S     Wed Feb 12 13:13:37 2003
@@ -558,18 +558,18 @@
         .long  sys_fcntl64
        .long  sys_ni_syscall
        .long  sys_ni_syscall
-       .long  sys_ni_syscall            /* 224 - reserved for setxattr  */
-       .long  sys_ni_syscall            /* 225 - reserved for lsetxattr */
-       .long  sys_ni_syscall            /* 226 - reserved for fsetxattr */
-       .long  sys_ni_syscall            /* 227 - reserved for getxattr  */
-       .long  sys_ni_syscall            /* 228 - reserved for lgetxattr */
-       .long  sys_ni_syscall            /* 229 - reserved for fgetxattr */
-       .long  sys_ni_syscall            /* 230 - reserved for listxattr */
-       .long  sys_ni_syscall            /* 231 - reserved for llistxattr */
-       .long  sys_ni_syscall            /* 232 - reserved for flistxattr */
-       .long  sys_ni_syscall            /* 233 - reserved for removexattr */
-       .long  sys_ni_syscall            /* 234 - reserved for lremovexattr */
-       .long  sys_ni_syscall            /* 235 - reserved for fremovexattr */
+       .long  sys_setxattr
+       .long  sys_lsetxattr            /* 225 */
+       .long  sys_fsetxattr
+       .long  sys_getxattr
+       .long  sys_lgetxattr
+       .long  sys_fgetxattr
+       .long  sys_listxattr            /* 230 */
+       .long  sys_llistxattr
+       .long  sys_flistxattr
+       .long  sys_removexattr
+       .long  sys_lremovexattr
+       .long  sys_fremovexattr         /* 235 */
        .long  sys_gettid
        .long  sys_tkill
        .rept  255-237
--- 1.13/arch/s390x/kernel/entry.S      Tue Jul 30 13:27:40 2002
+++ edited/arch/s390x/kernel/entry.S    Wed Feb 12 13:13:35 2003
@@ -591,18 +591,18 @@
        .long  SYSCALL(sys_ni_syscall,sys32_fcntl64_wrapper)
        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall)
        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall)
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 224 - reserved for setxattr  
*/
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 225 - reserved for lsetxattr 
*/
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 226 - reserved for fsetxattr 
*/
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 227 - reserved for getxattr  
*/
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 228 - reserved for lgetxattr 
*/
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 229 - reserved for fgetxattr 
*/
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 230 - reserved for listxattr 
*/
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 231 - reserved for llistxattr 
*/
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 232 - reserved for flistxattr 
*/
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 233 - reserved for 
removexattr */
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 234 - reserved for 
lremovexattr */
-       .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 235 - reserved for 
fremovexattr */
+       .long  SYSCALL(sys_setxattr,sys32_setxattr_wrapper)
+       .long  SYSCALL(sys_lsetxattr,sys32_lsetxattr_wrapper)   /* 225 */
+       .long  SYSCALL(sys_fsetxattr,sys32_fsetxattr_wrapper)
+       .long  SYSCALL(sys_getxattr,sys32_getxattr_wrapper)
+       .long  SYSCALL(sys_lgetxattr,sys32_lgetxattr_wrapper)
+       .long  SYSCALL(sys_fgetxattr,sys32_fgetxattr_wrapper)
+       .long  SYSCALL(sys_listxattr,sys32_listxattr_wrapper)   /* 230 */
+       .long  SYSCALL(sys_llistxattr,sys32_llistxattr_wrapper)
+       .long  SYSCALL(sys_flistxattr,sys32_flistxattr_wrapper)
+       .long  SYSCALL(sys_removexattr,sys32_removexattr_wrapper)
+       .long  SYSCALL(sys_lremovexattr,sys32_lremovexattr_wrapper)
+       .long  SYSCALL(sys_fremovexattr,sys32_fremovexattr_wrapper)/* 235 */
        .long  SYSCALL(sys_gettid,sys_gettid)
        .long  SYSCALL(sys_tkill,sys_tkill)
        .rept  255-237
--- 1.4/arch/s390x/kernel/wrapper32.S   Tue Feb  5 15:10:15 2002
+++ edited/arch/s390x/kernel/wrapper32.S        Wed Feb 12 13:13:36 2003
@@ -1091,3 +1091,95 @@
        llgtr   %r3,%r3                 # struct stat64 *
        llgfr   %r4,%r4                 # long
        jg      sys32_fstat64           # branch to system call
+
+       .globl  sys32_setxattr_wrapper
+sys32_setxattr_wrapper:
+       llgtr   %r2,%r2                 # char *
+       llgtr   %r3,%r3                 # char *
+       llgtr   %r4,%r4                 # void *
+       llgfr   %r5,%r5                 # size_t
+       lgfr    %r6,%r6                 # int
+       jg      sys_setxattr
+
+       .globl  sys32_lsetxattr_wrapper
+sys32_lsetxattr_wrapper:
+       llgtr   %r2,%r2                 # char *
+       llgtr   %r3,%r3                 # char *
+       llgtr   %r4,%r4                 # void *
+       llgfr   %r5,%r5                 # size_t
+       lgfr    %r6,%r6                 # int
+       jg      sys_lsetxattr
+
+       .globl  sys32_fsetxattr_wrapper
+sys32_fsetxattr_wrapper:
+       lgfr    %r2,%r2                 # int
+       llgtr   %r3,%r3                 # char *
+       llgtr   %r4,%r4                 # void *
+       llgfr   %r5,%r5                 # size_t
+       lgfr    %r6,%r6                 # int
+       jg      sys_fsetxattr
+
+       .globl  sys32_getxattr_wrapper
+sys32_getxattr_wrapper:
+       llgtr   %r2,%r2                 # char *
+       llgtr   %r3,%r3                 # char *
+       llgtr   %r4,%r4                 # void *
+       llgfr   %r5,%r5                 # size_t
+       jg      sys_getxattr
+
+       .globl  sys32_lgetxattr_wrapper
+sys32_lgetxattr_wrapper:
+       llgtr   %r2,%r2                 # char *
+       llgtr   %r3,%r3                 # char *
+       llgtr   %r4,%r4                 # void *
+       llgfr   %r5,%r5                 # size_t
+       jg      sys_lgetxattr
+
+       .globl  sys32_fgetxattr_wrapper
+sys32_fgetxattr_wrapper:
+       lgfr    %r2,%r2                 # int
+       llgtr   %r3,%r3                 # char *
+       llgtr   %r4,%r4                 # void *
+       llgfr   %r5,%r5                 # size_t
+       jg      sys_fgetxattr
+
+       .globl  sys32_listxattr_wrapper
+sys32_listxattr_wrapper:
+       llgtr   %r2,%r2                 # char *
+       llgtr   %r3,%r3                 # char *
+       llgfr   %r4,%r4                 # size_t
+       jg      sys_listxattr
+
+       .globl  sys32_llistxattr_wrapper
+sys32_llistxattr_wrapper:
+       llgtr   %r2,%r2                 # char *
+       llgtr   %r3,%r3                 # char *
+       llgfr   %r4,%r4                 # size_t
+       jg      sys_llistxattr
+
+       .globl  sys32_flistxattr_wrapper
+sys32_flistxattr_wrapper:
+       lgfr    %r2,%r2                 # int
+       llgtr   %r3,%r3                 # char *
+       llgfr   %r4,%r4                 # size_t
+       jg      sys_flistxattr
+
+       .globl  sys32_removexattr_wrapper
+sys32_removexattr_wrapper:
+       llgtr   %r2,%r2                 # char *
+       llgtr   %r3,%r3                 # char *
+       jg      sys_removexattr
+
+       .globl  sys32_lremovexattr_wrapper
+sys32_lremovexattr_wrapper:
+       llgtr   %r2,%r2                 # char *
+       llgtr   %r3,%r3                 # char *
+       jg      sys_lremovexattr
+
+       .globl  sys32_fremovexattr_wrapper
+sys32_fremovexattr_wrapper:
+       lgfr    %r2,%r2                 # int
+       llgtr   %r3,%r3                 # char *
+       jg      sys_fremovexattr
+
+
--- 1.5/include/asm-s390/unistd.h       Wed Jun 26 15:00:25 2002
+++ edited/include/asm-s390/unistd.h    Wed Feb 12 13:13:37 2003
@@ -212,9 +212,18 @@
 #define __NR_madvise            219
 #define __NR_getdents64                220
 #define __NR_fcntl64           221
-/*
- * Numbers 224-235 are reserved for posix acl
- */
+#define __NR_setxattr          224
+#define __NR_lsetxattr         225
+#define __NR_fsetxattr         226
+#define __NR_getxattr          227
+#define __NR_lgetxattr         228
+#define __NR_fgetxattr         229
+#define __NR_listxattr         230
+#define __NR_llistxattr                231
+#define __NR_flistxattr                232
+#define __NR_removexattr       233
+#define __NR_lremovexattr      234
+#define __NR_fremovexattr      235
 #define __NR_gettid            236
 #define __NR_tkill             237

--- 1.6/include/asm-s390x/unistd.h      Wed Jun 26 15:00:25 2002
+++ edited/include/asm-s390x/unistd.h   Wed Feb 12 13:13:35 2003
@@ -180,9 +180,18 @@
 #define __NR_pivot_root         217
 #define __NR_mincore            218
 #define __NR_madvise            219
-/*
- * Numbers 224-235 are reserved for posix acl
- */
+#define __NR_setxattr          224
+#define __NR_lsetxattr         225
+#define __NR_fsetxattr         226
+#define __NR_getxattr          227
+#define __NR_lgetxattr         228
+#define __NR_fgetxattr         229
+#define __NR_listxattr         230
+#define __NR_llistxattr                231
+#define __NR_flistxattr                232
+#define __NR_removexattr       233
+#define __NR_lremovexattr      234
+#define __NR_fremovexattr      235
 #define __NR_gettid            236
 #define __NR_tkill             237

Reply via email to