Annotation of coherent/d/PS2_KERNEL/coh.286/fifo_read.c, revision 1.1.1.1

1.1       root        1: /* fifo_read.c -- Read from an internally typed fifo.  */
                      2: #include <sys/typed.h>
                      3: 
                      4: /* Read a typed space from a fifo.
                      5:  * Return a pointer to the next typed space in the fifo ffp.  Returns
                      6:  * NULL on end of fifo.
                      7:  *
                      8:  * This read assumes that ffp->f_space has type T_FIFO_SIC.
                      9:  */
                     10: typed_space *
                     11: fifo_read(ffp)
                     12:        register FIFO *ffp;
                     13: {
                     14:        typed_space *retval;
                     15: 
                     16:        /* Read MUST be set.  */
                     17:        if (F_READ != F_READ & ffp->f_flags ) {
                     18:                return(T_NULL);  /* This ffp is not open for reading.  */
                     19:        }
                     20: 
                     21:        /* From here to the end of fifo_read is really fifo_read_sic().  */
                     22: 
                     23: 
                     24:        /* Space of size 0 marks EOFIFO.  */
                     25:        if ((long)0 == ffp->f_offset->ts_size) {
                     26:                retval = T_NULL;
                     27:        } else {
                     28:                /* Return the next space.  */
                     29:                retval = ffp->f_offset;
                     30:                /* Advance to the next space.  */
                     31:                (char *) ffp->f_offset += ffp->f_offset->ts_size;
                     32:        }
                     33: 
                     34:        return(retval);
                     35: } /* fifo_read() */

unix.superglobalmegacorp.com

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