|
|
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;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.