elf-struct.s (2788B)
1 # --------------------- CONSTANTS ------------------------- # 2 3 #---------- ELF header ------------ # 4 .set elf_header_size, 0x40 5 .set eh_idx_ident, 0x0 6 .set eh_idx_type, 0x10 7 .set eh_idx_machine, 0x12 8 .set eh_idx_version, 0x14 9 .set eh_idx_entry, 0x18 10 .set eh_idx_phoff, 0x20 11 .set eh_idx_shoff, 0x28 12 .set eh_idx_flags, 0x30 13 .set eh_idx_ehsize, 0x34 14 .set eh_idx_phentsize, 0x36 15 .set eh_idx_phnum, 0x38 16 .set eh_idx_shentsize, 0x3A 17 .set eh_idx_shnum, 0x3C 18 .set eh_idx_shstrndx, 0x3E 19 20 .set eh_idnet_size, 0x10 21 .set ei_idx_mag0, 0x0 22 .set ei_val_mag0, 0x7F 23 .set ei_idx_mag1, 0x1 24 .set ei_val_mag1, 'E' 25 .set ei_idx_mag2, 0x2 26 .set ei_val_mag2, 'L' 27 .set ei_idx_mag3, 0x3 28 .set ei_val_mag3, 'F' 29 .set ei_idx_class, 0x4 30 .set ei_val_class_none, 0x0 31 .set ei_val_class_32, 0x1 32 .set ei_val_class_64, 0x2 33 .set ei_idx_data, 0x5 34 .set ei_val_data_none, 0x0 35 .set ei_val_data_lsb, 0x1 # little endian 36 .set ei_val_data_msb, 0x2 # big endian 37 .set ei_idx_version, 0x6 38 39 .set eh_type_size, 0x2 40 .set et_val_none, 0x0 41 .set et_val_rel, 0x1 42 .set et_val_exec, 0x2 43 .set et_val_dyn, 0x3 44 .set et_val_core, 0x4 45 .set et_val_loproc, 0xFF00 46 .set et_val_hiproc, 0xFFFF 47 48 .set eh_machine_size, 0x2 49 .set em_val_none, 0x0 50 .set em_val_m32, 0x1 51 .set em_val_sparc, 0x2 52 .set em_val_386, 0x3 53 .set em_val_68k, 0x4 54 .set em_val_88k, 0x5 55 .set em_val_860, 0x7 56 .set em_val_mips, 0x8 57 .set em_val_mips_rs4_be, 0xA 58 .set em_val_x8664, 0x3E 59 60 .set eh_version_size, 0x4 61 .set ev_val_none, 0x0 62 .set ev_val_current, 0x1 63 64 .set eh_entry_size, 0x8 65 .set eh_phoff_size, 0x8 66 .set eh_shoff_size, 0x8 67 .set eh_flags_size, 0x4 68 .set eh_ehsize_size, 0x2 69 .set eh_phentsize_size, 0x2 70 .set eh_phnum_size, 0x2 71 .set eh_shentsize_size, 0x2 72 .set eh_shnum_size, 0x2 73 .set eh_shstrndx_size, 0x2 74 75 .set ei_mag0_idx, 0x0 76 .set ei_mag1_idx, 0x1 77 .set ei_mag2_idx, 0x2 78 .set ei_mag3_idx, 0x3 79 .set ei_class_idx, 0x4 80 .set ei_data_idx, 0x5 81 .set ei_version_idx, 0x6 82 83 #---------- Program header ------------ # 84 .set p_header_size, 0x38 85 .set ph_idx_type, 0x0 86 .set pt_val_null, 0x0 87 .set pt_val_load, 0x1 88 .set pt_val_dynamic, 0x2 89 .set pt_val_interp, 0x3 90 .set pt_val_note, 0x4 91 .set pt_val_shlib, 0x5 92 .set pt_val_phdr, 0x6 93 .set pt_val_loproc, 0x70000000 94 .set pt_val_hiproc, 0x7fffffff 95 .set ph_idx_flags, 0x4 96 .set ph_idx_offset, 0x8 97 .set ph_idx_vaddr, 0x10 98 .set ph_idx_paddr, 0x18 99 .set ph_idx_filesz, 0x20 100 .set ph_idx_memsz, 0x28 101 .set ph_idx_align, 0x30 102 103 .data 104 .bss 105 elf_header: 106 .space elf_header_size 107 program_header: 108 .space p_header_size 109