elfprefix.S revision 677833bc953b6cb418c701facbdcf4aa18d6c44e
312N/A#include "elf.h"
312N/A
312N/A .arch i386
312N/A .section ".prefix", "a", @progbits
312N/A
312N/A#define LOAD_ADDR 0x10000
312N/A
312N/A /* ELF Header */
312N/A .globl elf_header
312N/Aelf_header:
312N/Ae_ident: .byte 0x7f, 'E', 'L', 'F', 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
312N/Ae_type: .short ET_EXEC
312N/Ae_machine: .short EM_386
312N/Ae_version: .long 1
312N/Ae_entry: .long LOAD_ADDR + _start - elf_header
312N/Ae_phoff: .long elf_program_header - elf_header
312N/Ae_shoff: .long 0
312N/Ae_flags: .long 0
312N/Ae_ehsize: .short elf_header_end - elf_header
312N/Ae_phentsize: .short ELF32_PHDR_SIZE
312N/Ae_phnum: .short (elf_program_header_end - elf_program_header)/ELF32_PHDR_SIZE
607N/Ae_shentsize: .short 0
312N/Ae_shnum: .short 0
312N/Ae_shstrndx: .short 0
312N/Aelf_header_end:
312N/A
312N/Aelf_program_header:
312N/Aphdr1_p_type: .long PT_NOTE
312N/Aphdr1_p_offset: .long elf_note - elf_header
607N/Aphdr1_p_vaddr: .long elf_note
312N/Aphdr1_p_paddr: .long elf_note
312N/Aphdr1_p_filesz: .long elf_note_end - elf_note
312N/Aphdr1_p_memsz: .long elf_note_end - elf_note
312N/Aphdr1_p_flags: .long PF_R | PF_W | PF_X
312N/Aphdr1_p_align: .long 0
312N/A
312N/A/* The decompressor */
312N/Aphdr2_p_type: .long PT_LOAD
312N/Aphdr2_p_offset: .long 0
312N/Aphdr2_p_vaddr: .long elf_header
312N/Aphdr2_p_paddr: .long LOAD_ADDR
312N/Aphdr2_p_filesz: .long _verbatim_size
312N/Aphdr2_p_memsz: .long _image_size
312N/Aphdr2_p_flags: .long PF_R | PF_W | PF_X
312N/Aphdr2_p_align: .long 16
312N/A
312N/Aelf_program_header_end:
312N/A
312N/A .globl elf_note
312N/Aelf_note:
312N/A .balign 4
312N/A .int 2f - 1f
312N/A .int 4f - 3f
312N/A .int EIN_PROGRAM_NAME
312N/A1: .asciz "ELFBoot"
312N/A2:
312N/A .balign 4
312N/A3:
312N/A .asciz "Etherboot"
312N/A4:
312N/A
312N/A
312N/A .balign 4
312N/A .int 2f - 1f
312N/A .int 4f - 3f
312N/A .int EIN_PROGRAM_VERSION
312N/A1: .asciz "ELFBoot"
312N/A2:
312N/A .balign 4
312N/A3:
312N/A .asciz VERSION
312N/A4:
312N/A
312N/A#if 0
312N/A .balign 4
312N/A .int 2f - 1f
312N/A .int 4f - 3f
312N/A .int EIN_PROGRAM_CHECKSUM
312N/A1: .asciz "ELFBoot"
312N/A2:
312N/A .balign 4
312N/A3:
312N/A .word 0
312N/A4:
312N/A#endif
312N/A .balign 4
312N/Aelf_note_end:
312N/A
312N/A /* Dummy routines to satisfy the build */
312N/A .section ".text16", "ax", @progbits
312N/A .globl prefix_exit
312N/Aprefix_exit:
312N/A
312N/A .globl prefix_exit_end
312N/Aprefix_exit_end:
312N/A .previous
312N/A