about summary refs log tree commit diff stats
path: root/src/include/symbols.h
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-10-22 20:57:31 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-10-22 20:57:31 +0200
commit58cdb1bda2f2dd6a0bc5ea42e99b279fc687c06b (patch)
tree099bf5dc7d814272d6842df6656c2e672d5a1143 /src/include/symbols.h
parenta530f565110875c431ff9600ee9da4a640599ec7 (diff)
downloadbox64-58cdb1bda2f2dd6a0bc5ea42e99b279fc687c06b.tar.gz
box64-58cdb1bda2f2dd6a0bc5ea42e99b279fc687c06b.zip
Refactored, again, elfloader symbol fetching (ported from box86)
Diffstat (limited to 'src/include/symbols.h')
-rw-r--r--src/include/symbols.h14
1 files changed, 11 insertions, 3 deletions
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