X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fbin%2Felf.c;h=f4c73e2940a38c9421a6b426a4a3752e7979dcb2;hb=34e8f9c025a5fe5ebc90ada5690685821827a5e7;hp=76724bc22425eb2a4fdb89018148146034de3f9c;hpb=b7f014bb53b817944bb14640ebf8cfc755d4ce56;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/bin/elf.c b/KernelLand/Kernel/bin/elf.c index 76724bc2..f4c73e29 100644 --- a/KernelLand/Kernel/bin/elf.c +++ b/KernelLand/Kernel/bin/elf.c @@ -1,21 +1,37 @@ /* - * Acess v0.1 - * ELF Executable Loader Code + * Acess2 Kernel + * - By John Hodge (thePowersGang) + * + * elf.c + * - ELF Executable Loader Code */ #define DEBUG 0 #include #include +// ---- Import linking code from userland #define _COMMON_H #define SysDebug(v...) LOG(v) #if BITS <= 32 # define DISABLE_ELF64 #endif -void *GetSymbol(const char *Name, size_t *Size); -void *GetSymbol(const char *Name, size_t *Size) { Uint val; Binary_GetSymbol(Name, &val); if(Size)*Size=0; return (void*)val; }; +static int GetSymbol(const char *Name, void **Value, size_t *Size); +static int GetSymbol(const char *Name, void **Value, size_t *Size) { + Uint val; + if(!Binary_GetSymbol(Name, &val)) { + Log_Notice("ELF", "Lookup of '%s' failed", Name); + return 0; + } + if(Size) + *Size=0; + *Value = (void*)val; + return 1; +} #define AddLoaded(a,b) do{}while(0) #define LoadLibrary(a,b,c) (Log_Debug("ELF", "Module requested lib '%s'",a),0) +#define _SysSetMemFlags(ad,f,m) do{}while(0) #include "../../../Usermode/Libraries/ld-acess.so_src/elf.c" +// ---- / ---- #define DEBUG_WARN 1