Annotation of xinu/h/frame.h, revision 1.1.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.