From bdff18da870538c009576edc5af65334f446c7b9 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 13 Jul 2001 06:16:26 +0000 Subject: Scrub up a few things I forgot. Add a few more cleanups. -Erik --- ldso/ldso/hash.h | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'ldso/ldso/hash.h') diff --git a/ldso/ldso/hash.h b/ldso/ldso/hash.h index 9cd2894f8..043b64aca 100644 --- a/ldso/ldso/hash.h +++ b/ldso/ldso/hash.h @@ -1,4 +1,38 @@ -#include "link.h" +#ifndef _HASH_H_ +#define _HASH_H_ + +#include "elf.h" + +/* Header file that describes the internal data structures used by the + * ELF dynamic linker. */ + +struct link_map +{ + /* These entries must be in this order to be compatible with the + * interface used by gdb to obtain the list of symbols. */ + unsigned long l_addr; /* address at which object is mapped */ + char *l_name; /* full name of loaded object */ + Elf32_Dyn *l_ld; /* dynamic structure of object */ + struct link_map *l_next; + struct link_map *l_prev; +}; + +/* The DT_DEBUG entry in the .dynamic section is given the address of + * this structure. gdb can pick this up to obtain the correct list of + * loaded modules. */ +struct r_debug +{ + int r_version; /* debugging info version no */ + struct link_map *r_map; /* address of link_map */ + unsigned long r_brk; /* address of update routine */ + enum + { + RT_CONSISTENT, + RT_ADD, + RT_DELETE + } r_state; + unsigned long r_ldbase; /* base addr of ld.so */ +}; #ifndef RTLD_NEXT #define RTLD_NEXT ((void*)-1) @@ -94,3 +128,8 @@ static inline int _dl_symbol(char * name) #define DL_BAD_HANDLE 9 #define DL_NO_SYMBOL 10 + + +#endif /* _HASH_H_ */ + + -- cgit v1.2.3