Annotation of xinu/h/frame.h, revision 1.1

1.1     ! root        1: /* frame.h - getfto, getfrom, getflen, setfto, setfa, setfrom */
        !             2: 
        !             3: #define        FRACK           '\030'  /* frame ACK/NACK/SACK codes -- frame   */
        !             4: #define        FRNACK          '\060'  /*   sequence number appears in low-    */
        !             5: #define        FRSACK          '\070'  /*   order 3 bits of each               */
        !             6: #define        FRCODE          070     /* mask for "code" part of ACK/NACK     */
        !             7: #define        FRSEQ           07      /* mask for sequence part of ACK/NACK   */
        !             8: #define        FRBCAST         0       /* broadcast address                    */
        !             9: #define        FRTIME          4       /* number of seconds to timeout a frame */
        !            10: #define        FRFAIL          2       /* number of failures for sack          */
        !            11: #define        FRMINLEN        3       /* minimum legal frame length           */
        !            12: #define        FRMAXLEN        128     /* maximum bytes in a frame             */
        !            13: #define        FRMAXSEQ        3       /* maximum sequence number for frames   */
        !            14: #define        FRSTACK         500     /* words of stack needed by frame proc. */
        !            15: #define        FRLEN           sizeof(struct frame)
        !            16: #define NFRAMES                40      /* total number of frame buffers        */
        !            17: #define        FRIPRIO         30      /* input process priority               */
        !            18: #define        FROPRIO         25      /* output process priority              */
        !            19: #define        FRTPRIO         100     /* priority of timer process            */
        !            20: #define        FIPORTS         20      /* size of input port queue             */
        !            21: #define        FOPORTS         8       /* size of output port queue            */
        !            22: #define        FFPORTS         10      /* size of forwarding queue             */
        !            23: #define        FRTMSG          8191    /* timeout message for transmitter      */
        !            24: 
        !            25: #define        getfto(x)       ( ((x)&070) >>3)
        !            26: #define        getfrom(x)      ( (x) & 07 )
        !            27: #define        getflen(fptr)   ( fptr->frlen & 0377 )
        !            28: #define        setfto(fptr, x) fptr->fraddr = (fptr->fraddr & ~070) | ((x&07)<<3)
        !            29: #define        setfrom(fptr,x) fptr->fraddr = (fptr->fraddr & ~07)  | (x&07)
        !            30: #define        setfa(fptr,t,f) fptr->fraddr = ( (t&07)<<3 ) | ( f&07 )
        !            31: 
        !            32: /* frame structure */
        !            33: 
        !            34: struct frame   {
        !            35:        char    fraddr;         /* from/to addresses, each 3 bits       */
        !            36:        char    frseq;          /* frame sequence number                */
        !            37:        char    frlen;          /* length of frame including fraddr     */
        !            38:                                /* through all data.  Does not count    */
        !            39:                                /* characters added by dlc              */
        !            40:        char    frdata[FRMAXLEN];
        !            41: };
        !            42: 
        !            43: struct fglob   {               /* global frame-level data              */
        !            44:        int     fiport;         /* local machine input port             */
        !            45:        int     foport;         /* local machine output port            */
        !            46:        int     ffport;         /* forwarded frame port                 */
        !            47:        int     fosem;          /* output waiting semaphore             */
        !            48:        int     findev;         /* input device id for this network     */
        !            49:        int     foutdev;        /* output device id for this network    */
        !            50:        int     ftfuse;         /* timer fuse for send on this net      */
        !            51:        int     ftpid;          /* id of process to signal for timeout  */
        !            52:        int     fmachid;        /* id of this machine on this network   */
        !            53:        int     ftimproc;       /* timer process for this network       */
        !            54:        int     fiseq;          /* next input sequence to expect        */
        !            55:        int     foseq;          /* next output sequence number to write */
        !            56:        int     fifails;        /* number of input failures             */
        !            57:        int     fofails;        /* number of output failures            */
        !            58: };
        !            59: 
        !            60: extern struct  fglob   fdata[];
        !            61: extern int     frbpool;

unix.superglobalmegacorp.com

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