Zephyr Project API
4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
elf.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2025 NVIDIA Corporation <jholdsworth@nvidia.com>
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
11
12
#ifndef ZEPHYR_INCLUDE_ARCH_OPENRISC_ELF_H_
13
#define ZEPHYR_INCLUDE_ARCH_OPENRISC_ELF_H_
14
21
22
/* Basic relocations */
23
#define R_OR1K_NONE 0
24
#define R_OR1K_32 1
25
#define R_OR1K_16 2
26
#define R_OR1K_8 3
27
#define R_OR1K_LO_16_IN_INSN 4
28
#define R_OR1K_HI_16_IN_INSN 5
29
#define R_OR1K_INSN_REL_26 6
30
#define R_OR1K_GNU_VTENTRY 7
31
#define R_OR1K_GNU_VTINHERIT 8
32
#define R_OR1K_32_PCREL 9
33
#define R_OR1K_16_PCREL 10
34
#define R_OR1K_8_PCREL 11
35
36
/* GOT/PLT relocations */
37
#define R_OR1K_GOTPC_HI16 12
38
#define R_OR1K_GOTPC_LO16 13
39
#define R_OR1K_GOT16 14
40
#define R_OR1K_PLT26 15
41
#define R_OR1K_GOTOFF_HI16 16
42
#define R_OR1K_GOTOFF_LO16 17
43
44
/* Dynamic relocations */
45
#define R_OR1K_COPY 18
46
#define R_OR1K_GLOB_DAT 19
47
#define R_OR1K_JMP_SLOT 20
48
#define R_OR1K_RELATIVE 21
49
50
/* TLS relocations */
51
#define R_OR1K_TLS_GD_HI16 22
52
#define R_OR1K_TLS_GD_LO16 23
53
#define R_OR1K_TLS_LDM_HI16 24
54
#define R_OR1K_TLS_LDM_LO16 25
55
#define R_OR1K_TLS_LDO_HI16 26
56
#define R_OR1K_TLS_LDO_LO16 27
57
#define R_OR1K_TLS_IE_HI16 28
58
#define R_OR1K_TLS_IE_LO16 29
59
#define R_OR1K_TLS_LE_HI16 30
60
#define R_OR1K_TLS_LE_LO16 31
61
#define R_OR1K_TLS_TPOFF 32
62
#define R_OR1K_TLS_DTPOFF 33
63
#define R_OR1K_TLS_DTPMOD 34
64
65
/* Adjusted high / split-immediate relocations */
66
#define R_OR1K_AHI16 35
67
#define R_OR1K_GOTOFF_AHI16 36
68
#define R_OR1K_TLS_IE_AHI16 37
69
#define R_OR1K_TLS_LE_AHI16 38
70
#define R_OR1K_SLO16 39
71
#define R_OR1K_GOTOFF_SLO16 40
72
#define R_OR1K_TLS_LE_SLO16 41
73
74
/* Page-relative relocations */
75
#define R_OR1K_PCREL_PG21 42
76
#define R_OR1K_GOT_PG21 43
77
#define R_OR1K_TLS_GD_PG21 44
78
#define R_OR1K_TLS_LDM_PG21 45
79
#define R_OR1K_TLS_IE_PG21 46
80
#define R_OR1K_LO13 47
81
#define R_OR1K_GOT_LO13 48
82
#define R_OR1K_TLS_GD_LO13 49
83
#define R_OR1K_TLS_LDM_LO13 50
84
#define R_OR1K_TLS_IE_LO13 51
85
#define R_OR1K_SLO13 52
86
#define R_OR1K_PLTA26 53
87
#define R_OR1K_GOT_AHI16 54
88
90
97
99
#define R_OR1K_INSN_REL_26_MASK 0x03ffffffU
100
102
#define R_OR1K_IMM16_MASK 0x0000ffffU
103
105
#define R_OR1K_PG21_MASK 0x001fffffU
106
117
#define R_OR1K_SLO_FIELD_MASK 0x03e007ffU
118
126
#define R_OR1K_SLO_PACK(insn, imm) \
127
(((insn) & ~R_OR1K_SLO_FIELD_MASK) | \
128
(((uint32_t)(imm) & 0xf800U) << 10) | \
129
((uint32_t)(imm) & 0x07ffU))
130
132
#define R_OR1K_PAGE_SIZE 8192U
134
#define R_OR1K_PAGE_MASK (~(R_OR1K_PAGE_SIZE - 1U))
135
136
#endif
/* ZEPHYR_INCLUDE_ARCH_OPENRISC_ELF_H_ */
include
zephyr
arch
openrisc
elf.h
Generated on
for Zephyr Project API by
1.16.1