libroot/syscall: Add riscv64, improve error handling
* Add generic riscv64 support. * Previously, missing architecture syscall.inc's would result in obsecure unrecognized opcode messages. * The logic should be identical, but with a friendly error. Change-Id: I8f4878e99faf0f64465d2a27c3da2dd1e43c4ba5 Reviewed-on: https://review.haiku-os.org/c/1402 Reviewed-by: Alex von Gluck IV <[email protected]>
This commit is contained in:
committed by
Alex von Gluck IV
parent
d5ee99bbd7
commit
f481aba1a6
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
** Copyright 2001-2007, Travis Geiselbrecht. All rights reserved.
|
||||
** Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
/* TODO actuall syscalls? */
|
||||
#define _SYSCALL(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)
|
||||
@@ -1,29 +1,30 @@
|
||||
#ifdef ARCH_x86
|
||||
/*
|
||||
* Copyright 2019, Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
#if defined(ARCH_x86)
|
||||
# include "arch/x86/syscalls.inc"
|
||||
#endif
|
||||
#ifdef ARCH_x86_64
|
||||
#elif defined(ARCH_x86_64)
|
||||
# include "arch/x86_64/syscalls.inc"
|
||||
#endif
|
||||
#ifdef ARCH_alpha
|
||||
#elif defined(ARCH_alpha)
|
||||
# include "arch/alpha/syscalls.inc"
|
||||
#endif
|
||||
#ifdef ARCH_sh4
|
||||
#elif defined(ARCH_sh4)
|
||||
# include "arch/sh4/syscalls.inc"
|
||||
#endif
|
||||
#ifdef ARCH_sparc
|
||||
#elif defined(ARCH_sparc)
|
||||
# include "arch/sparc/syscalls.inc"
|
||||
#endif
|
||||
#ifdef ARCH_sparc64
|
||||
#elif defined(ARCH_sparc64)
|
||||
# include "arch/sparc64/syscalls.inc"
|
||||
#endif
|
||||
#ifdef ARCH_ppc
|
||||
#elif defined(ARCH_ppc)
|
||||
# include "arch/ppc/syscalls.inc"
|
||||
#endif
|
||||
#ifdef ARCH_arm
|
||||
#elif defined(ARCH_arm)
|
||||
# include "arch/arm/syscalls.inc"
|
||||
#endif
|
||||
#ifdef ARCH_m68k
|
||||
#elif defined(ARCH_m68k)
|
||||
# include "arch/m68k/syscalls.inc"
|
||||
#elif defined(ARCH_riscv64)
|
||||
# include "arch/riscv64/syscalls.inc"
|
||||
#else
|
||||
#error No syscalls macros defined for this architecture!
|
||||
#endif
|
||||
|
||||
/* include the auto-generated file syscalls file */
|
||||
|
||||
Reference in New Issue
Block a user