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.
** 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 <asm_defs.h>
#include <commpage_defs.h>
#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)