Commit 95c49c77 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] posix messages queues for s390.

From: Martin Schwidefsky <schwidefsky@de.ibm.com>

The new message queue interface needs the following patch to get it working
on s390 (31-bit, 64-bit and 31-bit compat).
parent 76620e09
......@@ -1352,3 +1352,47 @@ compat_sys_fstatfs64_wrapper:
llgfr %r3,%r3 # compat_size_t
llgtr %r4,%r4 # struct compat_statfs64 *
jg compat_fstatfs64
.globl compat_sys_mq_open_wrapper
compat_sys_mq_open_wrapper:
llgtr %r2,%r2 # const char *
lgfr %r3,%r3 # int
llgfr %r4,%r4 # mode_t
llgtr %r5,%r5 # struct compat_mq_attr *
jg compat_sys_mq_open
.globl sys_mq_unlink_wrapper
sys32_mq_unlink_wrapper:
llgtr %r2,%r2 # const char *
jg sys_mq_unlink
.globl compat_sys_mq_timedsend_wrapper
compat_sys_mq_timedsend_wrapper:
lgfr %r2,%r2 # mqd_t
llgtr %r3,%r3 # const char *
llgfr %r4,%r4 # size_t
llgfr %r5,%r5 # unsigned int
llgtr %r6,%r6 # const struct compat_timespec *
jg compat_sys_mq_timedsend
.globl compat_sys_mq_timedreceive_wrapper
compat_sys_mq_timedreceive_wrapper:
lgfr %r2,%r2 # mqd_t
llgtr %r3,%r3 # char *
llgfr %r4,%r4 # size_t
llgtr %r5,%r5 # unsigned int *
llgtr %r6,%r6 # const struct compat_timespec *
jg compat_sys_mq_timedreceive
.globl compat_sys_mq_notify_wrapper
compat_sys_mq_notify_wrapper:
lgfr %r2,%r2 # mqd_t
llgtr %r3,%r3 # struct compat_sigevent *
jg compat_sys_mq_notify
.globl compat_sys_mq_getsetattr_wrapper
compat_sys_mq_getsetattr_wrapper:
lgfr %r2,%r2 # mqd_t
llgtr %r3,%r3 # struct compat_mq_attr *
llgtr %r4,%r4 # struct compat_mq_attr *
jg compat_sys_mq_getsetattr
......@@ -275,3 +275,13 @@ NI_SYSCALL /* reserved for vserver */
SYSCALL(s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
NI_SYSCALL /* 267 new sys_remap_file_pages */
NI_SYSCALL /* 268 sys_mbind */
NI_SYSCALL /* 269 sys_get_mempolicy */
NI_SYSCALL /* 270 sys_set_mempolicy */
SYSCALL(sys_mq_open,sys_mq_open,compat_sys_mq_open_wrapper)
SYSCALL(sys_mq_unlink,sys_mq_unlink,sys32_mq_unlink_wrapper)
SYSCALL(sys_mq_timedsend,sys_mq_timedsend,compat_sys_mq_timedsend_wrapper)
SYSCALL(sys_mq_timedreceive,sys_mq_timedreceive,compat_sys_mq_timedreceive_wrapper)
SYSCALL(sys_mq_notify,sys_mq_notify,compat_sys_mq_notify_wrapper)
SYSCALL(sys_mq_getsetattr,sys_mq_getsetattr,compat_sys_mq_getsetattr_wrapper)
......@@ -233,9 +233,7 @@
#define __NR_sched_setaffinity 239
#define __NR_sched_getaffinity 240
#define __NR_tgkill 241
/*
* Number 242 is reserved for tux
*/
/* Number 242 is reserved for tux */
#define __NR_io_setup 243
#define __NR_io_destroy 244
#define __NR_io_getevents 245
......@@ -256,15 +254,22 @@
#define __NR_clock_gettime (__NR_timer_create+6)
#define __NR_clock_getres (__NR_timer_create+7)
#define __NR_clock_nanosleep (__NR_timer_create+8)
/*
* Number 263 is reserved for vserver
*/
/* Number 263 is reserved for vserver */
#define __NR_fadvise64_64 264
#define __NR_statfs64 265
#define __NR_fstatfs64 266
/* Number 267 is reserved for new sys_remap_file_pages */
/* Number 268 is reserved for new sys_mbind */
/* Number 269 is reserved for new sys_get_mempolicy */
/* Number 270 is reserved for new sys_set_mempolicy */
#define __NR_mq_open 271
#define __NR_mq_unlink 272
#define __NR_mq_timedsend 273
#define __NR_mq_timedreceive 274
#define __NR_mq_notify 275
#define __NR_mq_getsetattr 276
#define NR_syscalls 267
#define NR_syscalls 277
/*
* There are some system calls that are not present on 64 bit, some
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment