diff options
Diffstat (limited to 'src/include')
| -rwxr-xr-x | src/include/box64context.h | 2 | ||||
| -rwxr-xr-x | src/include/librarian.h | 2 | ||||
| -rwxr-xr-x | src/include/library.h | 6 |
3 files changed, 6 insertions, 4 deletions
diff --git a/src/include/box64context.h b/src/include/box64context.h index c4e88a83..2424c130 100755 --- a/src/include/box64context.h +++ b/src/include/box64context.h @@ -213,6 +213,8 @@ void print_cycle_log(int loglevel); // return the index of the added header int AddElfHeader(box64context_t* ctx, elfheader_t* head); +// remove an elf from list (but list is never reduced, so there can be holes) +void RemoveElfHeader(box64context_t* ctx, elfheader_t* head); // return the tlsbase (negative) for the new TLS partition created (no partition index is stored in the context) int AddTLSPartition(box64context_t* context, int tlssize); diff --git a/src/include/librarian.h b/src/include/librarian.h index d374ae93..b7a46880 100755 --- a/src/include/librarian.h +++ b/src/include/librarian.h @@ -32,6 +32,8 @@ int GetLocalSymbolStartEnd(lib_t *maplib, const char* name, uintptr_t* start, ui elfheader_t* GetGlobalSymbolElf(lib_t *maplib, const char* name, int version, const char* vername); int IsGlobalNoWeakSymbolInNative(lib_t *maplib, const char* name, int version, const char* vername, const char* defver); +void MapLibRemoveLib(lib_t* maplib, library_t* lib); + const char* GetMaplibDefaultVersion(lib_t *maplib, lib_t *local_maplib, int isweak, const char* symname); const char* FindSymbolName(lib_t *maplib, void* p, void** start, uint64_t* sz, const char** libname, void** base, library_t** lib); diff --git a/src/include/library.h b/src/include/library.h index 29c7061d..35d1d40a 100755 --- a/src/include/library.h +++ b/src/include/library.h @@ -18,10 +18,6 @@ typedef struct elfheader_s elfheader_t; library_t *NewLibrary(const char* path, box64context_t* box64); int AddSymbolsLibrary(lib_t* maplib, library_t* lib, x64emu_t* emu); int FinalizeLibrary(library_t* lib, lib_t* local_maplib, int bindnow, x64emu_t* emu); -int ReloadLibrary(library_t* lib, x64emu_t* emu); -int FiniLibrary(library_t* lib, x64emu_t* emu); -void InactiveLibrary(library_t* lib); -void Free1Library(library_t **lib, x64emu_t* emu); char* GetNameLib(library_t *lib); int IsSameLib(library_t* lib, const char* path); // check if lib is same (path -> name) @@ -37,5 +33,7 @@ int GetElfIndex(library_t* lib); // -1 if no elf (i.e. wrapped) elfheader_t* GetElf(library_t* lib); // NULL if no elf (i.e. wrapped) void* GetHandle(library_t* lib); // NULL if not wrapped void IncRefCount(library_t* lib, x64emu_t* emu); +int DecRefCount(library_t** lib, x64emu_t* emu); // might unload the lib! +int GetRefCount(library_t* lib); #endif //__LIBRARY_H_ |