You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mcd_elf_define.h 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. /*
  2. * Copyright (c) 2025, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2025-08-16 Rbb666 first version
  9. */
  10. #ifndef __MCD_ELF_DEFINE_H__
  11. #define __MCD_ELF_DEFINE_H__
  12. /* Fields in e_ident[]. */
  13. #define EI_MAG0 0 /* File identification byte 0 index */
  14. #define ELFMAG0 0x7F /* Magic number byte 0 */
  15. #define EI_MAG1 1 /* File identification byte 1 index */
  16. #define ELFMAG1 'E' /* Magic number byte 1 */
  17. #define EI_MAG2 2 /* File identification byte 2 index */
  18. #define ELFMAG2 'L' /* Magic number byte 2 */
  19. #define EI_MAG3 3 /* File identification byte 3 index */
  20. #define ELFMAG3 'F' /* Magic number byte 3 */
  21. #define EI_CLASS 4 /* File class */
  22. #define ELFCLASSNONE 0 /* Invalid class */
  23. #define ELFCLASS32 1 /* 32-bit objects */
  24. #define ELFCLASS64 2 /* 64-bit objects */
  25. #define EI_DATA 5 /* Data encoding */
  26. #define ELFDATANONE 0 /* Invalid data encoding */
  27. #define ELFDATA2LSB 1 /* 2's complement, little endian */
  28. #define ELFDATA2MSB 2 /* 2's complement, big endian */
  29. #define EI_VERSION 6 /* File version */
  30. #define EI_OSABI 7 /* Operating System/ABI indication */
  31. #define ELFOSABI_NONE 0 /* UNIX System V ABI */
  32. #define ELFOSABI_HPUX 1 /* HP-UX operating system */
  33. #define ELFOSABI_NETBSD 2 /* NetBSD */
  34. #define ELFOSABI_GNU 3 /* GNU */
  35. #define ELFOSABI_LINUX 3 /* Alias for ELFOSABI_GNU */
  36. #define ELFOSABI_SOLARIS 6 /* Solaris */
  37. #define ELFOSABI_AIX 7 /* AIX */
  38. #define ELFOSABI_IRIX 8 /* IRIX */
  39. #define ELFOSABI_FREEBSD 9 /* FreeBSD */
  40. #define ELFOSABI_TRU64 10 /* TRU64 UNIX */
  41. #define ELFOSABI_MODESTO 11 /* Novell Modesto */
  42. #define ELFOSABI_OPENBSD 12 /* OpenBSD */
  43. #define ELFOSABI_OPENVMS 13 /* OpenVMS */
  44. #define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */
  45. #define ELFOSABI_AROS 15 /* AROS */
  46. #define ELFOSABI_FENIXOS 16 /* FenixOS */
  47. #define ELFOSABI_CLOUDABI 17 /* Nuxi CloudABI */
  48. #define ELFOSABI_OPENVOS 18 /* Stratus Technologies OpenVOS */
  49. #define ELFOSABI_C6000_ELFABI 64 /* Bare-metal TMS320C6000 */
  50. #define ELFOSABI_C6000_LINUX 65 /* Linux TMS320C6000 */
  51. #define ELFOSABI_ARM_FDPIC 65 /* ARM FDPIC */
  52. #define ELFOSABI_ARM 97 /* ARM */
  53. #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
  54. #define EI_ABIVERSION 8 /* ABI version */
  55. #define EI_PAD 9 /* Start of padding bytes */
  56. #define EI_NIDENT 16
  57. /* Values for e_type, which identifies the object file type. */
  58. #define ET_NONE 0 /* No file type */
  59. #define ET_REL 1 /* Relocatable file */
  60. #define ET_EXEC 2 /* Position-dependent executable file */
  61. #define ET_DYN \
  62. 3 /* Position-independent executable or \
  63. shared object file */
  64. #define ET_CORE 4 /* Core file */
  65. #define ET_LOOS 0xFE00 /* Operating system-specific */
  66. #define ET_HIOS 0xFEFF /* Operating system-specific */
  67. #define ET_LOPROC 0xFF00 /* Processor-specific */
  68. #define ET_HIPROC 0xFFFF /* Processor-specific */
  69. /* Values for e_machine, which identifies the architecture. These numbers
  70. are officially assigned by registry@sco.com. See below for a list of
  71. ad-hoc numbers used during initial development. */
  72. #define EM_NONE 0 /* No machine */
  73. #define EM_M32 1 /* AT&T WE 32100 */
  74. #define EM_SPARC 2 /* SUN SPARC */
  75. #define EM_386 3 /* Intel 80386 */
  76. #define EM_68K 4 /* Motorola m68k family */
  77. #define EM_88K 5 /* Motorola m88k family */
  78. #define EM_IAMCU 6 /* Intel MCU */
  79. #define EM_860 7 /* Intel 80860 */
  80. #define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */
  81. #define EM_S370 9 /* IBM System/370 */
  82. #define EM_MIPS_RS3_LE \
  83. 10 /* MIPS R3000 little-endian (Oct 4 1999 Draft). Deprecated. */
  84. #define EM_OLD_SPARCV9 \
  85. 11 /* Old version of Sparc v9, from before the ABI. Deprecated. */
  86. #define EM_res011 11 /* Reserved */
  87. #define EM_res012 12 /* Reserved */
  88. #define EM_res013 13 /* Reserved */
  89. #define EM_res014 14 /* Reserved */
  90. #define EM_PARISC 15 /* HPPA */
  91. #define EM_res016 16 /* Reserved */
  92. #define EM_PPC_OLD 17 /* Old version of PowerPC. Deprecated. */
  93. #define EM_VPP550 17 /* Fujitsu VPP500 */
  94. #define EM_SPARC32PLUS 18 /* Sun's "v8plus" */
  95. #define EM_960 19 /* Intel 80960 */
  96. #define EM_PPC 20 /* PowerPC */
  97. #define EM_PPC64 21 /* 64-bit PowerPC */
  98. #define EM_S390 22 /* IBM S/390 */
  99. #define EM_SPU 23 /* Sony/Toshiba/IBM SPU */
  100. #define EM_res024 24 /* Reserved */
  101. #define EM_res025 25 /* Reserved */
  102. #define EM_res026 26 /* Reserved */
  103. #define EM_res027 27 /* Reserved */
  104. #define EM_res028 28 /* Reserved */
  105. #define EM_res029 29 /* Reserved */
  106. #define EM_res030 30 /* Reserved */
  107. #define EM_res031 31 /* Reserved */
  108. #define EM_res032 32 /* Reserved */
  109. #define EM_res033 33 /* Reserved */
  110. #define EM_res034 34 /* Reserved */
  111. #define EM_res035 35 /* Reserved */
  112. #define EM_V800 36 /* NEC V800 series */
  113. #define EM_FR20 37 /* Fujitsu FR20 */
  114. #define EM_RH32 38 /* TRW RH32 */
  115. #define EM_MCORE \
  116. 39 /* Motorola M*Core */ /* May also be taken by Fujitsu MMA \
  117. */
  118. #define EM_RCE 39 /* Old name for MCore */
  119. #define EM_ARM 40 /* ARM */
  120. #define EM_OLD_ALPHA 41 /* Digital Alpha */
  121. #define EM_SH 42 /* Renesas (formerly Hitachi) / SuperH SH */
  122. #define EM_SPARCV9 43 /* SPARC v9 64-bit */
  123. #define EM_TRICORE 44 /* Siemens Tricore embedded processor */
  124. #define EM_ARC 45 /* ARC Cores */
  125. #define EM_H8_300 46 /* Renesas (formerly Hitachi) H8/300 */
  126. #define EM_H8_300H 47 /* Renesas (formerly Hitachi) H8/300H */
  127. #define EM_H8S 48 /* Renesas (formerly Hitachi) H8S */
  128. #define EM_H8_500 49 /* Renesas (formerly Hitachi) H8/500 */
  129. #define EM_IA_64 50 /* Intel IA-64 Processor */
  130. #define EM_MIPS_X 51 /* Stanford MIPS-X */
  131. #define EM_COLDFIRE 52 /* Motorola Coldfire */
  132. #define EM_68HC12 53 /* Motorola M68HC12 */
  133. #define EM_MMA 54 /* Fujitsu Multimedia Accelerator */
  134. #define EM_PCP 55 /* Siemens PCP */
  135. #define EM_NCPU 56 /* Sony nCPU embedded RISC processor */
  136. #define EM_NDR1 57 /* Denso NDR1 microprocessor */
  137. #define EM_STARCORE 58 /* Motorola Star*Core processor */
  138. #define EM_ME16 59 /* Toyota ME16 processor */
  139. #define EM_ST100 60 /* STMicroelectronics ST100 processor */
  140. #define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ embedded processor */
  141. #define EM_X86_64 62 /* Advanced Micro Devices X86-64 processor */
  142. #define EM_PDSP 63 /* Sony DSP Processor */
  143. #define EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */
  144. #define EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */
  145. #define EM_FX66 66 /* Siemens FX66 microcontroller */
  146. #define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 bit microcontroller */
  147. #define EM_ST7 68 /* STMicroelectronics ST7 8-bit microcontroller */
  148. #define EM_68HC16 69 /* Motorola MC68HC16 Microcontroller */
  149. #define EM_68HC11 70 /* Motorola MC68HC11 Microcontroller */
  150. #define EM_68HC08 71 /* Motorola MC68HC08 Microcontroller */
  151. #define EM_68HC05 72 /* Motorola MC68HC05 Microcontroller */
  152. #define EM_SVX 73 /* Silicon Graphics SVx */
  153. #define EM_ST19 74 /* STMicroelectronics ST19 8-bit cpu */
  154. #define EM_VAX 75 /* Digital VAX */
  155. #define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
  156. #define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded cpu */
  157. #define EM_FIREPATH 78 /* Element 14 64-bit DSP processor */
  158. #define EM_ZSP 79 /* LSI Logic's 16-bit DSP processor */
  159. #define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */
  160. #define EM_HUANY 81 /* Harvard's machine-independent format */
  161. #define EM_PRISM 82 /* SiTera Prism */
  162. #define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
  163. #define EM_FR30 84 /* Fujitsu FR30 */
  164. #define EM_D10V 85 /* Mitsubishi D10V */
  165. #define EM_D30V 86 /* Mitsubishi D30V */
  166. #define EM_V850 87 /* Renesas V850 (formerly NEC V850) */
  167. #define EM_M32R 88 /* Renesas M32R (formerly Mitsubishi M32R) */
  168. #define EM_MN10300 89 /* Matsushita MN10300 */
  169. #define EM_MN10200 90 /* Matsushita MN10200 */
  170. #define EM_PJ 91 /* picoJava */
  171. #define EM_OR1K 92 /* OpenRISC 1000 32-bit embedded processor */
  172. #define EM_ARC_COMPACT 93 /* ARC International ARCompact processor */
  173. #define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
  174. #define EM_SCORE_OLD \
  175. 95 /* Old Sunplus S+core7 backend magic number. Written in the absence of \
  176. an ABI. */
  177. #define EM_VIDEOCORE 95 /* Alphamosaic VideoCore processor */
  178. #define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Processor */
  179. #define EM_NS32K 97 /* National Semiconductor 32000 series */
  180. #define EM_TPC 98 /* Tenor Network TPC processor */
  181. #define EM_PJ_OLD 99 /* Old value for picoJava. Deprecated. */
  182. #define EM_SNP1K 99 /* Trebia SNP 1000 processor */
  183. #define EM_ST200 100 /* STMicroelectronics ST200 microcontroller */
  184. #define EM_IP2K 101 /* Ubicom IP2022 micro controller */
  185. #define EM_MAX 102 /* MAX Processor */
  186. #define EM_CR 103 /* National Semiconductor CompactRISC */
  187. #define EM_F2MC16 104 /* Fujitsu F2MC16 */
  188. #define EM_MSP430 105 /* TI msp430 micro controller */
  189. #define EM_BLACKFIN 106 /* ADI Blackfin */
  190. #define EM_SE_C33 107 /* S1C33 Family of Seiko Epson processors */
  191. #define EM_SEP 108 /* Sharp embedded microprocessor */
  192. #define EM_ARCA 109 /* Arca RISC Microprocessor */
  193. #define EM_UNICORE \
  194. 110 /* Microprocessor series from PKU-Unity Ltd. and MPRC of Peking \
  195. University */
  196. #define EM_EXCESS 111 /* eXcess: 16/32/64-bit configurable embedded CPU */
  197. #define EM_DXP 112 /* Icera Semiconductor Inc. Deep Execution Processor */
  198. #define EM_ALTERA_NIOS2 113 /* Altera Nios II soft-core processor */
  199. #define EM_CRX 114 /* National Semiconductor CRX */
  200. #define EM_CR16_OLD \
  201. 115 /* Old, value for National Semiconductor CompactRISC. Deprecated. */
  202. #define EM_XGATE 115 /* Motorola XGATE embedded processor */
  203. #define EM_C166 116 /* Infineon C16x/XC16x processor */
  204. #define EM_M16C 117 /* Renesas M16C series microprocessors */
  205. #define EM_DSPIC30F \
  206. 118 /* Microchip Technology dsPIC30F Digital Signal Controller */
  207. #define EM_CE 119 /* Freescale Communication Engine RISC core */
  208. #define EM_M32C 120 /* Renesas M32C series microprocessors */
  209. #define EM_res121 121 /* Reserved */
  210. #define EM_res122 122 /* Reserved */
  211. #define EM_res123 123 /* Reserved */
  212. #define EM_res124 124 /* Reserved */
  213. #define EM_res125 125 /* Reserved */
  214. #define EM_res126 126 /* Reserved */
  215. #define EM_res127 127 /* Reserved */
  216. #define EM_res128 128 /* Reserved */
  217. #define EM_res129 129 /* Reserved */
  218. #define EM_res130 130 /* Reserved */
  219. #define EM_TSK3000 131 /* Altium TSK3000 core */
  220. #define EM_RS08 132 /* Freescale RS08 embedded processor */
  221. #define EM_res133 133 /* Reserved */
  222. #define EM_ECOG2 134 /* Cyan Technology eCOG2 microprocessor */
  223. #define EM_SCORE 135 /* Sunplus Score */
  224. #define EM_SCORE7 135 /* Sunplus S+core7 RISC processor */
  225. #define EM_DSP24 136 /* New Japan Radio (NJR) 24-bit DSP Processor */
  226. #define EM_VIDEOCORE3 137 /* Broadcom VideoCore III processor */
  227. #define EM_LATTICEMICO32 \
  228. 138 /* RISC processor for Lattice FPGA architecture \
  229. */
  230. #define EM_SE_C17 139 /* Seiko Epson C17 family */
  231. #define EM_TI_C6000 140 /* Texas Instruments TMS320C6000 DSP family */
  232. #define EM_TI_C2000 141 /* Texas Instruments TMS320C2000 DSP family */
  233. #define EM_TI_C5500 142 /* Texas Instruments TMS320C55x DSP family */
  234. #define EM_res143 143 /* Reserved */
  235. #define EM_TI_PRU 144 /* Texas Instruments Programmable Realtime Unit */
  236. #define EM_res145 145 /* Reserved */
  237. #define EM_res146 146 /* Reserved */
  238. #define EM_res147 147 /* Reserved */
  239. #define EM_res148 148 /* Reserved */
  240. #define EM_res149 149 /* Reserved */
  241. #define EM_res150 150 /* Reserved */
  242. #define EM_res151 151 /* Reserved */
  243. #define EM_res152 152 /* Reserved */
  244. #define EM_res153 153 /* Reserved */
  245. #define EM_res154 154 /* Reserved */
  246. #define EM_res155 155 /* Reserved */
  247. #define EM_res156 156 /* Reserved */
  248. #define EM_res157 157 /* Reserved */
  249. #define EM_res158 158 /* Reserved */
  250. #define EM_res159 159 /* Reserved */
  251. #define EM_MMDSP_PLUS \
  252. 160 /* STMicroelectronics 64bit VLIW Data Signal Processor */
  253. #define EM_CYPRESS_M8C 161 /* Cypress M8C microprocessor */
  254. #define EM_R32C 162 /* Renesas R32C series microprocessors */
  255. #define EM_TRIMEDIA 163 /* NXP Semiconductors TriMedia architecture family */
  256. #define EM_QDSP6 164 /* QUALCOMM DSP6 Processor */
  257. #define EM_8051 165 /* Intel 8051 and variants */
  258. #define EM_STXP7X 166 /* STMicroelectronics STxP7x family */
  259. #define EM_NDS32 \
  260. 167 /* Andes Technology compact code size embedded RISC processor family */
  261. #define EM_ECOG1 168 /* Cyan Technology eCOG1X family */
  262. #define EM_ECOG1X 168 /* Cyan Technology eCOG1X family */
  263. #define EM_MAXQ30 \
  264. 169 /* Dallas Semiconductor MAXQ30 Core Micro-controllers \
  265. */
  266. #define EM_XIMO16 170 /* New Japan Radio (NJR) 16-bit DSP Processor */
  267. #define EM_MANIK 171 /* M2000 Reconfigurable RISC Microprocessor */
  268. #define EM_CRAYNV2 172 /* Cray Inc. NV2 vector architecture */
  269. #define EM_RX 173 /* Renesas RX family */
  270. #define EM_METAG \
  271. 174 /* Imagination Technologies Meta processor architecture \
  272. */
  273. #define EM_MCST_ELBRUS \
  274. 175 /* MCST Elbrus general purpose hardware architecture */
  275. #define EM_ECOG16 176 /* Cyan Technology eCOG16 family */
  276. #define EM_CR16 177 /* National Semiconductor CompactRISC 16-bit processor */
  277. #define EM_ETPU 178 /* Freescale Extended Time Processing Unit */
  278. #define EM_SLE9X 179 /* Infineon Technologies SLE9X core */
  279. #define EM_L1OM 180 /* Intel L1OM */
  280. #define EM_K1OM 181 /* Intel K1OM */
  281. #define EM_INTEL182 182 /* Reserved by Intel */
  282. #define EM_AARCH64 183 /* ARM 64-bit architecture */
  283. #define EM_ARM184 184 /* Reserved by ARM */
  284. #define EM_AVR32 185 /* Atmel Corporation 32-bit microprocessor family */
  285. #define EM_STM8 186 /* STMicroeletronics STM8 8-bit microcontroller */
  286. #define EM_TILE64 187 /* Tilera TILE64 multicore architecture family */
  287. #define EM_TILEPRO 188 /* Tilera TILEPro multicore architecture family */
  288. #define EM_MICROBLAZE \
  289. 189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */
  290. #define EM_CUDA 190 /* NVIDIA CUDA architecture */
  291. #define EM_TILEGX 191 /* Tilera TILE-Gx multicore architecture family */
  292. #define EM_CLOUDSHIELD 192 /* CloudShield architecture family */
  293. #define EM_COREA_1ST \
  294. 193 /* KIPO-KAIST Core-A 1st generation processor family \
  295. */
  296. #define EM_COREA_2ND \
  297. 194 /* KIPO-KAIST Core-A 2nd generation processor family \
  298. */
  299. #define EM_ARC_COMPACT2 195 /* Synopsys ARCompact V2 */
  300. #define EM_OPEN8 196 /* Open8 8-bit RISC soft processor core */
  301. #define EM_RL78 197 /* Renesas RL78 family. */
  302. #define EM_VIDEOCORE5 198 /* Broadcom VideoCore V processor */
  303. #define EM_78K0R 199 /* Renesas 78K0R. */
  304. #define EM_56800EX \
  305. 200 /* Freescale 56800EX Digital Signal Controller (DSC) \
  306. */
  307. #define EM_BA1 201 /* Beyond BA1 CPU architecture */
  308. #define EM_BA2 202 /* Beyond BA2 CPU architecture */
  309. #define EM_XCORE 203 /* XMOS xCORE processor family */
  310. #define EM_MCHP_PIC 204 /* Microchip 8-bit PIC(r) family */
  311. #define EM_INTEL205 205 /* Reserved by Intel */
  312. #define EM_INTEL206 206 /* Reserved by Intel */
  313. #define EM_INTEL207 207 /* Reserved by Intel */
  314. #define EM_INTEL208 208 /* Reserved by Intel */
  315. #define EM_INTEL209 209 /* Reserved by Intel */
  316. #define EM_KM32 210 /* KM211 KM32 32-bit processor */
  317. #define EM_KMX32 211 /* KM211 KMX32 32-bit processor */
  318. #define EM_KMX16 212 /* KM211 KMX16 16-bit processor */
  319. #define EM_KMX8 213 /* KM211 KMX8 8-bit processor */
  320. #define EM_KVARC 214 /* KM211 KVARC processor */
  321. #define EM_CDP 215 /* Paneve CDP architecture family */
  322. #define EM_COGE 216 /* Cognitive Smart Memory Processor */
  323. #define EM_COOL 217 /* Bluechip Systems CoolEngine */
  324. #define EM_NORC 218 /* Nanoradio Optimized RISC */
  325. #define EM_CSR_KALIMBA 219 /* CSR Kalimba architecture family */
  326. #define EM_Z80 220 /* Zilog Z80 */
  327. #define EM_VISIUM 221 /* Controls and Data Services VISIUMcore processor */
  328. #define EM_FT32 \
  329. 222 /* FTDI Chip FT32 high performance 32-bit RISC architecture */
  330. #define EM_MOXIE 223 /* Moxie processor family */
  331. #define EM_AMDGPU 224 /* AMD GPU architecture */
  332. #define EM_RISCV 243 /* RISC-V */
  333. #define EM_LANAI 244 /* Lanai 32-bit processor. */
  334. #define EM_BPF 247 /* Linux BPF – in-kernel virtual machine. */
  335. #define EM_NFP 250 /* Netronome Flow Processor. */
  336. #define EM_CSKY 252 /* C-SKY processor family. */
  337. /* Values of note segment descriptor types for core files. */
  338. #define NT_PRSTATUS 1 /* Contains copy of prstatus struct */
  339. #define NT_FPREGSET 2 /* Contains copy of fpregset struct */
  340. #define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
  341. #define NT_TASKSTRUCT 4 /* Contains copy of task struct */
  342. #define NT_AUXV 6 /* Contains copy of Elfxx_auxv_t */
  343. #define NT_PRXFPREG 0x46e62b7f /* Contains a user_xfpregs_struct; */
  344. /* note name must be "LINUX". */
  345. #define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
  346. /* note name must be "LINUX". */
  347. #define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
  348. /* note name must be "LINUX". */
  349. #define NT_PPC_TAR 0x103 /* PowerPC Target Address Register */
  350. /* note name must be "LINUX". */
  351. #define NT_PPC_PPR 0x104 /* PowerPC Program Priority Register */
  352. /* note name must be "LINUX". */
  353. #define NT_PPC_DSCR 0x105 /* PowerPC Data Stream Control Register */
  354. /* note name must be "LINUX". */
  355. #define NT_PPC_EBB 0x106 /* PowerPC Event Based Branch Registers */
  356. /* note name must be "LINUX". */
  357. #define NT_PPC_PMU 0x107 /* PowerPC Performance Monitor Registers */
  358. /* note name must be "LINUX". */
  359. #define NT_PPC_TM_CGPR 0x108 /* PowerPC TM checkpointed GPR Registers */
  360. /* note name must be "LINUX". */
  361. #define NT_PPC_TM_CFPR 0x109 /* PowerPC TM checkpointed FPR Registers */
  362. /* note name must be "LINUX". */
  363. #define NT_PPC_TM_CVMX 0x10a /* PowerPC TM checkpointed VMX Registers */
  364. /* note name must be "LINUX". */
  365. #define NT_PPC_TM_CVSX 0x10b /* PowerPC TM checkpointed VSX Registers */
  366. /* note name must be "LINUX". */
  367. #define NT_PPC_TM_SPR 0x10c /* PowerPC TM Special Purpose Registers */
  368. /* note name must be "LINUX". */
  369. #define NT_PPC_TM_CTAR 0x10d /* PowerPC TM checkpointed TAR */
  370. /* note name must be "LINUX". */
  371. #define NT_PPC_TM_CPPR 0x10e /* PowerPC TM checkpointed PPR */
  372. /* note name must be "LINUX". */
  373. #define NT_PPC_TM_CDSCR 0x10f /* PowerPC TM checkpointed Data SCR */
  374. /* note name must be "LINUX". */
  375. #define NT_386_TLS 0x200 /* x86 TLS information */
  376. /* note name must be "LINUX". */
  377. #define NT_386_IOPERM 0x201 /* x86 io permissions */
  378. /* note name must be "LINUX". */
  379. #define NT_X86_XSTATE 0x202 /* x86 XSAVE extended state */
  380. /* note name must be "LINUX". */
  381. #define NT_X86_CET 0x203 /* x86 CET state. */
  382. /* note name must be "LINUX". */
  383. #define NT_S390_HIGH_GPRS 0x300 /* S/390 upper halves of GPRs */
  384. /* note name must be "LINUX". */
  385. #define NT_S390_TIMER 0x301 /* S390 timer */
  386. /* note name must be "LINUX". */
  387. #define NT_S390_TODCMP 0x302 /* S390 TOD clock comparator */
  388. /* note name must be "LINUX". */
  389. #define NT_S390_TODPREG 0x303 /* S390 TOD programmable register */
  390. /* note name must be "LINUX". */
  391. #define NT_S390_CTRS 0x304 /* S390 control registers */
  392. /* note name must be "LINUX". */
  393. #define NT_S390_PREFIX 0x305 /* S390 prefix register */
  394. /* note name must be "LINUX". */
  395. #define NT_S390_LAST_BREAK 0x306 /* S390 breaking event address */
  396. /* note name must be "LINUX". */
  397. #define NT_S390_SYSTEM_CALL 0x307 /* S390 system call restart data */
  398. /* note name must be "LINUX". */
  399. #define NT_S390_TDB 0x308 /* S390 transaction diagnostic block */
  400. /* note name must be "LINUX". */
  401. #define NT_S390_VXRS_LOW 0x309 /* S390 vector registers 0-15 upper half */
  402. /* note name must be "LINUX". */
  403. #define NT_S390_VXRS_HIGH 0x30a /* S390 vector registers 16-31 */
  404. /* note name must be "LINUX". */
  405. #define NT_S390_GS_CB 0x30b /* s390 guarded storage registers */
  406. /* note name must be "LINUX". */
  407. #define NT_S390_GS_BC 0x30c /* s390 guarded storage broadcast control block */
  408. /* note name must be "LINUX". */
  409. #define NT_ARM_VFP 0x400 /* ARM VFP registers */
  410. /* The following definitions should really use NT_AARCH_..., but defined
  411. this way for compatibility with Linux. */
  412. #define NT_ARM_TLS 0x401 /* AArch TLS registers */
  413. /* note name must be "LINUX". */
  414. #define NT_ARM_HW_BREAK 0x402 /* AArch hardware breakpoint registers */
  415. /* note name must be "LINUX". */
  416. #define NT_ARM_HW_WATCH 0x403 /* AArch hardware watchpoint registers */
  417. /* note name must be "LINUX". */
  418. #define NT_ARM_SVE 0x405 /* AArch SVE registers. */
  419. /* note name must be "LINUX". */
  420. #define NT_ARM_PAC_MASK 0x406 /* AArch pointer authentication code masks */
  421. /* note name must be "LINUX". */
  422. #define NT_ARC_V2 0x600 /* ARC HS accumulator/extra registers. */
  423. /* note name must be "LINUX". */
  424. #define NT_SIGINFO 0x53494749 /* Fields of siginfo_t. */
  425. #define NT_FILE 0x46494c45 /* Description of mapped files. */
  426. /* Values for program header, p_type field. */
  427. #define PT_NULL 0 /* Program header table entry unused */
  428. #define PT_LOAD 1 /* Loadable program segment */
  429. #define PT_DYNAMIC 2 /* Dynamic linking information */
  430. #define PT_INTERP 3 /* Program interpreter */
  431. #define PT_NOTE 4 /* Auxiliary information */
  432. #define PT_SHLIB 5 /* Reserved, unspecified semantics */
  433. #define PT_PHDR 6 /* Entry for header table itself */
  434. #define PT_TLS 7 /* Thread local storage segment */
  435. #define PT_LOOS 0x60000000 /* OS-specific */
  436. #define PT_HIOS 0x6fffffff /* OS-specific */
  437. #define PT_LOPROC 0x70000000 /* Processor-specific */
  438. #define PT_HIPROC 0x7FFFFFFF /* Processor-specific */
  439. /* Program segment permissions, in program header p_flags field. */
  440. #define PF_X (1 << 0) /* Segment is executable */
  441. #define PF_W (1 << 1) /* Segment is writable */
  442. #define PF_R (1 << 2) /* Segment is readable */
  443. /* #define PF_MASKOS 0x0F000000 *//* OS-specific reserved bits */
  444. #define PF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */
  445. #define PF_MASKPROC 0xF0000000 /* Processor-specific reserved bits */
  446. #define CORE_MEM_LINE_MASK 0xFFFFFFC0
  447. #endif /* __MCD_ELF_DEFINE_H__ */