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