diff --git a/src/sys/init/main.c b/src/sys/init/main.c index 2602ec3..201bdc8 100755 --- a/src/sys/init/main.c +++ b/src/sys/init/main.c @@ -77,7 +77,6 @@ } int main() { - int ch,fd = -1; initMmap(); //Initialize Memory Map clearScreen(); //Clear The Screen outputVersion(); //Display Version Info @@ -88,12 +87,7 @@ initScheduler(); //Initialize Scheduler initFloppy(); //Initialize Floppy Controller initUbixFS(); //Initialize File System - fd = fopen("shell",1); - while (!feof(fd)) { - ch = fgetc(fd); - kprintf("[%i]",ch); - } - execThread(idleThread,0xAFFF,"Idle Thread"); + execThread(idleThread,0xAFFF,"Idle Thread"); execThread(testThread,0xBfff,"Test Thread"); //execFile("init"); Needs To Be ReWriten enableIrq(0); diff --git a/src/sys/kernel/exec.c b/src/sys/kernel/exec.c index 58b0595..7b999c7 100755 --- a/src/sys/kernel/exec.c +++ b/src/sys/kernel/exec.c @@ -62,7 +62,7 @@ ); fd = fopen(file,1); for (i=0;i<=(fdTable[fd].size+4095);i+=4096) { - remapPage(allocPage(),(0x7C0000 + (0x1000 * i))); +// remapPage(allocPage(),(0x7C0000 + (0x1000 * i))); } for (i=0;feof(fd) == 0;i++) { binarySpace[i] = fgetc(fd); @@ -71,7 +71,7 @@ for (i=0;iePhnum;i++) { newLoc = (char *)programHeader[i].phVaddr; for (x=0;x<=((programHeader[i].phMemsz & 0xFFFFF000)+4095);x+=4096) { - remapPage(allocPage(),((programHeader[i].phVaddr & 0xFFFFF000) + (0x1000 * x))); +// remapPage(allocPage(),((programHeader[i].phVaddr & 0xFFFFF000) + (0x1000 * x))); } for (x=0;xeEntry; newLoc = (char *)0x5DC000; - remapPage(allocPage(),0x5DC000); +// remapPage(allocPage(),0x5DC000); for (i=0;i<4096;i++) { newLoc[i] = 0x0; } @@ -119,6 +119,7 @@ kTask_t * newProcess; newProcess = findTask(); pid = newProcess->id; + kprintf("Task ID: [%i]\n",pid); taskList[pid].tss.back_link = 0x0; taskList[pid].tss.esp0 = stack; taskList[pid].tss.ss0 = 0x10; diff --git a/src/sys/kernel/fork.c b/src/sys/kernel/fork.c index 251ab75..179ad86 100755 --- a/src/sys/kernel/fork.c +++ b/src/sys/kernel/fork.c @@ -44,12 +44,12 @@ taskList[cPid].id = cPid; taskList[cPid].status = READY; pageDirsrc = (uLong *)_current->tss.cr3; - pageDirdst = (uLong *)allocPage(); +// pageDirdst = (uLong *)allocPage(); taskList[cPid].tss.cr3 = (long)pageDirdst; for (i=0;i<1024;i++) { if (pageDirsrc[i] > 0) { pageTablesrc = (uLong *)(pageDirsrc[i] & 0xFFFFF000); - pageDirdst[i] = allocPage() | pageDefault; +// pageDirdst[i] = allocPage() | pageDefault; pageTabledst = (uLong *)(pageDirdst[i] & 0xFFFFF000); for (x=0;x<1024;x++) { if (pageTablesrc[x] > 0) { @@ -73,7 +73,7 @@ i = (_current->tss.esp & 0xFFFFF000)/(1024*4096); pageTabledst = (uLong *) (pageDirdst[i] & 0xFFFFF000); i = ((_current->tss.esp & 0xFFFFF000) - (((_current->tss.esp & 0xFFFFF000)/(1024*4096))*(1024*4096)))/4096; - pageTabledst[i] = allocPage() | pageDefault; + //pageTabledst[i] = allocPage() | pageDefault; stackDst = (uLong *) (pageTabledst[i] & 0xFFFFF000); stackSrc = (uLong *) (_current->tss.esp & 0xFFFFF000); for (i=0;i<1024;i++) { diff --git a/src/sys/kernel/schedule.c b/src/sys/kernel/schedule.c index 8ced83f..e4d44e5 100755 --- a/src/sys/kernel/schedule.c +++ b/src/sys/kernel/schedule.c @@ -60,9 +60,9 @@ void initScheduler(void) { int i; for (i=0;i<(sizeof(kTask_t)*1024)/0x1000;i++) { - remapPage(getFreePage(-1),(0xE0800000+(i*0x1000))); + remapPage((uLong)findFreePage(-1),(0xE0800000+(i*0x1000))); } - remapPage(getFreePage(-1),(0xE0800000-0x1000)); + remapPage((uLong)findFreePage(-1),(0xE0800000-0x1000)); taskList[-1].id = -1; taskList[-1].status = EMPTY; for (i=0;i #include -mMap *memoryMap = (mMap *) 0x100000; +mMap *memoryMap = (mMap *) 0x101000; int numPages = 0; int countMemory() { @@ -105,12 +105,6 @@ for (i=(0x300000/4096);i