1/*
2 * Copyright 2009-2019, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _SYSTEM_ARCH_RISCV64_ELF_H
6#define _SYSTEM_ARCH_RISCV64_ELF_H
7
8
9#define R_RISCV_NONE				0
10#define R_RISCV_32					1
11#define R_RISCV_64					2
12#define R_RISCV_RELATIVE			3
13#define R_RISCV_COPY				4
14#define R_RISCV_JUMP_SLOT			5
15#define R_RISCV_TLS_DTPMOD32		6
16#define R_RISCV_TLS_DTPMOD64		7
17#define R_RISCV_TLS_DTPREL32		8
18#define R_RISCV_TLS_DTPREL64		9
19#define R_RISCV_TLS_TPREL32			10
20#define R_RISCV_TLS_TPREL64			11
21#define R_RISCV_BRANCH				16
22#define R_RISCV_JAL					17
23#define R_RISCV_CALL				18
24#define R_RISCV_CALL_PLT			19
25#define R_RISCV_GOT_HI20			20
26#define R_RISCV_TLS_GOT_HI20		21
27#define R_RISCV_TLS_GD_HI20			22
28#define R_RISCV_PCREL_HI20			23
29#define R_RISCV_PCREL_LO12_I		24
30#define R_RISCV_PCREL_LO12_S		25
31#define R_RISCV_HI20				26
32#define R_RISCV_LO12_I				27
33#define R_RISCV_LO12_S				28
34#define R_RISCV_TPREL_HI20			29
35#define R_RISCV_TPREL_LO12_I		30
36#define R_RISCV_TPREL_LO12_S		31
37#define R_RISCV_TPREL_ADD			32
38#define R_RISCV_ADD8				33
39#define R_RISCV_ADD16				34
40#define R_RISCV_ADD32				35
41#define R_RISCV_ADD64				36
42#define R_RISCV_SUB8				37
43#define R_RISCV_SUB16				38
44#define R_RISCV_SUB32				39
45#define R_RISCV_SUB64				40
46#define R_RISCV_GNU_VTINHERIT		41
47#define R_RISCV_GNU_VTENTRY			42
48#define R_RISCV_ALIGN				43
49#define R_RISCV_RVC_BRANCH			44
50#define R_RISCV_RVC_JUMP			45
51#define R_RISCV_LUI					46
52#define R_RISCV_GPREL_I				47
53#define R_RISCV_GPREL_S				48
54#define R_RISCV_TPREL_I				49
55#define R_RISCV_TPREL_S				50
56#define R_RISCV_RELAX				51
57#define R_RISCV_SUB6				52
58#define R_RISCV_SET6				53
59#define R_RISCV_SET8				54
60#define R_RISCV_SET16				55
61#define R_RISCV_SET32				56
62#define R_RISCV_32_PCREL			57
63#define R_RISCV_IRELATIVE			58
64
65#define TLS_DTV_OFFSET 0x800
66
67
68#endif	/* _SYSTEM_ARCH_RISCV64_ELF_H */
69