Annotation of xinu/sys/dlcread.c, revision 1.1.1.1

1.1       root        1: /* dlcread.c - dlcread */
                      2: 
                      3: #include <conf.h>
                      4: #include <kernel.h>
                      5: #include <slu11.h>
                      6: #include <proc.h>
                      7: #include <sleep.h>
                      8: #include <dlc.h>
                      9: 
                     10: /*------------------------------------------------------------------------
                     11:  *  dlcread  --  read a block (frame) to user's buffer, unstuffing chars
                     12:  *------------------------------------------------------------------------
                     13:  */
                     14: dlcread(devptr, buf, maxchars)
                     15: struct devsw   *devptr;
                     16: char   *buf;
                     17: int    maxchars;
                     18: {
                     19:        char    ps;
                     20:        int     nread;
                     21:        struct  dlblk   *dptr;
                     22: 
                     23:        disable(ps);
                     24:        if (maxchars<=0 || (dptr=devptr->dvioblk)->distate != DLIINIT) {
                     25:                restore(ps);
                     26:                return(SYSERR);
                     27:        }
                     28:        dptr->distate = DLIREADY;
                     29:        dptr->dinext = dptr->distart = buf;
                     30:        dptr->dimax = maxchars;
                     31:        dptr->dicount = 0;
                     32:        dptr->diesc = FALSE;
                     33:        dptr->diproc = currpid;
                     34:        suspend(currpid);
                     35:        nread = dptr->dicount;
                     36:        dptr->distate = DLIINIT;
                     37:        restore(ps);
                     38:        return(nread);
                     39: }

unix.superglobalmegacorp.com

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