diff --git a/src/bin/test/Makefile b/src/bin/test/Makefile index 0f55bd4..02e3eb9 100755 --- a/src/bin/test/Makefile +++ b/src/bin/test/Makefile @@ -20,7 +20,7 @@ # Link the kernel statically with fixed text+data address @1M $(BINARY) : $(OBJS) - $(LD) -o $@ ../../lib/libc/stdio/*.o ../../lib/libc/stdlib/*.o ../../lib/libc/sys/*.o $(OBJS) ../../lib/libc/string/*.o #-Ttext 0x08048000 #-Ttext 0x1200000 + $(LD) -o $@ ../../lib/libc/stdio/*.o ../../lib/libc/stdlib/*.o ../../lib/libc/sys/*.o $(OBJS) ../../lib/libc/string/*.o # Compile the source files .cc.o: diff --git a/src/lib/libc/Makefile b/src/lib/libc/Makefile index 8f2d4e3..29386ca 100755 --- a/src/lib/libc/Makefile +++ b/src/lib/libc/Makefile @@ -24,7 +24,7 @@ (cd stdlib;make) (cd sys;make) (cd string;make) - $(LD) -o $(OUTPUT) $(OBJS) ./stdio/*.o ./sys/*.o ./string/*.o + $(LD) -o $(OUTPUT) $(OBJS) ./stdio/*.o ./sys/*.o ./string/*.o ./stdlib/*.o # Compile the source files .cc.o: diff --git a/src/lib/libc/stdio/Makefile b/src/lib/libc/stdio/Makefile index 5549f40..e3c5b87 100755 --- a/src/lib/libc/stdio/Makefile +++ b/src/lib/libc/stdio/Makefile @@ -1,7 +1,7 @@ # $Id$ # The System Makefile (C) 2002 The UbixOS Project -CFLAGS = -fno-builtin +CFLAGS = #-fno-builtin #Compiler GCC = gcc diff --git a/src/lib/libc/stdio/printf.c b/src/lib/libc/stdio/printf.c index d375f4f..2bb6dbc 100755 --- a/src/lib/libc/stdio/printf.c +++ b/src/lib/libc/stdio/printf.c @@ -28,7 +28,7 @@ int retVal; vaList ap; vaStart(ap, fmt); - retVal = vfprintf(stdout, fmt, ap); + retVal = vfprintf(stdin, fmt, ap); vaEnd(ap); return(retVal); } \ No newline at end of file diff --git a/src/sys/kernel/exec.c b/src/sys/kernel/exec.c index a998c3e..e238058 100755 --- a/src/sys/kernel/exec.c +++ b/src/sys/kernel/exec.c @@ -59,25 +59,27 @@ "movl %0,%%eax \n" "movl %%eax,%%cr3 \n" : : "d" ((uLong *)(pdn)) - ); + ); fd = fopen(file,1); + for (i=0;i<=(fdTable[fd].size+4095);i+=4096) { + remapPage(allocPage(),(0x7C0000 + (0x1000 * i))); + } for (i=0;feof(fd) == 0;i++) { 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;x<=((programHeader[i].phMemsz & 0xFFFFF000)+4095);x+=4096) { + remapPage(allocPage(),((programHeader[i].phVaddr & 0xFFFFF000) + (0x1000 * x))); + } for (x=0;xeEntry; newLoc = (char *)0x5DC000; + remapPage(allocPage(),0x5DC000); for (i=0;i<4096;i++) { newLoc[i] = 0x0; } diff --git a/src/sys/kernel/schedule.c b/src/sys/kernel/schedule.c index 7dc1322..c1ee46a 100755 --- a/src/sys/kernel/schedule.c +++ b/src/sys/kernel/schedule.c @@ -58,6 +58,8 @@ /* Initialize Scheduler */ void initScheduler(void) { int i; + remapPage(allocPage(),0xE0000000); + remapPage(allocPage(),(0xE0000000-1)); taskList[-1].id = -1; taskList[-1].status = AVAILABLE; for (i=0;iePhoff); newLoc = (char *)programHeader->phVaddr; - for (x=0;x<=i;x++) { +/* for (x=0;x<=i;x++) { newLoc[x] = binarySpace[x]; - } + }*/ + for (i=0;iePhnum;i++) { + newLoc = (char *)programHeader[i].phVaddr; + for (x=0;x