Commit | Line | Data |
---|---|---|
92e67171 | 1 | /* if_hy.h 6.1 83/07/29 */ |
fe3ce306 SL |
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 { | |
38061563 | 11 | struct timeval hyr_lasttime; /* last update time */ |
fe3ce306 SL |
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 | ||
38061563 SL |
53 | #define HYSETROUTE _IOW(H, 0x80, sizeof (struct hyroute)) |
54 | #define HYGETROUTE _IOR(H, 0x81, sizeof (struct hyroute)) |