diff --git a/src/bin/init/main.c b/src/bin/init/main.c index 67efee6..d02797e 100755 --- a/src/bin/init/main.c +++ b/src/bin/init/main.c @@ -44,12 +44,12 @@ exit(1); } printf("Initializing system.\n"); -/* if (!fork()) { + if (!fork()) { printf("I'm The Child\n"); while(1); - } */ + } printf("I'm The Parent!\n"); - exec("shell"); + exec("shell"); while (1); exit(1); } \ No newline at end of file diff --git a/src/sys/include/ubixfs/ubixfs.h b/src/sys/include/ubixfs/ubixfs.h index 0b02669..b273e35 100755 --- a/src/sys/include/ubixfs/ubixfs.h +++ b/src/sys/include/ubixfs/ubixfs.h @@ -52,7 +52,7 @@ }; void initUbixFS(); -int findFile(char *file,struct fileDescriptorTable *head); +int findFile(char *file,int i); int readFile(char *file); int getFileByte(int fd,int offset); diff --git a/src/sys/kernel/syscall.c b/src/sys/kernel/syscall.c index e792f07..7d25c4b 100755 --- a/src/sys/kernel/syscall.c +++ b/src/sys/kernel/syscall.c @@ -88,11 +88,10 @@ elfHeader *binaryHeader = (elfHeader *)0x7C0000; elfProgramheader *programHeader; asm("":"=b"(file)); - //asm("sti"); + asm("sti"); kprintf("test"); fd = (int)fopen(file,1); kprintf("FD: [%i]\n",fd); - while(1); for (i=0;feof(fd) == 0;i++) { binarySpace[i] = fgetc(fd); } @@ -100,12 +99,15 @@ newLoc = (char *)programHeader->phVaddr; for (x=0;xeEntry; + /* newLoc = (char *)0x5DC000; for (i=0;i<4096;i++) { newLoc[i] = 0x0; } - taskList[pid].tss.eip = (long)eStart; + */ + taskList[pid].tss.eip = (long)eStart; kprintf("!\n"); + //while (1); } diff --git a/src/sys/ubixfs/file.c b/src/sys/ubixfs/file.c index 8914958..1b686e3 100755 --- a/src/sys/ubixfs/file.c +++ b/src/sys/ubixfs/file.c @@ -48,8 +48,7 @@ for (i=0;istart = ft[i].start; - head->length = ft[i].length; - head->size = ft[i].size; - // if (_current->id == 1) { while(1); } + fdTable[i].start = ft[i].start; + fdTable[i].length = ft[i].length; + fdTable[i].size = ft[i].size; return((int)1); } }