kernel/elf.i

238 lines
6.3 KiB
OpenEdge ABL
Raw Normal View History

2024-03-19 09:23:45 -05:00
ifnd ELF_I
ELF_I equ 1
clrso
Elf_Ehdr.ei_mag: so.b 4
Elf_Ehdr.ei_class: so.b 1
Elf_Ehdr.ei_data: so.b 1
Elf_Ehdr.ei_version so.b 1
Elf_Ehdr.ei_osabi: so.b 1
Elf_Ehdr.ei_padd: so.b 8
Elf_Ehdr.e_type: so.w 1
Elf_Ehdr.e_machine: so.w 1
Elf_Ehdr.e_version: so.l 1
Elf_Ehdr.sizeof equ __SO
Elf32_Ehdr.e_entry: so.l 1
Elf32_Ehdr.e_phoff: so.l 1
Elf32_Ehdr.e_shoff: so.l 1
Elf32_Ehdr.e_flags: so.l 1
Elf32_Ehdr.e_ehsize: so.w 1
Elf32_Ehdr.e_phentsize: so.w 1
Elf32_Ehdr.e_phnum: so.w 1
Elf32_Ehdr.e_shentsize: so.w 1
Elf32_Ehdr.e_shnum: so.w 1
Elf32_Ehdr.e_shstrndx: so.w 1
Elf32_Ehdr.sizeof equ __SO
ELFMAG0 equ $7f ; EI_MAG
ELFMAG1 equ 'E'
ELFMAG2 equ 'L'
ELFMAG3 equ 'F'
ELFCLASSNONE equ 0 ; EI_CLASS
ELFCLASS32 equ 1
ELFCLASS64 equ 2
ELFCLASSNUM equ 3
ELFDATANONE equ 0 ; EI_DATA
ELFDATA2LSB equ 1
ELFDATA2MSB equ 2
ELFDATANUM equ 3
ET_NONE equ 0 ; e_type
ET_REL equ 1
ET_EXEC equ 2
ET_DYN equ 3
ET_CORE equ 4
ET_NUM equ 5
ET_LOOS equ $fe00 ; OS specific range
ET_LOSUNW equ $feff
ET_SUNWPSEUDO equ $feff
ET_HISUNW equ $feff
ET_HIOS equ $feff
ET_LOPROC equ $ff00 ; processor specific range
ET_HIPROC equ $ffff
EM_NONE equ 0 ; e_machine
EM_M32 equ 1 ; AT&T WE 32100
EM_SPARC equ 2 ; Sun SPARC
EM_386 equ 3 ; Intel 80386
EM_68K equ 4 ; Motorola 68000
EM_88K equ 5 ; Motorola 88000
EM_486 equ 6 ; Intel 80486
EM_860 equ 7 ; Intel i860
EM_MIPS equ 8 ; MIPS RS3000 Big-Endian
EM_S370 equ 9 ; IBM System/370 Processor
EM_MIPS_RS3_LE equ 10 ; MIPS RS3000 Little-Endian
EM_RS6000 equ 11 ; RS6000
EM_UNKNOWN12 equ 12
EM_UNKNOWN13 equ 13
EM_UNKNOWN14 equ 14
EM_PA_RISC equ 15 ; PA-RISC
EM_nCUBE equ 16 ; nCUBE
EM_VPP500 equ 17 ; Fujitsu VPP500
EM_SPARC32PLUS equ 18 ; Sun SPARC 32+
EM_960 equ 19 ; Intel 80960
EM_PPC equ 20 ; PowerPC
EM_PPC64 equ 21 ; 64-bit PowerPC
EM_UNKNOWN22 equ 22
EM_UNKNOWN23 equ 23
EM_UNKNOWN24 equ 24
EM_UNKNOWN25 equ 25
EM_UNKNOWN26 equ 26
EM_UNKNOWN27 equ 27
EM_UNKNOWN28 equ 28
EM_UNKNOWN29 equ 29
EM_UNKNOWN30 equ 30
EM_UNKNOWN31 equ 31
EM_UNKNOWN32 equ 32
EM_UNKNOWN33 equ 33
EM_UNKNOWN34 equ 34
EM_UNKNOWN35 equ 35
EM_V800 equ 36 ; NEX V800
EM_FR20 equ 37 ; Fujitsu FR20
EM_RH32 equ 38 ; TRW RH-32
EM_RCE equ 39 ; Motorola RCE
EM_ARM equ 40 ; Advanced RISC Marchines ARM
EM_ALPHA equ 41 ; Digital Alpha
EM_SH equ 42 ; Hitachi SH
EM_SPARCV9 equ 43 ; Sun SPARC V9 (64-bit)
EM_TRICORE equ 44 ; Siemens Tricore embedded processor
EM_ARC equ 45 ; Argonaut RISC Core,
; Argonaut Technologies Inc.
EM_H8_300 equ 46 ; Hitachi H8/300
EM_H8_300H equ 47 ; Hitachi H8/300H
EM_H8S equ 48 ; Hitachi H8S
EM_H8_500 equ 49 ; Hitachi H8/500
EM_IA_64 equ 50 ; Intel IA64
EM_MIPS_X equ 51 ; Stanford MIPS-X
EM_COLDFIRE equ 52 ; Motorola ColdFire
EM_68HC12 equ 53 ; Motorola M68HC12
EM_MMA equ 54 ; Fujitsu MMA Mulimedia Accelerator
EM_PCP equ 55 ; Siemens PCP
EM_NCPU equ 56 ; Sony nCPU embedded RISC processor
EM_NDR1 equ 57 ; Denso NDR1 microprocessor
EM_STARCORE equ 58 ; Motorola Star*Core processor
EM_ME16 equ 59 ; Toyota ME16 processor
EM_ST100 equ 60 ; STMicroelectronics ST100 processor
EM_TINYJ equ 61 ; Advanced Logic Corp. TinyJ
; embedded processor family
EM_AMD64 equ 62 ; AMDs x86-64 architecture
EM_X86_64 equ EM_AMD64 ; (compatibility)
EM_PDSP equ 63 ; Sony DSP Processor
EM_UNKNOWN64 equ 64
EM_UNKNOWN65 equ 65
EM_FX66 equ 66 ; Siemens FX66 microcontroller
EM_ST9PLUS equ 67 ; STMicroelectronics ST9+8/16 bit
; microcontroller
EM_ST7 equ 68 ; STMicroelectronics ST7 8-bit
; microcontroller
EM_68HC16 equ 69 ; Motorola MC68HC16 Microcontroller
EM_68HC11 equ 70 ; Motorola MC68HC11 Microcontroller
EM_68HC08 equ 71 ; Motorola MC68HC08 Microcontroller
EM_68HC05 equ 72 ; Motorola MC68HC05 Microcontroller
EM_SVX equ 73 ; Silicon Graphics SVx
EM_ST19 equ 74 ; STMicroelectronics ST19 8-bit
; microcontroller
EM_VAX equ 75 ; Digital VAX
EM_CRIS equ 76 ; Axis Communications 32-bit
; embedded processor
EM_JAVELIN equ 77 ; Infineon Technologies 32-bit
; embedded processor
EM_FIREPATH equ 78 ; Element 14 64-bit DSP Processor
EM_ZSP equ 79 ; LSI Logic 16-bit DSP Processor
EM_MMIX equ 80 ; Donald Knuth's educational
; 64-bit processor
EM_HUANY equ 81 ; Harvard University
; machine-independent
; object files
EM_PRISM equ 82 ; SiTera Prism
EM_AVR equ 83 ; Atmel AVR 8-bit microcontroller
EM_FR30 equ 84 ; Fujitsu FR30
EM_D10V equ 85 ; Mitsubishi D10V
EM_D30V equ 86 ; Mitsubishi D30V
EM_V850 equ 87 ; NEC v850
EM_M32R equ 88 ; Mitsubishi M32R
EM_MN10300 equ 89 ; Matsushita MN10300
EM_MN10200 equ 90 ; Matsushita MN10200
EM_PJ equ 91 ; picoJava
EM_OPENRISC equ 92 ; OpenRISC 32-bit embedded processor
EM_ARC_A5 equ 93 ; ARC Cores Tangent-A5
EM_XTENSA equ 94 ; Tensilica Xtensa architecture
EM_NUM equ 95
EV_NONE equ 0 ; e_version, EI_VERSION
EV_CURRENT equ 1
EV_NUM equ 2
ELFOSABI_NONE equ 0 ; No extensions or unspecified
ELFOSABI_HPUX equ 1 ; Hewlett-Packard HP-UX
ELFOSABI_NETBSD equ 2 ; NetBSD
ELFOSABI_LINUX equ 3 ; Linux
ELFOSABI_UNKNOWN4 equ 4
ELFOSABI_UNKNOWN5 equ 5
ELFOSABI_SOLARIS equ 6 ; Sun Solaris
ELFOSABI_AIX equ 7 ; AIX
ELFOSABI_IRIX equ 8 ; IRIX
ELFOSABI_FREEBSD equ 9 ; FreeBSD
ELFOSABI_TRU64 equ 10 ; Compaq TRU64 UNIX
ELFOSABI_MODESTO equ 11 ; Novell Modesto
ELFOSABI_OPENBSD equ 12 ; Open BSD
clrso
Elf32_Phdr.p_type: so.l 1
Elf32_Phdr.p_offset: so.l 1
Elf32_Phdr.p_vaddr: so.l 1
Elf32_Phdr.p_paddr: so.l 1
Elf32_Phdr.p_filesz: so.l 1
Elf32_Phdr.p_memsz: so.l 1
Elf32_Phdr.p_flags: so.l 1
Elf32_Phdr.p_align: so.l 1
Elf32_Phdr.sizeof equ __SO
PT_NULL equ 0 ; p_type
PT_LOAD equ 1
PT_DYNAMIC equ 2
PT_INTERP equ 3
PT_NOTE equ 4
PT_SHLIB equ 5
PT_PHDR equ 6
PT_TLS equ 7
PT_NUM equ 8
PT_LOOS equ $60000000 ; OS specific range
;
; Note: The amd64 psABI defines that the UNWIND program header
; should reside in the OS specific range of the program
; headers.
;
PT_SUNW_UNWIND equ $6464e550 ; amd64 UNWIND program header
PT_GNU_EH_FRAME equ PT_SUNW_UNWIND
PT_LOSUNW equ $6ffffffa
PT_SUNWBSS equ $6ffffffa ; Sun Specific segment
PT_SUNWSTACK equ $6ffffffb ; describes the stack segment
PT_SUNWDTRACE equ $6ffffffc ; private
PT_SUNWCAP equ $6ffffffd ; hard/soft capabilities segment
PT_HISUNW equ $6fffffff
PT_HIOS equ $6fffffff
PT_LOPROC equ $70000000 ; processor specific range
PT_HIPROC equ $7fffffff
PF_R equ $4 ; p_flags
PF_W equ $2
PF_X equ $1
PF_MASKOS equ $0ff00000 ; OS specific values
PF_MASKPROC equ $f0000000 ; processor specific values
PF_SUNW_FAILURE equ $00100000 ; mapping absent due to failure
PN_XNUM equ $ffff ; extended program header index
endif