|
|
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.