Home | History | Annotate | Line # | Download | only in include
elf_machdep.h revision 1.3.18.4
      1  1.3.18.4    skrll /*	$NetBSD: elf_machdep.h,v 1.3.18.4 2004/09/21 13:13:19 skrll Exp $	*/
      2       1.1    bjh21 
      3  1.3.18.1    skrll #if defined(__ARMEB__)
      4  1.3.18.1    skrll #define ELF32_MACHDEP_ENDIANNESS	ELFDATA2MSB
      5  1.3.18.1    skrll #else
      6       1.1    bjh21 #define ELF32_MACHDEP_ENDIANNESS	ELFDATA2LSB
      7  1.3.18.1    skrll #endif
      8       1.1    bjh21 
      9       1.1    bjh21 /* Processor specific flags for the ELF header e_flags field.  */
     10       1.1    bjh21 #define EF_ARM_RELEXEC		0x00000001
     11       1.1    bjh21 #define EF_ARM_HASENTRY		0x00000002
     12       1.1    bjh21 #define EF_ARM_INTERWORK	0x00000004 /* GNU binutils 000413 */
     13       1.1    bjh21 #define EF_ARM_SYMSARESORTED	0x00000004 /* ARM ELF A08 */
     14       1.2    bjh21 #define EF_ARM_APCS_26		0x00000008 /* GNU binutils 000413 */
     15       1.2    bjh21 #define EF_ARM_DYNSYMSUSESEGIDX	0x00000008 /* ARM ELF B01 */
     16       1.2    bjh21 #define EF_ARM_APCS_FLOAT	0x00000010 /* GNU binutils 000413 */
     17       1.2    bjh21 #define EF_ARM_MAPSYMSFIRST	0x00000010 /* ARM ELF B01 */
     18       1.1    bjh21 #define EF_ARM_PIC		0x00000020
     19       1.1    bjh21 #define EF_ARM_ALIGN8		0x00000040 /* 8-bit structure alignment.  */
     20       1.1    bjh21 #define EF_ARM_NEW_ABI		0x00000080
     21       1.1    bjh21 #define EF_ARM_OLD_ABI		0x00000100
     22       1.1    bjh21 #define EF_ARM_SOFT_FLOAT	0x00000200
     23       1.1    bjh21 #define EF_ARM_EABIMASK		0xff000000
     24       1.1    bjh21 
     25       1.1    bjh21 #define	ELF32_MACHDEP_ID_CASES						\
     26       1.1    bjh21 		case EM_ARM:						\
     27       1.1    bjh21 			break;
     28       1.3  thorpej 
     29       1.3  thorpej #define	ELF32_MACHDEP_ID	EM_ARM
     30       1.1    bjh21 
     31       1.1    bjh21 #define ARCH_ELFSIZE		32	/* MD native binary size */
     32       1.1    bjh21 
     33       1.2    bjh21 /* Processor specific relocation types */
     34       1.2    bjh21 
     35       1.1    bjh21 #define R_ARM_NONE		0
     36       1.1    bjh21 #define R_ARM_PC24		1
     37       1.1    bjh21 #define R_ARM_ABS32		2
     38       1.1    bjh21 #define R_ARM_REL32		3
     39       1.1    bjh21 #define R_ARM_PC13		4
     40       1.1    bjh21 #define R_ARM_ABS16		5
     41       1.1    bjh21 #define R_ARM_ABS12		6
     42       1.1    bjh21 #define R_ARM_THM_ABS5		7
     43       1.1    bjh21 #define R_ARM_ABS8		8
     44       1.1    bjh21 #define R_ARM_SBREL32		9
     45       1.1    bjh21 #define R_ARM_THM_PC22		10
     46       1.1    bjh21 #define R_ARM_THM_PC8		11
     47       1.1    bjh21 #define R_ARM_AMP_VCALL9	12
     48       1.1    bjh21 #define R_ARM_SWI24		13
     49       1.1    bjh21 #define R_ARM_THM_SWI8		14
     50       1.1    bjh21 #define R_ARM_XPC25		15
     51       1.1    bjh21 #define R_ARM_THM_XPC22		16
     52       1.1    bjh21 
     53       1.2    bjh21 /* 17-31 are reserved for ARM Linux. */
     54       1.2    bjh21 #define R_ARM_COPY		20
     55       1.2    bjh21 #define R_ARM_GLOB_DAT		21
     56       1.2    bjh21 #define	R_ARM_JUMP_SLOT		22
     57       1.2    bjh21 #define R_ARM_RELATIVE		23
     58       1.2    bjh21 #define	R_ARM_GOTOFF		24
     59       1.2    bjh21 #define R_ARM_GOTPC		25
     60       1.2    bjh21 #define R_ARM_GOT32		26
     61       1.2    bjh21 #define R_ARM_PLT32		27
     62       1.2    bjh21 
     63       1.2    bjh21 #define R_ARM_ALU_PCREL_7_0	32
     64       1.2    bjh21 #define R_ARM_ALU_PCREL_15_8	33
     65       1.2    bjh21 #define R_ARM_ALU_PCREL_23_15	34
     66       1.2    bjh21 #define R_ARM_ALU_SBREL_11_0	35
     67       1.2    bjh21 #define R_ARM_ALU_SBREL_19_12	36
     68       1.2    bjh21 #define R_ARM_ALU_SBREL_27_20	37
     69       1.2    bjh21 
     70       1.2    bjh21 /* 96-111 are reserved to G++. */
     71       1.2    bjh21 #define R_ARM_GNU_VTENTRY	100
     72       1.2    bjh21 #define R_ARM_GNU_VTINHERIT	101
     73       1.2    bjh21 #define R_ARM_THM_PC11		102
     74       1.2    bjh21 #define R_ARM_THM_PC9		103
     75       1.2    bjh21 
     76       1.2    bjh21 /* 112-127 are reserved for private experiments. */
     77       1.2    bjh21 
     78       1.2    bjh21 #define R_ARM_RXPC25		249
     79       1.2    bjh21 #define R_ARM_RSBREL32		250
     80       1.2    bjh21 #define R_ARM_THM_RPC22		251
     81       1.2    bjh21 #define R_ARM_RREL32		252
     82       1.2    bjh21 #define R_ARM_RABS32		253
     83       1.2    bjh21 #define R_ARM_RPC24		254
     84       1.2    bjh21 #define R_ARM_RBASE		255
     85       1.2    bjh21 
     86       1.1    bjh21 #define R_TYPE(name)		__CONCAT(R_ARM_,name)
     87       1.1    bjh21 
     88       1.2    bjh21 /* Processor specific program header flags */
     89       1.2    bjh21 #define PF_ARM_SB		0x10000000
     90       1.2    bjh21 #define PF_ARM_PI		0x20000000
     91       1.2    bjh21 #define PF_ARM_ENTRY		0x80000000
     92       1.2    bjh21 
     93       1.2    bjh21 /* Processor specific section header flags */
     94       1.2    bjh21 #define SHF_ENTRYSECT		0x10000000
     95       1.2    bjh21 #define SHF_COMDEF		0x80000000
     96  1.3.18.2    skrll 
     97  1.3.18.2    skrll /* Processor specific symbol types */
     98  1.3.18.2    skrll #define STT_ARM_TFUNC		STT_LOPROC
     99