|
|
1.1 ! root 1: /* if_vv.h 4.5 83/07/29 */ ! 2: /* ! 3: * Local network header for V2LNI Ring ! 4: * This is arbitrated by "V2LNI-PEOPLE@MIT-MC" ! 5: * (aka Joel N. Chiappa) ! 6: */ ! 7: ! 8: #define NEW_BROADCAST /* new plas for broadcast problem */ ! 9: ! 10: struct vv_header { ! 11: /* the first two fields are required by the hardware */ ! 12: u_char vh_dhost; /* destination address */ ! 13: u_char vh_shost; /* source address */ ! 14: /* the next three fields are the local network header */ ! 15: u_char vh_version; /* header version */ ! 16: u_char vh_type; /* packet type => protocol number */ ! 17: short vh_info; /* protocol-specific information */ ! 18: }; ! 19: ! 20: #define RING_VERSION 2 /* current version of v2lni header */ ! 21: ! 22: /* ! 23: * Packet types (protocol numbers) in v2lni header ! 24: */ ! 25: #define RING_IP 1 ! 26: #define RING_IPTrailer 2 ! 27: #define RING_IPNTrailer 16 ! 28: #define RING_WHOAMI 0xa5 /* insure some bit transitions */ ! 29: ! 30: #ifdef NEW_BROADCAST ! 31: #define VV_BROADCAST 0xff /* hardware-defined broadcast address */ ! 32: #else ! 33: #define VV_BROADCAST 0x00 /* hardware-defined broadcast address */ ! 34: #endif ! 35: ! 36: /* ! 37: * Proteon V2LNI Hardware definitions ! 38: * register bit definitions - new style ! 39: */ ! 40: #define VV_ENB 01 /* Enable Operation */ ! 41: #define VV_DEN 02 /* Enable DMA */ ! 42: #define VV_HEN 04 /* Host Relay Enable (Rcv) */ ! 43: #define VV_CPB 04 /* Clear Packet Buffer (Xmit) */ ! 44: #define VV_STE 010 /* Self Test Enable (Rcv) */ ! 45: #define VV_UT1 010 /* Unused (Xmit) */ ! 46: #define VV_LPB 020 /* Modem Disable (Rcv) */ ! 47: #define VV_INR 020 /* Initialize Ring (Xmit) */ ! 48: #define VV_RST 040 /* Reset */ ! 49: #define VV_IEN 0100 /* Interrupt Enable */ ! 50: #define VV_RDY 0200 /* Done */ ! 51: #define VV_DPR 0400 /* Data Present (Rcv) */ ! 52: #define VV_RFS 0400 /* Refused (Xmit) */ ! 53: #define VV_NXM 01000 /* Non Existent Memory */ ! 54: #define VV_OVR 02000 /* Overrun */ ! 55: #define VV_ODB 04000 /* Odd Byte (Achtung, mein Fuehrer) (Rcv) */ ! 56: #define VV_UT2 04000 /* Unused (Xmit) */ ! 57: #define VV_LDE 010000 /* Link Data Error (Rcv) */ ! 58: #define VV_OPT 010000 /* Output Timeout (Xmit) */ ! 59: #define VV_NOK 020000 /* Ring Not OK */ ! 60: #define VV_BDF 040000 /* Bad Format in Operation */ ! 61: #define VV_NIR 0100000 /* Not in Ring */ ! 62: ! 63: #define VVXERR (VV_NXM|VV_OVR|VV_OPT|VV_BDF) /* Xmit errs */ ! 64: #define VVRERR (VV_NXM|VV_OVR|VV_ODB|VV_BDF) /* Rcv errs */ ! 65: #define VVFE (VV_NXM|VV_OVR) /* Fatal errors */ ! 66: ! 67: #define VV_IBITS \ ! 68: "\10\20NIR\17BDF\16NOK\15LDE\14ODB\13OVR\12NXM\11DPR\10RDY\7IEN\6RST\5LPB\4STE\3HEN\2DEN\1ENB" ! 69: ! 70: #define VV_OBITS \ ! 71: "\10\20NIR\17BDF\16NOK\15OPT\13OVR\12NXM\11RFS\10RDY\7IEN\6RST\5INR\3HEN\2DEN\1ENB" ! 72: ! 73: /* device registers */ ! 74: struct vvreg { ! 75: short vvicsr; /* input csr */ ! 76: u_short vviwc; /* input word count */ ! 77: u_short vviba; /* input addr lo */ ! 78: u_short vviea; /* input addr hi */ ! 79: short vvocsr; /* output csr */ ! 80: u_short vvowc; /* output word count */ ! 81: u_short vvoba; /* output addr lo */ ! 82: u_short vvoea; /* output addr hi */ ! 83: }; ! 84: ! 85: #define VVRETRY 7
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.