diff --git a/src/bin/ls/main.c b/src/bin/ls/main.c index 311e901..0858520 100755 --- a/src/bin/ls/main.c +++ b/src/bin/ls/main.c @@ -45,14 +45,11 @@ printf("Error Reading Directory\n"); exit(1); } - printf("data: [%i]\n",dirEntry); fread(dirEntry,4096,1,fd); - printf("data: [%i]\n",dirEntry); - printf("%s\n",dirEntry[0].fileName[1]); - /* for (i=0;i<(4096/sizeof(struct directoryEntry));i++) { - printf("FileName: [%s]\n",dirEntry[i].fileName); + if (dirEntry[i].fileName[0] > 0) { + printf("%i %i %i %i %s\n",dirEntry[i].permissions,dirEntry[i].uid,dirEntry[i].gid,dirEntry[i].size,dirEntry[i].fileName); + } } - */ exit(1); } diff --git a/src/lib/libc/stdio/fopen.c b/src/lib/libc/stdio/fopen.c index 73070b6..8bd3e05 100755 --- a/src/lib/libc/stdio/fopen.c +++ b/src/lib/libc/stdio/fopen.c @@ -27,11 +27,11 @@ FILE *fopen(const char *file,const char *mode) { FILE *fp = malloc(sizeof(FILE)); fp->fd = -1; - printf("fp->fd: [%i]\n",fp->fd); + //printf("fp->fd: [%i]\n",fp->fd); asm( "int %0\n" : : "i" (0x80),"a" (8),"b" (file),"c" (mode),"d" (fp) ); - printf("fp->fd: [%i]\n",fp->fd); - return(fp); + printf("",fp->fd); + return((FILE *)fp); } \ No newline at end of file diff --git a/src/sys/compile/Makefile b/src/sys/compile/Makefile index 79261e9..21ec586 100755 --- a/src/sys/compile/Makefile +++ b/src/sys/compile/Makefile @@ -21,6 +21,7 @@ # Link the kernel statically with fixed text+data address @1M $(KERNEL) : $(OBJS) $(LD) -o $@ $(OBJS) ../init/*.o ../kernel/*.o ../drivers/*.o ../vmm/*.o ../ubixfs/*.o -Ttext 0x10000 + /usr/bin/strip $@ # Compile the source files .cc.o: diff --git a/src/sys/include/ubixfs/file.h b/src/sys/include/ubixfs/file.h index d1cbf9c..fe90b2f 100755 --- a/src/sys/include/ubixfs/file.h +++ b/src/sys/include/ubixfs/file.h @@ -32,8 +32,8 @@ #define fdRead 3 #define fdEof 4 -typedef struct kernelFileDescriptorStruct { - struct kernelFileDescriptorStruct *next; +typedef struct fileDescriptorStruct { + struct fileDescriptorStruct *next; uShort status; uShort mode; uShort offset; @@ -45,7 +45,7 @@ } fileDescriptor; typedef struct userFileDescriptorStruct { - uLong fd; + struct fileDescriptorStruct *fd; } userFileDescriptor; extern fileDescriptor *fdTable; diff --git a/src/sys/ubixfs/file.c b/src/sys/ubixfs/file.c index 9a49d30..4ccf3e1 100755 --- a/src/sys/ubixfs/file.c +++ b/src/sys/ubixfs/file.c @@ -158,7 +158,7 @@ ************************************************************************/ int fgetc(fileDescriptor *fd) { - int ch = 0; + int ch = 0x0; fileDescriptor *tmpFd = 0x0; //Search For File Descriptor for (tmpFd=fdTable;tmpFd;tmpFd=tmpFd->next) { @@ -166,7 +166,7 @@ if (tmpFd == fd) { ch = getFileByte(tmpFd,tmpFd->offset); tmpFd->offset++; - //kprintf("file byte [%c]",ch); + //kprintf("[%i]",ch); return(ch); } } @@ -187,9 +187,8 @@ fileDescriptor *tmpFd = 0x0; asm("":"=b" (file),"=c" (flags),"=d" (userFd)); asm("sti"); - userFd->fd = (uLong)fopen(file,flags); - tmpFd = userFd->fd; - kprintf("[%i][%i][%i][%s]\n",tmpFd,userFd->fd,tmpFd->size,tmpFd->fileName); + tmpFd = fopen(file,flags); + userFd->fd = tmpFd; //Return return; } @@ -201,6 +200,7 @@ userFileDescriptor *userFd = 0x0; fileDescriptor *tmpFd = 0x0; asm("":"=b" (data),"=c" (size),"=d" (userFd)); + asm("sti"); tmpFd = userFd->fd; for (i=0;istatus == fdRead)) { fd->status = fdOpen; diff --git a/src/tools/format.c b/src/tools/format.c index 247ffe0..1018dc1 100755 --- a/src/tools/format.c +++ b/src/tools/format.c @@ -50,6 +50,7 @@ dirEntry[0].gid = 0x0; dirEntry[0].uid = 0x0; dirEntry[0].startCluster = 0x0; + dirEntry[0].size = 4096; sprintf(dirEntry[0].fileName,"/"); dirEntry[1].attributes = 0x8000; dirEntry[1].permissions = 0xEAA; @@ -59,7 +60,8 @@ sprintf(dirEntry[1].fileName,".."); BAT[0].nextBlock = 0x0; BAT[0].attributes = 1; - BAT[0].realSector = (startSector + (batSize/512) + 1); + BAT[0].realSector = (startSector + (batSize/512)); + printf("Real Sector: [%i]\n",BAT[0].realSector); for (i=1;i<(size/4096);i++) { BAT[i].nextBlock = 0x0; BAT[i].attributes = 0x0;