arm64: Add more headers for code compilation

This makes ARM64 target compile more files. This patch is one of
series of patches to support new architecture, as fixes in many
places are required just to compile the code.

Signed-off-by: Jaroslaw Pelczar <[email protected]>
Change-Id: Ia060612733cd3a0fcb781fec449da164ed635b8e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1807
Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
Jaroslaw Pelczar
2019-09-01 03:02:49 +00:00
committed by waddlesplash
parent ef21ae46d9
commit 1761cb8e6f
28 changed files with 1444 additions and 5 deletions
@@ -0,0 +1,13 @@
/*
* Copyright 2019 Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _SYSTEM_ARCH_ARM64_COMMPAGE_DEFS_H
#define _SYSTEM_ARCH_ARM64_COMMPAGE_DEFS_H
#ifndef _SYSTEM_COMMPAGE_DEFS_H
# error Must not be included directly. Include <commpage_defs.h> instead!
#endif
#endif /* _SYSTEM_ARCH_ARM64_COMMPAGE_DEFS_H */
@@ -0,0 +1,12 @@
/*
* Copyright 2019 Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _KERNEL_ARCH_ARM64_CONFIG_H
#define _KERNEL_ARCH_ARM64_CONFIG_H
#define FUNCTION_CALL_PARAMETER_ALIGNMENT_TYPE unsigned long
#define STACK_GROWS_DOWNWARDS
#endif /* _KERNEL_ARCH_ARM64_CONFIG_H */
@@ -0,0 +1,12 @@
/*
* Copyright 2019 Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _SYSTEM_ARCH_ARM64_DEFS_H
#define _SYSTEM_ARCH_ARM64_DEFS_H
#define SPINLOCK_PAUSE() __asm__ __volatile__("yield")
#endif /* _SYSTEM_ARCH_ARM64_DEFS_H */
@@ -0,0 +1,25 @@
/*
* Copyright 2019 Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _KERNEL_ARCH_ARM64_ELF_H
#define _KERNEL_ARCH_ARM64_ELF_H
#define R_AARCH64_NONE 0 /* No relocation */
#define R_AARCH64_ABS64 257 /* Absolute offset */
#define R_AARCH64_ABS32 258 /* Absolute, 32-bit overflow check */
#define R_AARCH64_ABS16 259 /* Absolute, 16-bit overflow check */
#define R_AARCH64_PREL64 260 /* PC relative */
#define R_AARCH64_PREL32 261 /* PC relative, 32-bit overflow check */
#define R_AARCH64_PREL16 262 /* PC relative, 16-bit overflow check */
#define R_AARCH64_COPY 1024 /* Copy data from shared object */
#define R_AARCH64_GLOB_DAT 1025 /* Set GOT entry to data address */
#define R_AARCH64_JUMP_SLOT 1026 /* Set GOT entry to code address */
#define R_AARCH64_RELATIVE 1027 /* Add load address of shared object */
#define R_AARCH64_TLS_DTPREL64 1028
#define R_AARCH64_TLS_DTPMOD64 1029
#define R_AARCH64_TLS_TPREL64 1030
#define R_AARCH64_TLSDESC 1031 /* Identify the TLS descriptor */
#define R_AARCH64_IRELATIVE 1032
#endif /* _KERNEL_ARCH_ARM64_ELF_H */
@@ -0,0 +1,21 @@
/*
* Copyright 2019 Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _KERNEL_ARCH_REAL_TIME_DATA_H
#define _KERNEL_ARCH_REAL_TIME_DATA_H
#include <StorageDefs.h>
#include <SupportDefs.h>
struct arm64_real_time_data {
vint64 system_time_offset;
};
struct arch_real_time_data {
struct arm64_real_time_data data[2];
vint32 system_time_conversion_factor;
vint32 version;
};
#endif /* _KERNEL_ARCH_REAL_TIME_DATA_H */
@@ -0,0 +1,14 @@
/*
* Copyright 2019 Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef SYSTEM_ARCH_ARM64_ASM_DEFS_H
#define SYSTEM_ARCH_ARM64_ASM_DEFS_H
#define SYMBOL(name) .global name; name
#define SYMBOL_END(name) .size name, . - name
#define STATIC_FUNCTION(name) .type name, %function; name
#define FUNCTION(name) .global name; .type name, %function; name
#define FUNCTION_END(name) .size name, . - name
#endif /* SYSTEM_ARCH_ARM64_ASM_DEFS_H */