From 58cdb1bda2f2dd6a0bc5ea42e99b279fc687c06b Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 22 Oct 2022 20:57:31 +0200 Subject: Refactored, again, elfloader symbol fetching (ported from box86) --- src/include/symbols.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/include/symbols.h') diff --git a/src/include/symbols.h b/src/include/symbols.h index 49cd40f0..98eb9db7 100644 --- a/src/include/symbols.h +++ b/src/include/symbols.h @@ -14,11 +14,19 @@ void FreeMapSymbols(kh_mapsymbols_t** map); // replace if already there void AddSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint32_t sz, int ver, const char* vername); -uintptr_t FindSymbol(kh_mapsymbols_t *mapsymbols, const char* name, int ver, const char* vername, int local); +uintptr_t FindSymbol(kh_mapsymbols_t *mapsymbols, const char* name, int ver, const char* vername, int local, const char* defver); // don't add if already there -void AddWeakSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint32_t sz, int ver, const char* vername); -int GetSymbolStartEnd(kh_mapsymbols_t* mapsymbols, const char* name, uintptr_t* start, uintptr_t* end, int ver, const char* vername, int local); +void AddUniqueSymbol(kh_mapsymbols_t *mapsymbols, const char* name, uintptr_t addr, uint32_t sz, int ver, const char* vername); +int GetSymbolStartEnd(kh_mapsymbols_t* mapsymbols, const char* name, uintptr_t* start, uintptr_t* end, int ver, const char* vername, int local, const char* defver); const char* GetSymbolName(kh_mapsymbols_t* mapsymbols, void* p, uintptr_t* offs, uint32_t* sz, const char** vername); +// default version handling +KHASH_MAP_DECLARE_STR(defaultversion, const char*) +kh_defaultversion_t* NewDefaultVersion(); +void FreeDefaultVersion(kh_defaultversion_t** def); + +void AddDefaultVersion(kh_defaultversion_t* def, const char* symname, const char* vername); +const char* GetDefaultVersion(kh_defaultversion_t* def, const char* symname); + #endif //__SYMBOLS_PRIVATE_H_ \ No newline at end of file -- cgit 1.4.1