Removed ktypes.h dependency; replaced "addr" with "addr_t", some other minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7261 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -6,42 +6,41 @@
|
|||||||
#define _KERNEL_ELF_PRIV_H
|
#define _KERNEL_ELF_PRIV_H
|
||||||
|
|
||||||
|
|
||||||
#include <ktypes.h>
|
|
||||||
#include <elf32.h>
|
#include <elf32.h>
|
||||||
#include <image.h>
|
#include <image.h>
|
||||||
|
|
||||||
|
|
||||||
struct elf_region {
|
struct elf_region {
|
||||||
area_id id;
|
area_id id;
|
||||||
addr start;
|
addr_t start;
|
||||||
addr size;
|
addr_t size;
|
||||||
long delta;
|
long delta;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct elf_image_info {
|
struct elf_image_info {
|
||||||
struct elf_image_info *next;
|
struct elf_image_info *next;
|
||||||
char *name;
|
char *name;
|
||||||
image_id id;
|
image_id id;
|
||||||
int32 ref_count;
|
int32 ref_count;
|
||||||
void *vnode;
|
void *vnode;
|
||||||
struct elf_region regions[2]; // describes the text and data regions
|
struct elf_region regions[2]; // describes the text and data regions
|
||||||
addr dynamic_ptr; // pointer to the dynamic section
|
addr_t dynamic_ptr; // pointer to the dynamic section
|
||||||
struct elf_linked_image *linked_images;
|
struct elf_linked_image *linked_images;
|
||||||
|
|
||||||
struct Elf32_Ehdr *eheader;
|
struct Elf32_Ehdr *eheader;
|
||||||
|
|
||||||
// pointer to symbol participation data structures
|
// pointer to symbol participation data structures
|
||||||
char *needed;
|
char *needed;
|
||||||
unsigned int *symhash;
|
uint32 *symhash;
|
||||||
struct Elf32_Sym *syms;
|
struct Elf32_Sym *syms;
|
||||||
char *strtab;
|
char *strtab;
|
||||||
struct Elf32_Rel *rel;
|
struct Elf32_Rel *rel;
|
||||||
int rel_len;
|
int rel_len;
|
||||||
struct Elf32_Rela *rela;
|
struct Elf32_Rela *rela;
|
||||||
int rela_len;
|
int rela_len;
|
||||||
struct Elf32_Rel *pltrel;
|
struct Elf32_Rel *pltrel;
|
||||||
int pltrel_len;
|
int pltrel_len;
|
||||||
int pltrel_type;
|
int pltrel_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -53,6 +52,6 @@ struct elf_image_info {
|
|||||||
#define HASHCHAINS(image) ((unsigned int *)&(image)->symhash[2+HASHTABSIZE(image)])
|
#define HASHCHAINS(image) ((unsigned int *)&(image)->symhash[2+HASHTABSIZE(image)])
|
||||||
|
|
||||||
extern int elf_resolve_symbol(struct elf_image_info *image, struct Elf32_Sym *sym,
|
extern int elf_resolve_symbol(struct elf_image_info *image, struct Elf32_Sym *sym,
|
||||||
struct elf_image_info *shared_image, const char *sym_prepend, addr *sym_addr);
|
struct elf_image_info *shared_image, const char *sym_prepend, addr_t *sym_addr);
|
||||||
|
|
||||||
#endif /* _KERNEL_ELF_PRIV_H */
|
#endif /* _KERNEL_ELF_PRIV_H */
|
||||||
|
|||||||
Reference in New Issue
Block a user