* Acess v0.1\r
* ELF Executable Loader Code\r
*/\r
-#define DEBUG 0\r
+#define DEBUG 1\r
#include <acess.h>\r
#include <binary.h>\r
#include "elf.h"\r
int iPageCount;\r
int count;\r
\r
- ENTER("ifp", fp);\r
+ ENTER("xfp", fp);\r
\r
// Read ELF Header\r
VFS_Read(fp, sizeof(hdr), &hdr);\r
LOG("phtab[%i] = {VAddr:0x%x,Offset:0x%x,FileSize:0x%x}",\r
i, phtab[i].VAddr, phtab[i].Offset, phtab[i].FileSize);\r
\r
- if( (phtab[i].FileSize & 0xFFF) < 0x1000 - (phtab[i].VAddr & 0xFFF) )\r
- lastSize = phtab[i].FileSize;\r
- else\r
+ //if( (phtab[i].FileSize & 0xFFF) < 0x1000 - (phtab[i].VAddr & 0xFFF) )\r
+ // lastSize = phtab[i].FileSize;\r
+ //else\r
lastSize = (phtab[i].FileSize & 0xFFF) + (phtab[i].VAddr & 0xFFF);\r
- lastSize &= 0xFFF;\r
+ //lastSize &= 0xFFF;\r
+ \r
+ //LOG("lastSize = 0x%x", lastSize);\r
\r
- LOG("lastSize = 0x%x", lastSize);\r
+ lastSize = phtab[i].FileSize;\r
\r
// Get Pages\r
count = ( (phtab[i].VAddr&0xFFF) + phtab[i].FileSize + 0xFFF) >> 12;\r
ret->Pages[j+k].Size = 4096;\r
LOG("ret->Pages[%i].Size = 0x%x", j+k, ret->Pages[j+k].Size);\r
ret->Pages[j+k].Flags = 0;\r
+ lastSize -= ret->Pages[j+k].Size;\r
}\r
count = (phtab[i].MemSize + 0xFFF) >> 12;\r
for(;k<count;k++)\r