|
|
1.1 root 1: #ifdef XT
2: #ifndef MAXPCHAN
3: #include "sys/xtproto.h"
4: #endif
5: #else XT
6: /*
7: ** Mpx -- Blit packet protocol definition
8: */
9:
10: typedef unsigned char Pbyte; /* The unit of communication */
11:
12: /*
13: ** Packet header
14: ** (if only bit fields in C were m/c independant, sigh...)
15: */
16:
17: #define P_PTYPE 0x80 /* always set */
18: #define P_CNTL 0x40 /* TRUE if control packet */
19: #define MAXPCHAN 16 /* Maximum channel number */
20: #define CBITS 4 /* Bits for channel number */
21: #define SEQMOD 4 /* Sequence number modulus */
22: #define SBITS 2 /* Bits for sequence number */
23:
24: /* was 64 */
25: #define MAXPKTDSIZE (124 * sizeof(Pbyte)) /* Maximum data part size */
26: #define EDSIZE (2 * sizeof(Pbyte)) /* Error detection part size */
27:
28: #define P_channel(b) (((b)>>SBITS) & (MAXPCHAN-1))
29: #define P_seq(b) ((b) & (SEQMOD-1))
30:
31: /*
32: ** Packet definition for maximum sized packet for transmission
33: */
34:
35: struct Packet
36: {
37: Pbyte header, dsize; /* Header part */
38: Pbyte data[MAXPKTDSIZE]; /* Data part */
39: Pbyte edb[EDSIZE]; /* Error detection part */
40: };
41:
42: typedef struct Packet * Pkt_p;
43:
44: /*
45: ** Control codes
46: */
47:
48: #define ACK (Pbyte)(006) /* Last packet with same seq. ok and in seq. */
49: #define NAK (Pbyte)(025) /* Last packet with same seq. rec'd out of seq. */
50: #define PCDATA (Pbyte)(002) /* Data only control packet */
51: #endif XT
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.