elf.h: Add RISC-V definitions
The RISC-V ABI document outlines ELF header structure and relocation information. Pull the respective magic numbers into our elf header so we can make use of them. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
		
							parent
							
								
									7b0f169c80
								
							
						
					
					
						commit
						cfec209370
					
				
					 1 changed files with 58 additions and 0 deletions
				
			
		|  | @ -247,6 +247,7 @@ typedef struct | ||||||
| #define EM_XTENSA	94		/* Tensilica Xtensa Architecture */ | #define EM_XTENSA	94		/* Tensilica Xtensa Architecture */ | ||||||
| #define EM_NUM		95 | #define EM_NUM		95 | ||||||
| #define EM_AARCH64	183		/* ARM 64-bit architecture */ | #define EM_AARCH64	183		/* ARM 64-bit architecture */ | ||||||
|  | #define EM_RISCV	243		/* RISC-V */ | ||||||
| 
 | 
 | ||||||
| /* If it is necessary to assign new unofficial EM_* values, please
 | /* If it is necessary to assign new unofficial EM_* values, please
 | ||||||
|    pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the |    pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the | ||||||
|  | @ -2473,6 +2474,63 @@ typedef Elf32_Addr Elf32_Conflict; | ||||||
| 
 | 
 | ||||||
| #define R_X86_64_NUM		24 | #define R_X86_64_NUM		24 | ||||||
| 
 | 
 | ||||||
|  | /* RISC-V relocations */ | ||||||
|  | #define R_RISCV_NONE            0 | ||||||
|  | #define R_RISCV_32              1 | ||||||
|  | #define R_RISCV_64              2 | ||||||
|  | #define R_RISCV_RELATIVE        3 | ||||||
|  | #define R_RISCV_COPY            4 | ||||||
|  | #define R_RISCV_JUMP_SLOT       5 | ||||||
|  | #define R_RISCV_TLS_DTPMOD32    6 | ||||||
|  | #define R_RISCV_TLS_DTPMOD64    7 | ||||||
|  | #define R_RISCV_TLS_DTPREL32    8 | ||||||
|  | #define R_RISCV_TLS_DTPREL64    9 | ||||||
|  | #define R_RISCV_TLS_TPREL32     10 | ||||||
|  | #define R_RISCV_TLS_TPREL64     11 | ||||||
|  | 
 | ||||||
|  | #define R_RISCV_BRANCH          16 | ||||||
|  | #define R_RISCV_JAL             17 | ||||||
|  | #define R_RISCV_CALL            18 | ||||||
|  | #define R_RISCV_CALL_PLT        19 | ||||||
|  | #define R_RISCV_GOT_HI20        20 | ||||||
|  | #define R_RISCV_TLS_GOT_HI20    21 | ||||||
|  | #define R_RISCV_TLS_GD_HI20     22 | ||||||
|  | #define R_RISCV_PCREL_HI20      23 | ||||||
|  | #define R_RISCV_PCREL_LO12_I    24 | ||||||
|  | #define R_RISCV_PCREL_LO12_S    25 | ||||||
|  | #define R_RISCV_HI20            26 | ||||||
|  | #define R_RISCV_LO12_I          27 | ||||||
|  | #define R_RISCV_LO12_S          28 | ||||||
|  | #define R_RISCV_TPREL_HI20      29 | ||||||
|  | #define R_RISCV_TPREL_LO12_I    30 | ||||||
|  | #define R_RISCV_TPREL_LO12_S    31 | ||||||
|  | #define R_RISCV_TPREL_ADD       32 | ||||||
|  | #define R_RISCV_ADD8            33 | ||||||
|  | #define R_RISCV_ADD16           34 | ||||||
|  | #define R_RISCV_ADD32           35 | ||||||
|  | #define R_RISCV_ADD64           36 | ||||||
|  | #define R_RISCV_SUB8            37 | ||||||
|  | #define R_RISCV_SUB16           38 | ||||||
|  | #define R_RISCV_SUB32           39 | ||||||
|  | #define R_RISCV_SUB64           40 | ||||||
|  | #define R_RISCV_GNU_VTINHERIT   41 | ||||||
|  | #define R_RISCV_GNU_VTENTRY     42 | ||||||
|  | #define R_RISCV_ALIGN           43 | ||||||
|  | #define R_RISCV_RVC_BRANCH      44 | ||||||
|  | #define R_RISCV_RVC_JUMP        45 | ||||||
|  | #define R_RISCV_LUI             46 | ||||||
|  | #define R_RISCV_GPREL_I         47 | ||||||
|  | #define R_RISCV_GPREL_S         48 | ||||||
|  | #define R_RISCV_TPREL_I         49 | ||||||
|  | #define R_RISCV_TPREL_S         50 | ||||||
|  | #define R_RISCV_RELAX           51 | ||||||
|  | #define R_RISCV_SUB6            52 | ||||||
|  | #define R_RISCV_SET6            53 | ||||||
|  | #define R_RISCV_SET8            54 | ||||||
|  | #define R_RISCV_SET16           55 | ||||||
|  | #define R_RISCV_SET32           56 | ||||||
|  | #define R_RISCV_32_PCREL        57 | ||||||
|  | 
 | ||||||
| #ifdef GRUB_TARGET_WORDSIZE | #ifdef GRUB_TARGET_WORDSIZE | ||||||
| #if GRUB_TARGET_WORDSIZE == 32 | #if GRUB_TARGET_WORDSIZE == 32 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue