libroot/arm: implement syscalls

Change-Id: Id9b37d29b802b7f469fb109054ec6446f93511b5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4979
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This commit is contained in:
David Karoly 2022-02-19 10:30:30 +01:00 committed by waddlesplash
parent 526669de6f
commit f98f9bccb8

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)