arch/sh/include/asm/elf.h

Source file repositories/reference/linux-study-clean/arch/sh/include/asm/elf.h

File Facts

System
Linux kernel
Corpus path
arch/sh/include/asm/elf.h
Extension
.h
Size
6009 bytes
Lines
212
Domain
Architecture Layer
Bucket
arch/sh
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __ASM_SH_ELF_H
#define __ASM_SH_ELF_H

#include <linux/utsname.h>
#include <asm/auxvec.h>
#include <asm/ptrace.h>
#include <asm/user.h>

/* ELF header e_flags defines */
#define EF_SH_PIC		0x100	/* -fpic */
#define EF_SH_FDPIC		0x8000	/* -mfdpic */

/* SH (particularly SHcompact) relocation types  */
#define	R_SH_NONE		0
#define	R_SH_DIR32		1
#define	R_SH_REL32		2
#define	R_SH_DIR8WPN		3
#define	R_SH_IND12W		4
#define	R_SH_DIR8WPL		5
#define	R_SH_DIR8WPZ		6
#define	R_SH_DIR8BP		7
#define	R_SH_DIR8W		8
#define	R_SH_DIR8L		9
#define	R_SH_SWITCH16		25
#define	R_SH_SWITCH32		26
#define	R_SH_USES		27
#define	R_SH_COUNT		28
#define	R_SH_ALIGN		29
#define	R_SH_CODE		30
#define	R_SH_DATA		31
#define	R_SH_LABEL		32
#define	R_SH_SWITCH8		33
#define	R_SH_GNU_VTINHERIT	34
#define	R_SH_GNU_VTENTRY	35
#define	R_SH_TLS_GD_32		144
#define	R_SH_TLS_LD_32		145
#define	R_SH_TLS_LDO_32		146
#define	R_SH_TLS_IE_32		147
#define	R_SH_TLS_LE_32		148
#define	R_SH_TLS_DTPMOD32	149
#define	R_SH_TLS_DTPOFF32	150
#define	R_SH_TLS_TPOFF32	151
#define	R_SH_GOT32		160
#define	R_SH_PLT32		161
#define	R_SH_COPY		162
#define	R_SH_GLOB_DAT		163
#define	R_SH_JMP_SLOT		164
#define	R_SH_RELATIVE		165
#define	R_SH_GOTOFF		166
#define	R_SH_GOTPC		167

/* FDPIC relocs */
#define R_SH_GOT20		201
#define R_SH_GOTOFF20		202
#define R_SH_GOTFUNCDESC	203
#define R_SH_GOTFUNCDESC20	204
#define R_SH_GOTOFFFUNCDESC	205
#define R_SH_GOTOFFFUNCDESC20	206
#define R_SH_FUNCDESC		207
#define R_SH_FUNCDESC_VALUE	208

/* SHmedia relocs */
#define R_SH_IMM_LOW16		246
#define R_SH_IMM_LOW16_PCREL	247
#define R_SH_IMM_MEDLOW16	248
#define R_SH_IMM_MEDLOW16_PCREL	249
/* Keep this the last entry.  */
#define	R_SH_NUM		256

/*
 * ELF register definitions..
 */

typedef unsigned long elf_greg_t;

#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
typedef elf_greg_t elf_gregset_t[ELF_NGREG];

typedef struct user_fpu_struct elf_fpregset_t;

/*
 * These are used to set parameters in the core dumps.
 */
#define ELF_CLASS	ELFCLASS32
#ifdef __LITTLE_ENDIAN__
#define ELF_DATA	ELFDATA2LSB
#else
#define ELF_DATA	ELFDATA2MSB
#endif
#define ELF_ARCH	EM_SH

Annotation

Implementation Notes