Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 908 → Rev 909

/kernel/trunk/generic/include/elf32.h
133,7 → 133,42
#define SHF_EXECINSTR 0x4
#define SHF_MASKPROC 0xf0000000
 
 
/**
* Symbol binding
*/
#define STB_LOCAL 0
#define STB_GLOBAL 1
#define STB_WEAK 2
#define STB_LOPROC 13
#define STB_HIPROC 15
 
/**
* Symbol types
*/
#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
 
 
/**
* Program segment types
*/
#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
 
/**
* 32-bit ELF data types
*/
typedef __u32 elf32_addr;
180,10 → 215,40
};
 
 
/*
* 32-bit ELF symbol table entry
*/
struct elf32_symbol {
elf32_word st_name;
elf32_addr st_value;
elf32_word st_size;
__u8 st_info;
__u8 st_other;
elf32_half st_shndx;
};
 
 
/*
* 32-bit ELF program header
*/
struct elf32_program_header {
elf32_word p_type;
elf32_off p_offset;
elf32_addr pv_addr;
elf32_addr pp_addr;
elf32_word p_filesz;
elf32_word p_memsz;
elf32_word p_flags;
elf32_word p_align;
};
typedef struct elf32_header elf32_header_t;
typedef struct elf32_section_header elf32_section_header_t;
typedef struct elf32_symbol elf32_symbol_t;
typedef struct elf32_program_header elf32_program_header_t;
 
 
 
extern int elf32_load(__address header, as_t * as);
 
#endif