diff --git a/src/system/libroot/os/arch/arm/syscalls.inc b/src/system/libroot/os/arch/arm/syscalls.inc index 1e691f2416..a700043c1b 100644 --- a/src/system/libroot/os/arch/arm/syscalls.inc +++ b/src/system/libroot/os/arch/arm/syscalls.inc @@ -1,88 +1,39 @@ /* -** Copyright 2001, Travis Geiselbrecht. All rights reserved. -** Distributed under the terms of the NewOS License. -*/ -#define SYSCALL0(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: + * Copyright 2022 Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Copyright 2001, Travis Geiselbrecht. All rights reserved. + * Distributed under the terms of the NewOS License. + */ -#define SYSCALL1(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: +#include +#include -#define SYSCALL2(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL3(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL4(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL5(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL6(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL7(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL8(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL9(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL10(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL11(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL12(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: - -#define SYSCALL13(name, n) \ -.globl name; \ -.type name,%function; \ -.align 4; \ -name: +#define _SYSCALL(name, n) \ + .align 8; \ + FUNCTION(name): \ + svc n; \ + bx lr; \ + FUNCTION_END(name) +#define SYSCALL0(name, n) _SYSCALL(name, n) +#define SYSCALL1(name, n) _SYSCALL(name, n) +#define SYSCALL2(name, n) _SYSCALL(name, n) +#define SYSCALL3(name, n) _SYSCALL(name, n) +#define SYSCALL4(name, n) _SYSCALL(name, n) +#define SYSCALL5(name, n) _SYSCALL(name, n) +#define SYSCALL6(name, n) _SYSCALL(name, n) +#define SYSCALL7(name, n) _SYSCALL(name, n) +#define SYSCALL8(name, n) _SYSCALL(name, n) +#define SYSCALL9(name, n) _SYSCALL(name, n) +#define SYSCALL10(name, n) _SYSCALL(name, n) +#define SYSCALL11(name, n) _SYSCALL(name, n) +#define SYSCALL12(name, n) _SYSCALL(name, n) +#define SYSCALL13(name, n) _SYSCALL(name, n) +#define SYSCALL14(name, n) _SYSCALL(name, n) +#define SYSCALL15(name, n) _SYSCALL(name, n) +#define SYSCALL16(name, n) _SYSCALL(name, n) +#define SYSCALL17(name, n) _SYSCALL(name, n) +#define SYSCALL18(name, n) _SYSCALL(name, n) +#define SYSCALL19(name, n) _SYSCALL(name, n) +#define SYSCALL20(name, n) _SYSCALL(name, n)