Annotation of xinu/sys/LSI/dudir.c, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.