X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Fld-acess_src%2Fcommon.h;h=0bdc40f247af7cd30556986bda41fff22f2481d1;hb=c01cd6b0f42fa4cd400c5d9493c8b7ec92e72c5b;hp=b544a459b58b6b72d1623d1b7f1e925671ce4016;hpb=7f80ab30017689efe0aaaab18abc7ceda689d859;p=tpg%2Facess2.git diff --git a/AcessNative/ld-acess_src/common.h b/AcessNative/ld-acess_src/common.h index b544a459..0bdc40f2 100644 --- a/AcessNative/ld-acess_src/common.h +++ b/AcessNative/ld-acess_src/common.h @@ -6,38 +6,57 @@ #include #include #include +#include -extern int Binary_GetSymbol(const char *SymbolName, uintptr_t *Value); +extern int Binary_GetSymbol(const char *SymbolName, uintptr_t *Value, size_t *Size, void *IgnoreBase); extern void *Binary_LoadLibrary(const char *Path); extern void *Binary_Load(const char *Path, uintptr_t *EntryPoint); extern void Binary_SetReadyToUse(void *Base); +// HACKS - So this can share the usermode elf.c +static inline int GetSymbol(const char *sym, void **val, size_t *sz, void *IgnoreBase) +{ + uintptr_t rv; + if( !Binary_GetSymbol(sym, &rv, sz, IgnoreBase) ) + return 0; + *val = (void*)rv; + return 1; +} +static inline void *LoadLibrary(const char *Name, const char *SearchPath, char **envp) +{ + return Binary_LoadLibrary(Name); +} +static inline void AddLoaded(const char *Path, void *Base) +{ + Binary_SetReadyToUse(Base); +} + +static inline int _SysSetMemFlags(uintptr_t Addr, unsigned int flags, unsigned int mask) +{ + return 0; +} + + extern int AllocateMemory(uintptr_t VirtAddr, size_t ByteCount); extern uintptr_t FindFreeRange(size_t ByteCount, int MaxBits); extern void Warning(const char *Format, ...); extern void Notice(const char *Format, ...); +extern void Debug(const char *Format, ...); +#define SysDebug Debug #define ACESS_SEEK_CUR 0 #define ACESS_SEEK_SET 1 #define ACESS_SEEK_END -1 -extern int acess_open(const char *Path, int Flags); -extern void acess_close(int FD); -extern size_t acess_read(int FD, size_t Bytes, void *Dest); -extern int acess_seek(int FD, int64_t Offset, int Dir); - -typedef struct { - char *Name; - void *Value; -} tSym; +#include "exports.h" typedef struct sBinFmt { struct sBinFmt *Next; char *Name; void *(*Load)(int fd); uintptr_t (*Relocate)(void *base); - int (*GetSymbol)(void*,char*,uintptr_t*); + int (*GetSymbol)(void*,char*,uintptr_t*,size_t*); } tBinFmt; #endif