|
|
1.1 root 1: /* if_hy.h 6.1 83/07/29 */
2:
3: /*
4: * Network Systems Corporation Hyperchannel
5: * routing database
6: */
7:
8: #define HYRSIZE 37 /* max number of adapters in routing tables */
9:
10: struct hyroute {
11: struct timeval hyr_lasttime; /* last update time */
12: struct hy_hash {
13: u_short hyr_flags; /* status flags - see below */
14: u_short hyr_key; /* desired address */
15: union {
16: /*
17: * direct entry (can get there directly)
18: */
19: struct {
20: u_short hyru_dst; /* adapter number & port */
21: u_short hyru_ctl; /* trunks to try */
22: u_short hyru_access; /* access code (mostly unused) */
23: } hyr_d;
24: #define hyr_dst hyr_u.hyr_d.hyru_dst
25: #define hyr_ctl hyr_u.hyr_d.hyru_ctl
26: #define hyr_access hyr_u.hyr_d.hyru_access
27: /*
28: * indirect entry (one or more hops required)
29: */
30: struct {
31: u_char hyru_pgate; /* 1st gateway slot */
32: u_char hyru_egate; /* # gateways */
33: u_char hyru_nextgate; /* gateway to use next */
34: } hyr_i;
35: #define hyr_pgate hyr_u.hyr_i.hyru_pgate
36: #define hyr_egate hyr_u.hyr_i.hyru_egate
37: #define hyr_nextgate hyr_u.hyr_i.hyru_nextgate
38: } hyr_u;
39: } hyr_hash[HYRSIZE];
40: u_char hyr_gateway[256];
41: };
42:
43: #ifdef KERNEL
44: struct hyroute hy_route[NHY];
45: #endif
46:
47: #define HYR_INUSE 0x01 /* entry in use */
48: #define HYR_DIR 0x02 /* direct entry */
49: #define HYR_GATE 0x04 /* gateway entry */
50:
51: #define HYRHASH(x) (((x) ^ ((x) >> 16)) % HYRSIZE)
52:
53: #define HYSETROUTE _IOW(H, 0x80, sizeof (struct hyroute))
54: #define HYGETROUTE _IOR(H, 0x81, sizeof (struct hyroute))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.