Annotation of xinu/sys/LSI/lfread.c, revision 1.1.1.1

1.1       root        1: /* lfread.c - lfread */
                      2: 
                      3: #include <conf.h>
                      4: #include <kernel.h>
                      5: #include <disk.h>
                      6: #include <lfile.h>
                      7: #include <dir.h>
                      8: 
                      9: /*------------------------------------------------------------------------
                     10:  *  lfread  --  read from a previously opened disk file
                     11:  *------------------------------------------------------------------------
                     12:  */
                     13: lfread(devptr, buff, count)
                     14: struct devsw   *devptr;
                     15: char   *buff;
                     16: int    count;
                     17: {
                     18:        int     done;
                     19:        int     ichar;
                     20: 
                     21:        if (count < 0)
                     22:                return(SYSERR);
                     23:        for (done=0 ; done < count ; done++)
                     24:                if ( (ichar=lfgetc(devptr)) == SYSERR)
                     25:                        return(SYSERR);
                     26:                else if (ichar == EOF ) {       /* EOF before finished */
                     27:                        if (done == 0)
                     28:                                return(EOF);
                     29:                        else
                     30:                                return(done);
                     31:                } else
                     32:                        *buff++ = (char) ichar;
                     33:        return(done);
                     34: }

unix.superglobalmegacorp.com

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