X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Fld-acess_src%2Fbinary.c;h=59be8295b63de629475a262683053247629ccb20;hb=3c3c26b58055f511af5b7f0c3ab22e83961c775f;hp=8d11e975128afe71a9da10ec1b094af30a7acac6;hpb=49fee999ebaa079cbd48a98edd2323f7b0bbb03c;p=tpg%2Facess2.git diff --git a/AcessNative/ld-acess_src/binary.c b/AcessNative/ld-acess_src/binary.c index 8d11e975..59be8295 100644 --- a/AcessNative/ld-acess_src/binary.c +++ b/AcessNative/ld-acess_src/binary.c @@ -1,7 +1,11 @@ /* - * AcessNative + * AcessNative Dynamic Linker + * - By John Hodge (thePowersGang) + * + * binary.c + * - Provides binary loading and type abstraction */ -#define DEBUG 1 +#define DEBUG 0 #include "common.h" #include #include @@ -61,9 +65,9 @@ char *Binary_LocateLibrary(const char *Name) strcat(tmp, "/"); strcat(tmp, Name); - fd = acess_open(tmp, 4); // OPENFLAG_EXEC + fd = acess__SysOpen(tmp, 4); // OPENFLAG_EXEC if(fd != -1) { - acess_close(fd); + acess__SysClose(fd); return strdup(tmp); } } @@ -80,9 +84,9 @@ char *Binary_LocateLibrary(const char *Name) printf("Binary_LocateLibrary: tmp = '%s'\n", tmp); #endif - fd = acess_open(tmp, 4); // OPENFLAG_EXEC + fd = acess__SysOpen(tmp, 4); // OPENFLAG_EXEC if(fd != -1) { - acess_close(fd); + acess__SysClose(fd); return strdup(tmp); } } @@ -110,7 +114,8 @@ void *Binary_LoadLibrary(const char *Name) } ret = Binary_Load(path, (uintptr_t*)&entry); - printf("LOADED '%s' to %p (Entry=%p)\n", path, ret, entry); + if( ret != (void*)-1 ) + Debug("LOADED '%s' to %p (Entry=%p)", path, ret, entry); free(path); #if DEBUG @@ -151,22 +156,22 @@ void *Binary_Load(const char *Filename, uintptr_t *EntryPoint) } } - fd = acess_open(Filename, 2|1); // Execute and Read + fd = acess__SysOpen(Filename, 2|1); // Execute and Read if( fd == -1 ) { // TODO: Handle libary directories perror("Opening binary"); return NULL; } - acess_read(fd, &dword, 4); - acess_seek(fd, 0, ACESS_SEEK_SET); + acess__SysRead(fd, &dword, 4); + acess__SysSeek(fd, 0, ACESS_SEEK_SET); if( memcmp(&dword, "\x7F""ELF", 4) == 0 ) { fmt = &gElf_FormatDef; } else { fprintf(stderr, "Unknown executable format (0x%08x)\n", dword); - acess_close(fd); + acess__SysClose(fd); return NULL; } @@ -174,7 +179,7 @@ void *Binary_Load(const char *Filename, uintptr_t *EntryPoint) printf("fmt->Load(0x%x)...\n", fd); #endif ret = fmt->Load(fd); - acess_close(fd); + acess__SysClose(fd); #if DEBUG printf("fmt->Load(0x%x): %p\n", fd, ret); #endif