1/*
2 * Copyright 2019 Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _KERNEL_ARCH_ARM64_ELF_H
6#define _KERNEL_ARCH_ARM64_ELF_H
7
8#define	R_AARCH64_NONE			0		/* No relocation */
9#define	R_AARCH64_ABS64			257		/* Absolute offset */
10#define	R_AARCH64_ABS32			258		/* Absolute, 32-bit overflow check */
11#define	R_AARCH64_ABS16			259		/* Absolute, 16-bit overflow check */
12#define	R_AARCH64_PREL64		260		/* PC relative */
13#define	R_AARCH64_PREL32		261		/* PC relative, 32-bit overflow check */
14#define	R_AARCH64_PREL16		262		/* PC relative, 16-bit overflow check */
15#define	R_AARCH64_TSTBR14		279		/* TBZ/TBNZ immediate */
16#define	R_AARCH64_CONDBR19		280		/* Conditional branch immediate */
17#define	R_AARCH64_JUMP26		282		/* Branch immediate */
18#define	R_AARCH64_CALL26		283		/* Call immediate */
19#define	R_AARCH64_COPY			1024	/* Copy data from shared object */
20#define	R_AARCH64_GLOB_DAT		1025	/* Set GOT entry to data address */
21#define	R_AARCH64_JUMP_SLOT		1026	/* Set GOT entry to code address */
22#define	R_AARCH64_RELATIVE 		1027	/* Add load address of shared object */
23#define	R_AARCH64_TLS_DTPREL64	1028	/* Module-relative offset, 64 bit.  */
24#define	R_AARCH64_TLS_DTPMOD64	1029	/* Module number, 64 bit.  */
25#define	R_AARCH64_TLS_TPREL64 	1030	/* TP-relative offset, 64 bit.  */
26#define	R_AARCH64_TLSDESC 		1031	/* Identify the TLS descriptor */
27#define	R_AARCH64_IRELATIVE		1032	/* STT_GNU_IFUNC relocation.  */
28
29#define TLS_DTV_OFFSET 0
30
31#endif	/* _KERNEL_ARCH_ARM64_ELF_H */
32