X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Fld-acess_src%2Felf_load.c;h=19a8c13fc945255552d3afdc5e93308fd666dbb7;hb=7b64f5e7f00e445a5637e9e3289a1332a14d28e5;hp=909c24a23420fcb9314600adc35cc3af4083979a;hpb=d0b4559f2936f6d9f06be0f7c3c51527a480ec0d;p=tpg%2Facess2.git diff --git a/AcessNative/ld-acess_src/elf_load.c b/AcessNative/ld-acess_src/elf_load.c index 909c24a2..19a8c13f 100644 --- a/AcessNative/ld-acess_src/elf_load.c +++ b/AcessNative/ld-acess_src/elf_load.c @@ -8,6 +8,7 @@ #include #include #include +#include // PRIx64 #include "common.h" #include "elf32.h" #include "elf64.h" @@ -41,7 +42,7 @@ void *Elf_Load(int FD) Elf64_Ehdr hdr; // Read ELF Header - acess_read(FD, &hdr, sizeof(hdr)); + acess__SysRead(FD, &hdr, sizeof(hdr)); // Check the file type if(hdr.e_ident[0] != 0x7F || hdr.e_ident[1] != 'E' || hdr.e_ident[2] != 'L' || hdr.e_ident[3] != 'F') { @@ -88,8 +89,8 @@ void *Elf32Load(int FD, Elf32_Ehdr *hdr) return NULL; } LOG("hdr.phoff = 0x%08x\n", hdr->phoff); - acess_seek(FD, hdr->phoff, ACESS_SEEK_SET); - acess_read(FD, phtab, sizeof(Elf32_Phdr) * hdr->phentcount); + acess__SysSeek(FD, hdr->phoff, ACESS_SEEK_SET); + acess__SysRead(FD, phtab, sizeof(Elf32_Phdr) * hdr->phentcount); // Count Pages iPageCount = 0; @@ -145,8 +146,8 @@ void *Elf32Load(int FD, Elf32_Ehdr *hdr) char *tmp; //if(ret->Interpreter) continue; tmp = malloc(phtab[i].FileSize); - acess_seek(FD, phtab[i].Offset, ACESS_SEEK_SET); - acess_read(FD, tmp, phtab[i].FileSize); + acess__SysSeek(FD, phtab[i].Offset, ACESS_SEEK_SET); + acess__SysRead(FD, tmp, phtab[i].FileSize); //ret->Interpreter = Binary_RegInterp(tmp); LOG("Interpreter '%s'\n", tmp); free(tmp); @@ -167,8 +168,8 @@ void *Elf32Load(int FD, Elf32_Ehdr *hdr) return NULL; } - acess_seek(FD, phtab[i].Offset, ACESS_SEEK_SET); - acess_read(FD, PTRMK(void, addr), phtab[i].FileSize); + acess__SysSeek(FD, phtab[i].Offset, ACESS_SEEK_SET); + acess__SysRead(FD, PTRMK(void, addr), phtab[i].FileSize); memset( PTRMK(char, addr) + phtab[i].FileSize, 0, phtab[i].MemSize - phtab[i].FileSize ); } @@ -210,8 +211,8 @@ void *Elf64Load(int FD, Elf64_Ehdr *hdr) return NULL; } LOG("hdr.phoff = 0x%08llx\n", (long long)hdr->e_phoff); - acess_seek(FD, hdr->e_phoff, ACESS_SEEK_SET); - acess_read(FD, phtab, sizeof(Elf64_Phdr) * hdr->e_phnum); + acess__SysSeek(FD, hdr->e_phoff, ACESS_SEEK_SET); + acess__SysRead(FD, phtab, sizeof(Elf64_Phdr) * hdr->e_phnum); // Count Pages iPageCount = 0; @@ -269,8 +270,8 @@ void *Elf64Load(int FD, Elf64_Ehdr *hdr) //if(ret->Interpreter) continue; tmp = malloc(phtab[i].p_filesz+1); tmp[ phtab[i].p_filesz ] = 0; - acess_seek(FD, phtab[i].p_offset, ACESS_SEEK_SET); - acess_read(FD, tmp, phtab[i].p_filesz); + acess__SysSeek(FD, phtab[i].p_offset, ACESS_SEEK_SET); + acess__SysRead(FD, tmp, phtab[i].p_filesz); //ret->Interpreter = Binary_RegInterp(tmp); LOG("Interpreter '%s'\n", tmp); free(tmp); @@ -288,14 +289,14 @@ void *Elf64Load(int FD, Elf64_Ehdr *hdr) addr = phtab[i].p_vaddr + baseDiff; if( AllocateMemory( addr, phtab[i].p_memsz ) ) { - fprintf(stderr, "Elf_Load: Unable to map memory at %llx (0x%llx bytes)\n", - (long long)addr, (long long)phtab[i].p_memsz); + fprintf(stderr, "Elf_Load: Unable to map memory at %"PRIx64" (0x%"PRIx64" bytes)\n", + (uint64_t)addr, (uint64_t)phtab[i].p_memsz); free( phtab ); return NULL; } - acess_seek(FD, phtab[i].p_offset, ACESS_SEEK_SET); - acess_read(FD, PTRMK(void, addr), phtab[i].p_filesz); + acess__SysSeek(FD, phtab[i].p_offset, ACESS_SEEK_SET); + acess__SysRead(FD, PTRMK(void, addr), phtab[i].p_filesz); memset( PTRMK(char, addr) + phtab[i].p_filesz, 0, phtab[i].p_memsz - phtab[i].p_filesz ); }