|
|
1.1 ! root 1: /* dudir.c - dudir */ ! 2: ! 3: #include <conf.h> ! 4: #include <kernel.h> ! 5: #include <io.h> ! 6: #include <disk.h> ! 7: #include <lfile.h> ! 8: #include <dir.h> ! 9: ! 10: /*------------------------------------------------------------------------ ! 11: * dudir -- print file system directory in readable form on CONSOLE ! 12: *------------------------------------------------------------------------ ! 13: */ ! 14: dudir(diskdev) ! 15: int diskdev; ! 16: { ! 17: DBADDR firstdb, lastdb; ! 18: struct dir *dirptr; ! 19: struct fdes *fdptr; ! 20: int i, l; ! 21: PStype ps; ! 22: ! 23: if (isbaddev(diskdev)) ! 24: return(SYSERR); ! 25: dirptr = dsdirec(diskdev); ! 26: if (dirptr->d_nfiles < 0 || dirptr->d_nfiles > NFDES ! 27: || dirptr->d_iblks < 0) { ! 28: kprintf("\n\nError: invalid directory format"); ! 29: kprintf(" (id=%d , #files=%d)\n",dirptr->d_id, ! 30: dirptr->d_nfiles); ! 31: return(SYSERR); ! 32: } ! 33: kprintf("\n***Directory %d files ", dirptr->d_nfiles); ! 34: kprintf("(free lists: i=%d/%d, d=%d, id=%d)\n", ! 35: dirptr->d_filst, dirptr->d_iblks, ! 36: dirptr->d_fblst, dirptr->d_id); ! 37: if (dirptr->d_nfiles == 0) ! 38: return(OK); ! 39: kprintf("\nFile Name Size First iblock\n"); ! 40: for (i=0 ; i<dirptr->d_nfiles ; i++) { ! 41: fdptr = &(dirptr->d_files[i]); ! 42: kprintf("%3d ",i+1); ! 43: if ((l=strlen(fdptr->fdname))<=0 || l>=FDNLEN) ! 44: kprintf("*ERROR*\n"); ! 45: else ! 46: kprintf("%-10s%7D%11d\n",fdptr->fdname, ! 47: fdptr->fdlen, fdptr->fdiba); ! 48: } ! 49: return(OK); ! 50: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.