add copyright
[unix-history] / usr / src / sys / vax / if / if_hy.h
CommitLineData
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
10struct 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
44struct 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))