| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #ifndef __ASMCRIS_ELF_H
 | 
					
						
							|  |  |  | #define __ASMCRIS_ELF_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * ELF register definitions.. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <asm/user.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-07-27 11:44:27 -07:00
										 |  |  | #define R_CRIS_NONE             0
 | 
					
						
							|  |  |  | #define R_CRIS_8                1
 | 
					
						
							|  |  |  | #define R_CRIS_16               2
 | 
					
						
							|  |  |  | #define R_CRIS_32               3
 | 
					
						
							|  |  |  | #define R_CRIS_8_PCREL          4
 | 
					
						
							|  |  |  | #define R_CRIS_16_PCREL         5
 | 
					
						
							|  |  |  | #define R_CRIS_32_PCREL         6
 | 
					
						
							|  |  |  | #define R_CRIS_GNU_VTINHERIT    7
 | 
					
						
							|  |  |  | #define R_CRIS_GNU_VTENTRY      8
 | 
					
						
							|  |  |  | #define R_CRIS_COPY             9
 | 
					
						
							|  |  |  | #define R_CRIS_GLOB_DAT         10
 | 
					
						
							|  |  |  | #define R_CRIS_JUMP_SLOT        11
 | 
					
						
							|  |  |  | #define R_CRIS_RELATIVE         12
 | 
					
						
							|  |  |  | #define R_CRIS_16_GOT           13
 | 
					
						
							|  |  |  | #define R_CRIS_32_GOT           14
 | 
					
						
							|  |  |  | #define R_CRIS_16_GOTPLT        15
 | 
					
						
							|  |  |  | #define R_CRIS_32_GOTPLT        16
 | 
					
						
							|  |  |  | #define R_CRIS_32_GOTREL        17
 | 
					
						
							|  |  |  | #define R_CRIS_32_PLT_GOTREL    18
 | 
					
						
							|  |  |  | #define R_CRIS_32_PLT_PCREL     19
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | typedef unsigned long elf_greg_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Note that NGREG is defined to ELF_NGREG in include/linux/elfcore.h, and is
 | 
					
						
							|  |  |  |    thus exposed to user-space. */ | 
					
						
							|  |  |  | #define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
 | 
					
						
							|  |  |  | typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* A placeholder; CRIS does not have any fp regs.  */ | 
					
						
							|  |  |  | typedef unsigned long elf_fpregset_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * These are used to set parameters in the core dumps. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define ELF_CLASS	ELFCLASS32
 | 
					
						
							| 
									
										
										
										
											2005-07-27 11:44:27 -07:00
										 |  |  | #define ELF_DATA	ELFDATA2LSB
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #define ELF_ARCH	EM_CRIS
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-21 17:45:58 +02:00
										 |  |  | #include <arch/elf.h>
 | 
					
						
							| 
									
										
										
										
											2006-09-21 09:33:55 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-07-27 11:44:27 -07:00
										 |  |  | /* The master for these definitions is {binutils}/include/elf/cris.h:  */ | 
					
						
							|  |  |  | /* User symbols in this file have a leading underscore.  */ | 
					
						
							|  |  |  | #define EF_CRIS_UNDERSCORE		0x00000001
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* This is a mask for different incompatible machine variants.  */ | 
					
						
							|  |  |  | #define EF_CRIS_VARIANT_MASK		0x0000000e
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Variant 0; may contain v0..10 object.  */ | 
					
						
							|  |  |  | #define EF_CRIS_VARIANT_ANY_V0_V10	0x00000000
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Variant 1; contains v32 object.  */ | 
					
						
							|  |  |  | #define EF_CRIS_VARIANT_V32		0x00000002
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Variant 2; contains object compatible with v32 and v10.  */ | 
					
						
							|  |  |  | #define EF_CRIS_VARIANT_COMMON_V10_V32	0x00000004
 | 
					
						
							|  |  |  | /* End of excerpt from {binutils}/include/elf/cris.h.  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #define ELF_EXEC_PAGESIZE	8192
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* This is the location that an ET_DYN program is loaded if exec'ed.  Typical
 | 
					
						
							|  |  |  |    use of this is to invoke "./ld.so someprog" to test out a new version of | 
					
						
							|  |  |  |    the loader.  We need to make sure that it is out of the way of the program | 
					
						
							|  |  |  |    that it will "exec", and that there is sufficient room for the brk.  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define ELF_ET_DYN_BASE         (2 * TASK_SIZE / 3)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* This yields a mask that user programs can use to figure out what
 | 
					
						
							|  |  |  |    instruction set this CPU supports.  This could be done in user space, | 
					
						
							|  |  |  |    but it's not easy, and we've already done it here.  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define ELF_HWCAP       (0)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* This yields a string that ld.so will use to load implementation
 | 
					
						
							|  |  |  |    specific libraries for optimization.  This is more specific in | 
					
						
							|  |  |  |    intent than poking at uname or /proc/cpuinfo. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define ELF_PLATFORM  (NULL)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |