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

1.1     ! root        1: /* lfsdfree.c - lfsdfree */
        !             2: 
        !             3: #include <conf.h>
        !             4: #include <kernel.h>
        !             5: #include <disk.h>
        !             6: #include <lfile.h>
        !             7: #include <dir.h>
        !             8: 
        !             9: /*------------------------------------------------------------------------
        !            10:  *  lfsdfree  --  free a data block given its address
        !            11:  *------------------------------------------------------------------------
        !            12:  */
        !            13: lfsdfree(diskdev, dba)
        !            14: int    diskdev;
        !            15: DBADDR dba;
        !            16: {
        !            17:        struct  dir     *dirptr;
        !            18:        int     dirsem;
        !            19:        struct  freeblk *buf;
        !            20: 
        !            21:        dirptr = dsdirec(diskdev);
        !            22:        dirsem = devtab[diskdev].dvioblk->dflsem;
        !            23:        buf = (struct freeblk *)getbuf(dskdbp);
        !            24:        wait(dirsem);
        !            25:        buf->fbnext = dirptr->d_fblst;
        !            26:        dirptr->d_fblst = dba;
        !            27:        write(diskdev, buf, dba);
        !            28:        write(diskdev, dskbcpy(dirptr), DIRBLK);
        !            29:        signal(dirsem);
        !            30:        return(OK);
        !            31: }

unix.superglobalmegacorp.com

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