X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Fld-acess.so_src%2Fcommon.h;h=af620be660a9bb57022adaadd41e2769f70b2bd5;hb=HEAD;hp=6f67811a52b158e0b25701bb7f951c66e85eaa98;hpb=bfacdd3b71576cf6ceaa83352d3a7d162adb75e1;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/ld-acess.so_src/common.h b/Usermode/Libraries/ld-acess.so_src/common.h index 6f67811a..af620be6 100644 --- a/Usermode/Libraries/ld-acess.so_src/common.h +++ b/Usermode/Libraries/ld-acess.so_src/common.h @@ -10,12 +10,16 @@ #include #include #include +#include +#include typedef uintptr_t Uint; typedef uint8_t Uint8; typedef uint16_t Uint16; typedef uint32_t Uint32; +#define ASSERT(cnd) do { if( !(cnd) ) { _SysDebug("ASSERT: "#cnd" failed"); *(volatile int*)1 = 123; } } while(0) + // HACK: Replace with underscored #define SysDebug _SysDebug @@ -30,6 +34,11 @@ typedef struct { char *Name; } tLoadedLib; +typedef struct { + void *Value; + const char *Name; +} tLocalExport; + // === GLOBALS === extern tLoadedLib gLoadedLibraries[MAX_LOADED_LIBRARIES]; @@ -39,7 +48,7 @@ extern void *DoRelocate(void *Base, char **envp, const char *Filename); // === Library/Symbol Manipulation == extern void *LoadLibrary(const char *Filename, const char *SearchDir, char **envp); extern void AddLoaded(const char *File, void *base); -extern void *GetSymbol(const char *name, size_t *size); +extern int GetSymbol(const char *Name, void **Value, size_t *size, void *IgnoreBase); extern int GetSymbolFromBase(void *base, const char *name, void **ret, size_t *size); // === Library Functions === @@ -51,14 +60,6 @@ extern int file_exists(const char *filename); extern void *memcpy(void *dest, const void *src, size_t len); // === System Calls === -extern void _exit(int retval); -extern void SysDebug(const char *fmt, ...); //!< Now implemented in main.c -extern void SysDebugV(const char *fmt, ...); -extern void *SysLoadBin(const char *path, void **entry); -extern int SysUnloadBin(void *Base); -extern void SysSetFaultHandler(int (*Hanlder)(int)); -extern int open(const char *filename, int flags, ...); -extern int close(int fd); // === ELF Loader === extern void *ElfRelocate(void *Base, char **envp, const char *Filename);