arch/sparc/include/asm/elf_64.h

Source file repositories/reference/linux-study-clean/arch/sparc/include/asm/elf_64.h

File Facts

System
Linux kernel
Corpus path
arch/sparc/include/asm/elf_64.h
Extension
.h
Size
6848 bytes
Lines
234
Domain
Architecture Layer
Bucket
arch/sparc
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_SPARC64_ELF_H
#define __ASM_SPARC64_ELF_H

/*
 * ELF register definitions..
 */

#include <asm/ptrace.h>
#include <asm/processor.h>
#include <asm/spitfire.h>
#include <asm/adi.h>

/*
 * Sparc section types
 */
#define STT_REGISTER		13

/*
 * Sparc ELF relocation types
 */
#define	R_SPARC_NONE		0
#define	R_SPARC_8		1
#define	R_SPARC_16		2
#define	R_SPARC_32		3
#define	R_SPARC_DISP8		4
#define	R_SPARC_DISP16		5
#define	R_SPARC_DISP32		6
#define	R_SPARC_WDISP30		7
#define	R_SPARC_WDISP22		8
#define	R_SPARC_HI22		9
#define	R_SPARC_22		10
#define	R_SPARC_13		11
#define	R_SPARC_LO10		12
#define	R_SPARC_GOT10		13
#define	R_SPARC_GOT13		14
#define	R_SPARC_GOT22		15
#define	R_SPARC_PC10		16
#define	R_SPARC_PC22		17
#define	R_SPARC_WPLT30		18
#define	R_SPARC_COPY		19
#define	R_SPARC_GLOB_DAT	20
#define	R_SPARC_JMP_SLOT	21
#define	R_SPARC_RELATIVE	22
#define	R_SPARC_UA32		23
#define R_SPARC_PLT32		24
#define R_SPARC_HIPLT22		25
#define R_SPARC_LOPLT10		26
#define R_SPARC_PCPLT32		27
#define R_SPARC_PCPLT22		28
#define R_SPARC_PCPLT10		29
#define R_SPARC_10		30
#define R_SPARC_11		31
#define R_SPARC_64		32
#define R_SPARC_OLO10		33
#define R_SPARC_WDISP16		40
#define R_SPARC_WDISP19		41
#define R_SPARC_7		43
#define R_SPARC_5		44
#define R_SPARC_6		45
#define R_SPARC_UA64		54

/* Bits present in AT_HWCAP, primarily for Sparc32.  */
#define HWCAP_SPARC_FLUSH       0x00000001
#define HWCAP_SPARC_STBAR       0x00000002
#define HWCAP_SPARC_SWAP        0x00000004
#define HWCAP_SPARC_MULDIV      0x00000008
#define HWCAP_SPARC_V9		0x00000010
#define HWCAP_SPARC_ULTRA3	0x00000020
#define HWCAP_SPARC_BLKINIT	0x00000040
#define HWCAP_SPARC_N2		0x00000080

/* Solaris compatible AT_HWCAP bits. */
#define AV_SPARC_MUL32		0x00000100 /* 32x32 multiply is efficient */
#define AV_SPARC_DIV32		0x00000200 /* 32x32 divide is efficient */
#define AV_SPARC_FSMULD		0x00000400 /* 'fsmuld' is efficient */
#define AV_SPARC_V8PLUS		0x00000800 /* v9 insn available to 32bit */
#define AV_SPARC_POPC		0x00001000 /* 'popc' is efficient */
#define AV_SPARC_VIS		0x00002000 /* VIS insns available */
#define AV_SPARC_VIS2		0x00004000 /* VIS2 insns available */
#define AV_SPARC_ASI_BLK_INIT	0x00008000 /* block init ASIs available */
#define AV_SPARC_FMAF		0x00010000 /* fused multiply-add */
#define AV_SPARC_VIS3		0x00020000 /* VIS3 insns available */
#define AV_SPARC_HPC		0x00040000 /* HPC insns available */
#define AV_SPARC_RANDOM		0x00080000 /* 'random' insn available */
#define AV_SPARC_TRANS		0x00100000 /* transaction insns available */
#define AV_SPARC_FJFMAU		0x00200000 /* unfused multiply-add */
#define AV_SPARC_IMA		0x00400000 /* integer multiply-add */
#define AV_SPARC_ASI_CACHE_SPARING \
				0x00800000 /* cache sparing ASIs available */
#define AV_SPARC_PAUSE		0x01000000 /* PAUSE available */

Annotation

Implementation Notes