Annotation of 43BSD/ingres/source/ctlmod/pb_write.c, revision 1.1.1.1

1.1       root        1: # include      "ctlmod.h"
                      2: # include      "pipes.h"
                      3: # include      <sccs.h>
                      4: 
                      5: SCCSID(@(#)pb_write.c  8.1     12/31/84)
                      6: 
                      7: /*
                      8: **  PB_WRITE -- Write pipe block
                      9: **
                     10: **     Writes the block specified by ppb to the pipe implied by
                     11: **     ppb->pb_proc.  Also handles broadcase messages.
                     12: **
                     13: **     Parameters:
                     14: **             ppb -- a ptr to the pipe block to write.
                     15: **
                     16: **     Returns:
                     17: **             none
                     18: **
                     19: **     Side Effects:
                     20: **             none
                     21: **
                     22: **     Trace Flags:
                     23: **             12.10 - 12.15
                     24: */
                     25: 
                     26: pb_write(ppb)
                     27: register pb_t  *ppb;
                     28: {
                     29:        register int    i;
                     30: 
                     31: # ifdef xCTR1
                     32:        if (tTf(12, 10))
                     33:        {
                     34:                lprintf("pb_write: ");
                     35:                pb_dump(ppb, TRUE);
                     36:        }
                     37: # endif
                     38: 
                     39:        /* handle broadcast messages */
                     40:        if (ppb->pb_proc == PB_WILD)
                     41:        {
                     42:                /* write on all pipes marked as a broadcast pipe */
                     43:                for (i = 0; i < CM_MAXPROC; i++)
                     44:                {
                     45:                        if ((Cm.cm_proc[i].pr_stat & PR_BCAST) != 0)
                     46:                                pb_wphys(ppb, Cm.cm_proc[i].pr_file);
                     47:                }
                     48:        }
                     49:        else
                     50:        {
                     51:                /* normal message */
                     52:                i = ppb->pb_proc;
                     53: # ifdef xCM_DEBUG
                     54:                if (i > CM_MAXPROC || i < 0)
                     55:                        syserr("pb_write: proc %d", i);
                     56: # endif
                     57: # ifdef xCTR1
                     58:                if (tTf(12, 11))
                     59:                        printf("pb_write: proc %d fd=%d\n", i, Cm.cm_proc[i].pr_file);
                     60: # endif
                     61:                pb_wphys(ppb, Cm.cm_proc[i].pr_file);
                     62:        }
                     63: 
                     64:        /* determine the new input */
                     65:        if ((ppb->pb_stat & (PB_INFO|PB_EOF)) == PB_EOF)
                     66:                Cm.cm_input = Cm.cm_proc[ppb->pb_proc].pr_ninput;
                     67: 
                     68:        /* reset some exciting pointers */
                     69:        ppb->pb_xptr = ppb->pb_data;
                     70:        ppb->pb_nleft = PB_DBSIZE;
                     71:        ppb->pb_nused = 0;
                     72: }

unix.superglobalmegacorp.com

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