diff --git a/src/sys/kernel/exec.c b/src/sys/kernel/exec.c index dfafde2..a998c3e 100755 --- a/src/sys/kernel/exec.c +++ b/src/sys/kernel/exec.c @@ -65,9 +65,16 @@ binarySpace[i] = fgetc(fd); } programHeader = (elfProgramheader *)(0x7C0000 + binaryHeader->ePhoff); + /* newLoc = (char *)programHeader->phVaddr; for (x=0;xePhnum;i++) { + newLoc = (char *)programHeader[i].phVaddr; + for (x=0;xeEntry; newLoc = (char *)0x5DC000; diff --git a/src/sys/kernel/fork.c b/src/sys/kernel/fork.c index 0f6d973..c201002 100755 --- a/src/sys/kernel/fork.c +++ b/src/sys/kernel/fork.c @@ -53,8 +53,9 @@ pageTabledst = (uLong *)(pageDirdst[i] & 0xFFFFF000); for (x=0;x<1024;x++) { if (pageTablesrc[x] > 0) { - if ((i < 768) && (i>1)) { + if ((i < 768) && (i>=1)) { pageTabledst[x] = (pageTablesrc[x] & 0xFFFFF000) | (pagePresent|pageUser); + //pageTablesrc[x] = (pageTablesrc[x] & 0xFFFFF000) | (pagePresent|pageUser); } else { pageTabledst[x] = pageTablesrc[x]; diff --git a/src/sys/kernel/syscall.c b/src/sys/kernel/syscall.c index 9f4a6a2..43140b6 100755 --- a/src/sys/kernel/syscall.c +++ b/src/sys/kernel/syscall.c @@ -77,7 +77,6 @@ freeProcesspages(_current->id); _current->status = AVAILABLE; schedule(); - kprintf("Status: [%i]\n",status); } void sysExec() {