Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 854 → Rev 855

/kernel/trunk/generic/include/elf32.h
105,7 → 105,35
#define EE_UNSUPPORTED 4 // Non-supported ELF (e.g. dynamic ELFs)
 
 
/*
/**
* ELF section types
*/
#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 0xffffffff
 
/**
* ELF section flags
*/
#define SHF_WRITE 0x1
#define SHF_ALLOC 0x2
#define SHF_EXECINSTR 0x4
#define SHF_MASKPROC 0xf0000000
 
/**
* 32-bit ELF data types
*/
typedef __u32 elf32_addr;
114,7 → 142,7
typedef int elf32_sword;
typedef __u32 elf32_word;
 
/*
/**
* 32-bit ELF header
*/
struct elf32_header {
134,6 → 162,28
elf32_half e_shstrndx;
};
 
 
/*
* 32-bit ELF section header
*/
struct elf32_section_header {
elf32_word sh_name;
elf32_word sh_type;
elf32_word sh_flags;
elf32_addr sh_addr;
elf32_off sh_offset;
elf32_word sh_size;
elf32_word sh_link;
elf32_word sh_info;
elf32_word sh_addralign;
elf32_word sh_entsize;
}
 
 
typedef struct elf32_header elf32_header_t;
typedef struct elf32_section_header elf32_section_header_t;
 
 
extern int elf32_load(__address header, as_t * as);
 
#endif