mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-04-14 09:57:39 +02:00
There shouldn't be any 31 bit code around anymore that matters. Remove the compat layer support required to run 31 bit code. Reason for removal is code simplification and reduced test effort. Note that this comes without any deprecation warnings added to config options, or kernel messages, since most likely those would be ignored anyway. If it turns out there is still a reason to keep the compat layer this can be reverted at any time in the future. Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
50 lines
1.7 KiB
C
50 lines
1.7 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* syscall_wrapper.h - s390 specific wrappers to syscall definitions
|
|
*
|
|
*/
|
|
|
|
#ifndef _ASM_S390_SYSCALL_WRAPPER_H
|
|
#define _ASM_S390_SYSCALL_WRAPPER_H
|
|
|
|
/* Mapping of registers to parameters for syscalls */
|
|
#define SC_S390_REGS_TO_ARGS(x, ...) \
|
|
__MAP(x, __SC_ARGS \
|
|
,, regs->orig_gpr2,, regs->gprs[3],, regs->gprs[4] \
|
|
,, regs->gprs[5],, regs->gprs[6],, regs->gprs[7])
|
|
|
|
#define SYSCALL_DEFINE0(sname) \
|
|
SYSCALL_METADATA(_##sname, 0); \
|
|
long __s390x_sys_##sname(struct pt_regs *__unused); \
|
|
ALLOW_ERROR_INJECTION(__s390x_sys_##sname, ERRNO); \
|
|
static inline long __do_sys_##sname(void); \
|
|
long __s390x_sys_##sname(struct pt_regs *__unused) \
|
|
{ \
|
|
return __do_sys_##sname(); \
|
|
} \
|
|
static inline long __do_sys_##sname(void)
|
|
|
|
#define COND_SYSCALL(name) \
|
|
cond_syscall(__s390x_sys_##name)
|
|
|
|
#define __S390_SYS_STUBx(x, fullname, name, ...)
|
|
|
|
#define __SYSCALL_DEFINEx(x, name, ...) \
|
|
long __s390x_sys##name(struct pt_regs *regs); \
|
|
ALLOW_ERROR_INJECTION(__s390x_sys##name, ERRNO); \
|
|
static inline long __se_sys##name(__MAP(x, __SC_LONG, __VA_ARGS__)); \
|
|
static inline long __do_sys##name(__MAP(x, __SC_DECL, __VA_ARGS__)); \
|
|
__S390_SYS_STUBx(x, name, __VA_ARGS__); \
|
|
long __s390x_sys##name(struct pt_regs *regs) \
|
|
{ \
|
|
return __se_sys##name(SC_S390_REGS_TO_ARGS(x, __VA_ARGS__)); \
|
|
} \
|
|
static inline long __se_sys##name(__MAP(x, __SC_LONG, __VA_ARGS__)) \
|
|
{ \
|
|
__MAP(x, __SC_TEST, __VA_ARGS__); \
|
|
return __do_sys##name(__MAP(x, __SC_CAST, __VA_ARGS__)); \
|
|
} \
|
|
static inline long __do_sys##name(__MAP(x, __SC_DECL, __VA_ARGS__))
|
|
|
|
#endif /* _ASM_S390_SYSCALL_WRAPPER_H */
|