VSF Documented
Data Structures | Macros | Typedefs
elf.h File Reference
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  Elf32_Hdr
 
struct  Elf32_Shdr
 
struct  Elf32_Sym
 
struct  Elf32_Rel
 
struct  Elf32_Rela
 
struct  Elf32_Phdr
 
struct  Elf32_Dyn
 
struct  Elf64_Hdr
 
struct  Elf64_Shdr
 
struct  Elf64_Phdr
 
struct  Elf64_Dyn
 
struct  Elf64_Rel
 
struct  Elf64_Rela
 
struct  Elf64_Sym
 

Macros

#define EI_MAG0   0
 
#define ELFMAG0   0x7F
 
#define EI_MAG1   1
 
#define ELFMAG1   'E'
 
#define EI_MAG2   2
 
#define ELFMAG2   'L'
 
#define EI_MAG3   3
 
#define ELFMAG3   'F'
 
#define EI_CLASS   4
 
#define ELFCLASSNONE   0
 
#define ELFCLASS32   1
 
#define ELFCLASS64   2
 
#define EI_DATA   5
 
#define ELFDATANONE   0
 
#define ELFDATA2LSB   1
 
#define ELFDATA2MSB   2
 
#define EI_VERSION   6
 
#define EI_PAD   7
 
#define EI_NIDENT   16
 
#define ET_NONE   0
 
#define ET_REL   1
 
#define ET_EXEC   2
 
#define ET_DYN   3
 
#define ET_CORE   4
 
#define ET_LOPROC   0xFF00
 
#define ET_HIPROC   0xFFFF
 
#define EM_NONE   0
 
#define EM_M32   1
 
#define EM_SPARC   2
 
#define EM_386   3
 
#define EM_68K   4
 
#define EM_88K   5
 
#define EM_860   7
 
#define EM_MIPS   8
 
#define EM_ARM   0x28
 
#define EV_NONE   0
 
#define EV_CURRENT   1
 
#define SHN_UNDEF   0
 
#define SHN_LORESERVE   0xFF00
 
#define SHN_LOPROC   0xFF00
 
#define SHN_HIPROC   0xFF1F
 
#define SHN_ABS   0xFFF1
 
#define SHN_COMMON   0xFFF2
 
#define SHN_HIRESERVE   0xFFFF
 
#define SHT_NULL   0
 
#define SHT_PROGBITS   1
 
#define SHT_SYMTAB   2
 
#define SHT_STRTAB   3
 
#define SHT_RELA   4
 
#define SHT_HASH   5
 
#define SHT_DYNAMIC   6
 
#define SHT_NOTE   7
 
#define SHT_NOBITS   8
 
#define SHT_REL   9
 
#define SHT_SHLIB   10
 
#define SHT_DYNSYM   11
 
#define SHT_LOPROC   0x70000000
 
#define SHT_HIPROC   0x7FFFFFFF
 
#define SHT_LOUSER   0x80000000
 
#define SHT_HIUSER   0x8FFFFFFF
 
#define SHF_WRITE   0x1
 
#define SHF_ALLOC   0x2
 
#define SHF_EXECINSTR   0x4
 
#define SHF_MASKPROC   0xF0000000
 
#define STB_LOCAL   0
 
#define STB_GLOBAL   1
 
#define STB_WEAK   2
 
#define STB_LOPROC   13
 
#define STB_HIPROC   15
 
#define STT_NOTYPE   0
 
#define STT_OBJECT   1
 
#define STT_FUNC   2
 
#define STT_SECTION   3
 
#define STT_FILE   4
 
#define STT_LOPROC   13
 
#define STT_HIPROC   15
 
#define ELF32_ST_BIND(__INFO)   ((__INFO) >> 4)
 
#define ELF32_ST_TYPE(__INFO)   ((__INFO) & 0xF)
 
#define ELF32_ST_INFO(__BIND, __TYPE)   (((__BIND) << 4) + ((__TYPE) & 0xF))
 
#define STV_DEFAULT   0
 
#define STV_INTERNAL   1
 
#define STV_HIDDEN   2
 
#define STV_PROTECTED   3
 
#define STV_EXPORTED   4
 
#define STV_SINGLETON   5
 
#define STV_ELIMINATE   6
 
#define ELF32_ST_VIS(__OTHER)   ((__OTHER) & 3)
 
#define ELF32_R_SYM(__INFO)   ((__INFO) >> 8)
 
#define ELF32_R_TYPE(__INFO)   ((unsigned char)(__INFO))
 
#define ELF32_R_INFO(__SYM, __TYPE)   (((__SYM) << 8) + (unsigned char)(__TYPE))
 
#define PT_NULL   0
 
#define PT_LOAD   1
 
#define PT_DYNAMIC   2
 
#define PT_INTERP   3
 
#define PT_NOTE   4
 
#define PT_SHLIB   5
 
#define PT_PHDR   6
 
#define PT_LOPROC   0x70000000
 
#define PT_HIPROC   0x7FFFFFFF
 
#define PF_R   0x4
 
#define PF_W   0x2
 
#define PF_X   0x1
 
#define DT_NULL   0
 
#define DT_NEEDED   1
 
#define DT_PLTRELSZ   2
 
#define DT_PLTGOT   3
 
#define DT_HASH   4
 
#define DT_STRTAB   5
 
#define DT_SYMTAB   6
 
#define DT_RELA   7
 
#define DT_RELASZ   8
 
#define DT_RELAENT   9
 
#define DT_STRSZ   10
 
#define DT_SYMENT   11
 
#define DT_INIT   12
 
#define DT_FINI   13
 
#define DT_SONAME   14
 
#define DT_RPATH   15
 
#define DT_SYMBOLIC   16
 
#define DT_REL   17
 
#define DT_RELSZ   18
 
#define DT_RELENT   19
 
#define DT_PLTREL   20
 
#define DT_DEBUG   21
 
#define DT_TEXTREL   22
 
#define DT_JMPREL   23
 
#define DT_LOPROC   0x70000000
 
#define DT_HIPROC   0x7FFFFFFF
 
#define ELF64_R_SYM(__INFO)   ((__INFO) >> 32)
 
#define ELF64_R_TYPE(__INFO)   ((__INFO) & 0xffffffffL)
 
#define ELF64_R_INFO(__SYM, __TYPE)   (((__SYM) << 32) + ((__TYPE) & 0xffffffffL))
 
#define ELF64_ST_BIND(__INFO)   ((__INFO) >> 4)
 
#define ELF64_ST_TYPE(__INFO)   ((__INFO) & 0xF)
 
#define ELF64_ST_INFO(__BIND, __TYPE)   (((__BIND) << 4) + ((__TYPE) & 0xF))
 
#define ELF64_ST_VIS(__OTHER)   ((__OTHER) & 3)
 
#define Elf_Addr   Elf32_Addr
 
#define Elf_Off   Elf32_Off
 
#define Elf_Word   Elf32_Word
 
#define Elf_Sword   Elf32_Sword
 
#define Elf_Half   Elf32_Half
 
#define Elf_Hdr   Elf32_Hdr
 
#define Elf_Shdr   Elf32_Shdr
 
#define Elf_Sym   Elf32_Sym
 
#define Elf_Rel   Elf32_Rel
 
#define Elf_Rela   Elf32_Rela
 
#define Elf_Phdr   Elf32_Phdr
 
#define Elf_Dyn   Elf32_Dyn
 
#define ELF_R_SYM   ELF32_R_SYM
 
#define ELF_R_TYPE   ELF32_R_TYPE
 
#define ELF_R_INFO   ELF32_R_INFO
 
#define ELF_ST_BIND   ELF32_ST_BIND
 
#define ELF_ST_TYPE   ELF32_ST_TYPE
 
#define ELF_ST_VIS   ELF32_ST_VIS
 

Typedefs

typedef uint32_t Elf32_Addr
 
typedef uint32_t Elf32_Off
 
typedef uint32_t Elf32_Word
 
typedef int32_t Elf32_Sword
 
typedef uint16_t Elf32_Half
 
typedef struct Elf32_Hdr Elf32_Hdr
 
typedef struct Elf32_Shdr Elf32_Shdr
 
typedef struct Elf32_Sym Elf32_Sym
 
typedef struct Elf32_Rel Elf32_Rel
 
typedef struct Elf32_Rela Elf32_Rela
 
typedef struct Elf32_Phdr Elf32_Phdr
 
typedef struct Elf32_Dyn Elf32_Dyn
 
typedef uint64_t Elf64_Addr
 
typedef uint16_t Elf64_Half
 
typedef uint64_t Elf64_Off
 
typedef int32_t Elf64_Sword
 
typedef int64_t Elf64_Sxword
 
typedef uint32_t Elf64_Word
 
typedef uint64_t Elf64_Lword
 
typedef uint64_t Elf64_Xword
 

Macro Definition Documentation

◆ EI_MAG0

#define EI_MAG0   0

◆ ELFMAG0

#define ELFMAG0   0x7F

◆ EI_MAG1

#define EI_MAG1   1

◆ ELFMAG1

#define ELFMAG1   'E'

◆ EI_MAG2

#define EI_MAG2   2

◆ ELFMAG2

#define ELFMAG2   'L'

◆ EI_MAG3

#define EI_MAG3   3

◆ ELFMAG3

#define ELFMAG3   'F'

◆ EI_CLASS

#define EI_CLASS   4

◆ ELFCLASSNONE

#define ELFCLASSNONE   0

◆ ELFCLASS32

#define ELFCLASS32   1

◆ ELFCLASS64

#define ELFCLASS64   2

◆ EI_DATA

#define EI_DATA   5

◆ ELFDATANONE

#define ELFDATANONE   0

◆ ELFDATA2LSB

#define ELFDATA2LSB   1

◆ ELFDATA2MSB

#define ELFDATA2MSB   2

◆ EI_VERSION

#define EI_VERSION   6

◆ EI_PAD

#define EI_PAD   7

◆ EI_NIDENT

#define EI_NIDENT   16

◆ ET_NONE

#define ET_NONE   0

◆ ET_REL

#define ET_REL   1

◆ ET_EXEC

#define ET_EXEC   2

◆ ET_DYN

#define ET_DYN   3

◆ ET_CORE

#define ET_CORE   4

◆ ET_LOPROC

#define ET_LOPROC   0xFF00

◆ ET_HIPROC

#define ET_HIPROC   0xFFFF

◆ EM_NONE

#define EM_NONE   0

◆ EM_M32

#define EM_M32   1

◆ EM_SPARC

#define EM_SPARC   2

◆ EM_386

#define EM_386   3

◆ EM_68K

#define EM_68K   4

◆ EM_88K

#define EM_88K   5

◆ EM_860

#define EM_860   7

◆ EM_MIPS

#define EM_MIPS   8

◆ EM_ARM

#define EM_ARM   0x28

◆ EV_NONE

#define EV_NONE   0

◆ EV_CURRENT

#define EV_CURRENT   1

◆ SHN_UNDEF

#define SHN_UNDEF   0

◆ SHN_LORESERVE

#define SHN_LORESERVE   0xFF00

◆ SHN_LOPROC

#define SHN_LOPROC   0xFF00

◆ SHN_HIPROC

#define SHN_HIPROC   0xFF1F

◆ SHN_ABS

#define SHN_ABS   0xFFF1

◆ SHN_COMMON

#define SHN_COMMON   0xFFF2

◆ SHN_HIRESERVE

#define SHN_HIRESERVE   0xFFFF

◆ SHT_NULL

#define SHT_NULL   0

◆ SHT_PROGBITS

#define SHT_PROGBITS   1

◆ SHT_SYMTAB

#define SHT_SYMTAB   2

◆ SHT_STRTAB

#define SHT_STRTAB   3

◆ SHT_RELA

#define SHT_RELA   4

◆ SHT_HASH

#define SHT_HASH   5

◆ SHT_DYNAMIC

#define SHT_DYNAMIC   6

◆ SHT_NOTE

#define SHT_NOTE   7

◆ SHT_NOBITS

#define SHT_NOBITS   8

◆ SHT_REL

#define SHT_REL   9

◆ SHT_SHLIB

#define SHT_SHLIB   10

◆ SHT_DYNSYM

#define SHT_DYNSYM   11

◆ SHT_LOPROC

#define SHT_LOPROC   0x70000000

◆ SHT_HIPROC

#define SHT_HIPROC   0x7FFFFFFF

◆ SHT_LOUSER

#define SHT_LOUSER   0x80000000

◆ SHT_HIUSER

#define SHT_HIUSER   0x8FFFFFFF

◆ SHF_WRITE

#define SHF_WRITE   0x1

◆ SHF_ALLOC

#define SHF_ALLOC   0x2

◆ SHF_EXECINSTR

#define SHF_EXECINSTR   0x4

◆ SHF_MASKPROC

#define SHF_MASKPROC   0xF0000000

◆ STB_LOCAL

#define STB_LOCAL   0

◆ STB_GLOBAL

#define STB_GLOBAL   1

◆ STB_WEAK

#define STB_WEAK   2

◆ STB_LOPROC

#define STB_LOPROC   13

◆ STB_HIPROC

#define STB_HIPROC   15

◆ STT_NOTYPE

#define STT_NOTYPE   0

◆ STT_OBJECT

#define STT_OBJECT   1

◆ STT_FUNC

#define STT_FUNC   2

◆ STT_SECTION

#define STT_SECTION   3

◆ STT_FILE

#define STT_FILE   4

◆ STT_LOPROC

#define STT_LOPROC   13

◆ STT_HIPROC

#define STT_HIPROC   15

◆ ELF32_ST_BIND

#define ELF32_ST_BIND (   __INFO)    ((__INFO) >> 4)

◆ ELF32_ST_TYPE

#define ELF32_ST_TYPE (   __INFO)    ((__INFO) & 0xF)

◆ ELF32_ST_INFO

#define ELF32_ST_INFO (   __BIND,
  __TYPE 
)    (((__BIND) << 4) + ((__TYPE) & 0xF))

◆ STV_DEFAULT

#define STV_DEFAULT   0

◆ STV_INTERNAL

#define STV_INTERNAL   1

◆ STV_HIDDEN

#define STV_HIDDEN   2

◆ STV_PROTECTED

#define STV_PROTECTED   3

◆ STV_EXPORTED

#define STV_EXPORTED   4

◆ STV_SINGLETON

#define STV_SINGLETON   5

◆ STV_ELIMINATE

#define STV_ELIMINATE   6

◆ ELF32_ST_VIS

#define ELF32_ST_VIS (   __OTHER)    ((__OTHER) & 3)

◆ ELF32_R_SYM

#define ELF32_R_SYM (   __INFO)    ((__INFO) >> 8)

◆ ELF32_R_TYPE

#define ELF32_R_TYPE (   __INFO)    ((unsigned char)(__INFO))

◆ ELF32_R_INFO

#define ELF32_R_INFO (   __SYM,
  __TYPE 
)    (((__SYM) << 8) + (unsigned char)(__TYPE))

◆ PT_NULL

#define PT_NULL   0

◆ PT_LOAD

#define PT_LOAD   1

◆ PT_DYNAMIC

#define PT_DYNAMIC   2

◆ PT_INTERP

#define PT_INTERP   3

◆ PT_NOTE

#define PT_NOTE   4

◆ PT_SHLIB

#define PT_SHLIB   5

◆ PT_PHDR

#define PT_PHDR   6

◆ PT_LOPROC

#define PT_LOPROC   0x70000000

◆ PT_HIPROC

#define PT_HIPROC   0x7FFFFFFF

◆ PF_R

#define PF_R   0x4

◆ PF_W

#define PF_W   0x2

◆ PF_X

#define PF_X   0x1

◆ DT_NULL

#define DT_NULL   0

◆ DT_NEEDED

#define DT_NEEDED   1

◆ DT_PLTRELSZ

#define DT_PLTRELSZ   2

◆ DT_PLTGOT

#define DT_PLTGOT   3

◆ DT_HASH

#define DT_HASH   4

◆ DT_STRTAB

#define DT_STRTAB   5

◆ DT_SYMTAB

#define DT_SYMTAB   6

◆ DT_RELA

#define DT_RELA   7

◆ DT_RELASZ

#define DT_RELASZ   8

◆ DT_RELAENT

#define DT_RELAENT   9

◆ DT_STRSZ

#define DT_STRSZ   10

◆ DT_SYMENT

#define DT_SYMENT   11

◆ DT_INIT

#define DT_INIT   12

◆ DT_FINI

#define DT_FINI   13

◆ DT_SONAME

#define DT_SONAME   14

◆ DT_RPATH

#define DT_RPATH   15

◆ DT_SYMBOLIC

#define DT_SYMBOLIC   16

◆ DT_REL

#define DT_REL   17

◆ DT_RELSZ

#define DT_RELSZ   18

◆ DT_RELENT

#define DT_RELENT   19

◆ DT_PLTREL

#define DT_PLTREL   20

◆ DT_DEBUG

#define DT_DEBUG   21

◆ DT_TEXTREL

#define DT_TEXTREL   22

◆ DT_JMPREL

#define DT_JMPREL   23

◆ DT_LOPROC

#define DT_LOPROC   0x70000000

◆ DT_HIPROC

#define DT_HIPROC   0x7FFFFFFF

◆ ELF64_R_SYM

#define ELF64_R_SYM (   __INFO)    ((__INFO) >> 32)

◆ ELF64_R_TYPE

#define ELF64_R_TYPE (   __INFO)    ((__INFO) & 0xffffffffL)

◆ ELF64_R_INFO

#define ELF64_R_INFO (   __SYM,
  __TYPE 
)    (((__SYM) << 32) + ((__TYPE) & 0xffffffffL))

◆ ELF64_ST_BIND

#define ELF64_ST_BIND (   __INFO)    ((__INFO) >> 4)

◆ ELF64_ST_TYPE

#define ELF64_ST_TYPE (   __INFO)    ((__INFO) & 0xF)

◆ ELF64_ST_INFO

#define ELF64_ST_INFO (   __BIND,
  __TYPE 
)    (((__BIND) << 4) + ((__TYPE) & 0xF))

◆ ELF64_ST_VIS

#define ELF64_ST_VIS (   __OTHER)    ((__OTHER) & 3)

◆ Elf_Addr

#define Elf_Addr   Elf32_Addr

◆ Elf_Off

#define Elf_Off   Elf32_Off

◆ Elf_Word

#define Elf_Word   Elf32_Word

◆ Elf_Sword

#define Elf_Sword   Elf32_Sword

◆ Elf_Half

#define Elf_Half   Elf32_Half

◆ Elf_Hdr

#define Elf_Hdr   Elf32_Hdr

◆ Elf_Shdr

#define Elf_Shdr   Elf32_Shdr

◆ Elf_Sym

#define Elf_Sym   Elf32_Sym

◆ Elf_Rel

#define Elf_Rel   Elf32_Rel

◆ Elf_Rela

#define Elf_Rela   Elf32_Rela

◆ Elf_Phdr

#define Elf_Phdr   Elf32_Phdr

◆ Elf_Dyn

#define Elf_Dyn   Elf32_Dyn

◆ ELF_R_SYM

#define ELF_R_SYM   ELF32_R_SYM

◆ ELF_R_TYPE

#define ELF_R_TYPE   ELF32_R_TYPE

◆ ELF_R_INFO

#define ELF_R_INFO   ELF32_R_INFO

◆ ELF_ST_BIND

#define ELF_ST_BIND   ELF32_ST_BIND

◆ ELF_ST_TYPE

#define ELF_ST_TYPE   ELF32_ST_TYPE

◆ ELF_ST_VIS

#define ELF_ST_VIS   ELF32_ST_VIS

Typedef Documentation

◆ Elf32_Addr

◆ Elf32_Off

◆ Elf32_Word

◆ Elf32_Sword

◆ Elf32_Half

◆ Elf32_Hdr

typedef struct Elf32_Hdr Elf32_Hdr

◆ Elf32_Shdr

typedef struct Elf32_Shdr Elf32_Shdr

◆ Elf32_Sym

typedef struct Elf32_Sym Elf32_Sym

◆ Elf32_Rel

typedef struct Elf32_Rel Elf32_Rel

◆ Elf32_Rela

typedef struct Elf32_Rela Elf32_Rela

◆ Elf32_Phdr

typedef struct Elf32_Phdr Elf32_Phdr

◆ Elf32_Dyn

typedef struct Elf32_Dyn Elf32_Dyn

◆ Elf64_Addr

◆ Elf64_Half

◆ Elf64_Off

◆ Elf64_Sword

◆ Elf64_Sxword

◆ Elf64_Word

◆ Elf64_Lword

◆ Elf64_Xword