Annotation of 43BSD/ingres/source/ctlmod/pb_write.c, revision 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.