libroot/arm: implement syscalls

Change-Id: Id9b37d29b802b7f469fb109054ec6446f93511b5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4979
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: X512 <[email protected]>
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
David Karoly
2022-02-23 22:40:31 +00:00
committed by waddlesplash
parent 526669de6f
commit f98f9bccb8
+35 -84
View File
@@ -1,88 +1,39 @@
/* /*
** Copyright 2001, Travis Geiselbrecht. All rights reserved. * Copyright 2022 Haiku, Inc. All Rights Reserved.
** Distributed under the terms of the NewOS License. * Distributed under the terms of the MIT License.
*/ *
#define SYSCALL0(name, n) \ * Copyright 2001, Travis Geiselbrecht. All rights reserved.
.globl name; \ * Distributed under the terms of the NewOS License.
.type name,%function; \ */
.align 4; \
name:
#define SYSCALL1(name, n) \ #include <asm_defs.h>
.globl name; \ #include <commpage_defs.h>
.type name,%function; \
.align 4; \
name:
#define SYSCALL2(name, n) \ #define _SYSCALL(name, n) \
.globl name; \ .align 8; \
.type name,%function; \ FUNCTION(name): \
.align 4; \ svc n; \
name: bx lr; \
FUNCTION_END(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 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)