powerpc/SYS.h: implement _SYSCALL_BODY() macro

Add _SYSCALL_BODY() macro which invokes the syscall via _SYCALL() and
calls cerror as required.  Use to implement PSEUDO() and RSYSCALL().

Reviewed by:	jhibbits
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D43323
This commit is contained in:
Brooks Davis 2024-01-11 18:27:20 +00:00
parent b068bb09a1
commit 6597ea4481

View file

@ -40,14 +40,17 @@
li 0,(SYS_##name); \
sc
#define _SYSCALL_BODY(name) \
_SYSCALL(name); \
bnslr; \
b CNAME(HIDENAME(cerror))
#define PSEUDO(name) \
.text; \
.align 2; \
ENTRY(__sys_##name); \
WEAK_REFERENCE(__sys_##name, _##name); \
_SYSCALL(name); \
bnslr; \
b CNAME(HIDENAME(cerror)); \
_SYSCALL_BODY(name); \
END(__sys_##name)
#define RSYSCALL(name) \
@ -56,7 +59,5 @@ END(__sys_##name)
ENTRY(__sys_##name); \
WEAK_REFERENCE(__sys_##name, name); \
WEAK_REFERENCE(__sys_##name, _##name); \
_SYSCALL(name); \
bnslr; \
b CNAME(HIDENAME(cerror)); \
_SYSCALL_BODY(name); \
END(__sys_##name)