summaryrefslogtreecommitdiffstats
path: root/private/ntos/ndis/ubnei/niudata.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/ntos/ndis/ubnei/niudata.h562
1 files changed, 562 insertions, 0 deletions
diff --git a/private/ntos/ndis/ubnei/niudata.h b/private/ntos/ndis/ubnei/niudata.h
new file mode 100644
index 000000000..1721bbbcf
--- /dev/null
+++ b/private/ntos/ndis/ubnei/niudata.h
@@ -0,0 +1,562 @@
+
+#include "packon.h"
+
+
+typedef struct _X86ADDRESS {
+ union {
+ ULONG dword;
+ struct {
+ USHORT Offset;
+ USHORT Segment;
+ } SegOff;
+ } u;
+} X86ADDRESS;
+
+typedef struct tagServiceStatus {
+ USHORT SST_TableSize;
+ ULONG SST_LastDiagnosticsTime;
+ ULONG SST_Mac_Status;
+ USHORT SST_CurrentPacketFilter;
+ ULONG SST_MediaSpecificStatisticsPtr;
+ ULONG SST_LastClearStatisticsTime;
+
+
+
+ ULONG SST_TotalFramesReceived ;
+ ULONG SST_FramesWithCRCError ;
+ ULONG SST_TotalBytesReceived ;
+ ULONG SST_FramesDiscarded_NoBufferSpace ;
+ ULONG SST_MulticastFramesReceived ;
+ ULONG SST_BroadcastFramesReceived ;
+ ULONG SST_FramesReceivedWithErrors ;
+ ULONG SST_FramesExceedingMaximumSize ;
+ ULONG SST_FramesSmallerThanMinimumSize ;
+ ULONG SST_MulticastBytesReceived ;
+ ULONG SST_BroadcastBytesReceived ;
+ ULONG SST_FramesDiscarded_HardwareError ;
+ ULONG SST_TotalFramesTransmitted ;
+ ULONG SST_TotalBytesTransmitted ;
+ ULONG SST_MulticastFramesTransmitted ;
+ ULONG SST_BroadcastFramesTransmitted ;
+ ULONG SST_BroadcastBytesTransmitted ;
+ ULONG SST_MulticastBytesTransmitted ;
+ ULONG SST_FramesNotTransmitted_Timeout ;
+ ULONG SST_FramesNotTransmitted_HardwareError ;
+ ULONG res[3];
+ } ServiceStatus;
+
+typedef struct tagMediaStatistics {
+ USHORT MST_TableSize ;
+ USHORT MST_StructureVersionLevel ;
+ ULONG MST_FramesWithAlignmentError ;
+ ULONG MST_ReceiveErrorFailureMask ;
+ ULONG MST_FramesWithOverrunError ;
+ ULONG MST_FramesTransmittedAfterAnyCollisions;
+ ULONG MST_FramesTransmittedAfterDeferring ;
+ ULONG MST_FramesNotTransmitted_MaxCollisions ;
+ ULONG MST_TotalCollisions ;
+ ULONG MST_LateCollisions ;
+ ULONG MST_FramesTransmittedAfterJustOneCollision ;
+ ULONG MST_FramesTransmittedAfterMultipleCollisions ;
+ ULONG MST_FramesTransmitted_CD_Heartbeat ;
+ ULONG MST_JabberErrors ;
+ ULONG MST_CarrierSenseLostDuringTransmission ;
+ ULONG MST_TransmitErrorFailureMask ;
+ ULONG MST_NumberOfUnderruns ;
+ } MediaStatistics;
+
+typedef volatile struct tagNIUData {
+ char szSST[16];
+ ServiceStatus sst;
+
+ char szMST[16];
+ MediaStatistics mst;
+
+// d0-d7
+ char szRFD[6];
+ USHORT RFD_Start;
+
+// d8-df
+ char szRBD[6];
+ USHORT RBD_Start;
+
+// e0-ef
+
+ UCHAR InterruptDisabled ;
+ UCHAR InterruptActive ;
+ UCHAR WorkForHost ;
+ UCHAR HostWantsInterrupt ;
+ USHORT HostQueuedTransmits ;
+ USHORT RU_Start_Count ;
+ USHORT res ;
+ USHORT Xmts_InProgress ;
+ USHORT CU_Starts ;
+ USHORT Xmt_Completes ;
+
+// [ RAM locations 00F0-00FF ]
+
+ ULONG Up_Time ;
+ USHORT missing_EOFs ;
+ USHORT Transmitter_Hangs ;
+ USHORT Receiver_Hangs ;
+ USHORT reset_anomaly_count ;
+ USHORT res2[2] ;
+
+// [ RAM locations 0100-010F ]
+
+ USHORT SCB[8];
+
+//SCB LABEL WORD ; The 82586's "System Control Block".
+// dw 0 ; STAT, CUS, and RUS.
+// dw 0 ; ACK, CUC, RESET, and RUC.
+// dw 0FFFFh ; Command Block List.
+// dw 0FFFFh ; Receive Frame Area.
+// dw 0 ; Cyclic Redundancy Check errors.
+// dw 0 ; Alignment errors.
+// dw 0 ; No Receive Resources errors.
+// dw 0 ; Receive Unit Bus Overrun errors.
+
+//; [ RAM locations 0110-011F ]
+
+ UCHAR dummy_RDB [10];
+
+//dummy_RBD dw 0 ; EOF, F, and Actual Count.
+// dw 0FFFFh ; Pointer to next RBD.
+// dw dummy_buffer-SegmentBase ; 16 LSBs of buffer
+// ; address.
+// db 0 ; 4 MSBs of buffer address.
+// db 0 ; Unused.
+// dw 8002h ; EOL and buffer size.
+
+ USHORT dummy_buffer [6];
+
+//dummy_buffr dw 0 ; The 2-byte dummy buffer.
+// dw 2 dup (0) ; [Unused.]
+//
+
+// [ RAM locations 0120-7FFF (or 3FFF) ]
+
+ UCHAR Start_Here[];
+
+ } LOWNIUDATA, *PLOWNIUDATA;
+
+
+typedef struct _SimpleRingBufferDesc {
+ UCHAR SRB_WritePtr[2];
+ UCHAR SRB_ReadPtr[2];
+ UCHAR SRB_ObjectMap;
+ UCHAR pad[11];
+ USHORT SRB_Offsets[256];
+ } SimpleRingBufferDescriptor;
+
+
+
+
+
+
+typedef volatile struct tagUpNIUData {
+// [ RAM locations 8000-800F ]
+ UCHAR szFreeTBDs[14];
+ USHORT FreeTBDs_RingBuffer;
+
+// [ RAM locations 8010-801F ]
+ UCHAR szXmitFrames[14];
+ USHORT XmtFrames_RingBuffer;
+
+
+// [ RAM locations 8020-802F ]
+ UCHAR szRcvFrames[14];
+ USHORT RcvFrames_RingBuffer;
+
+
+// [ RAM locations 8030-803F ]
+ UCHAR szReturnedRBD[14];
+ USHORT ReturnedRBDs_RingBuffer;
+
+// [ RAM locations 8040-804F ]
+ UCHAR szRequests[14];
+ USHORT Request_RingBuffer;
+
+// [ RAM locations 8050-805F ]
+ UCHAR szResult[14];
+ USHORT Result_RingBuffer;
+
+
+// [ RAM locations 8060-826F ]
+ SimpleRingBufferDescriptor RcvFrames;
+
+//RcvFrames SimpleRingBufferDescriptor <>
+// dw 256 dup (0)
+
+
+// [ RAM locations 8270-847F ]
+ SimpleRingBufferDescriptor ReturnedRBDs;
+
+//ReturnedRBDs SimpleRingBufferDescriptor <>
+// dw 256 dup (0)
+
+
+// [ RAM locations 8480-868F ]
+ SimpleRingBufferDescriptor FreeTDBs;
+
+//FreeTBDs SimpleRingBufferDescriptor <>
+// dw 256 dup (0)
+
+
+// [ RAM locations 8690-889F ]
+ SimpleRingBufferDescriptor XmtFrames;
+
+//XmtFrames SimpleRingBufferDescriptor <>
+// dw 256 dup (0)
+
+
+// [ RAM locations 88A0-8xxx ]
+
+ USHORT System_State ;
+ USHORT System_Modes ;
+ USHORT Last_Timer_0_Count ;
+ USHORT RU_Start_Timeouts ;
+ USHORT _82586_CA_Address ;
+ USHORT _82586_RESET_Address ;
+ USHORT HostInterruptPort ;
+ USHORT AdapterControlPort ;
+ USHORT IRQ_Select_and_LED_Port ;
+ USHORT DeadmanTimerPort ;
+ USHORT HostInterruptLevel ;
+ USHORT HostWindowMask ;
+ USHORT NOT_HostWindowMask ;
+
+ USHORT MinimumHostWindowSize ;
+
+ ULONG HostWindowSize ;
+
+ UCHAR HostOpSys ;
+ UCHAR NIU_AdapterType ;
+ USHORT check_RU_counters_delay ;
+ USHORT Timeout_TCB ;
+ USHORT Xmt_Timestamp ;
+ USHORT Xmt_Timeout ;
+ USHORT initial_RcvFrames_pointer ;
+ USHORT Rcv_Timestamp ;
+ USHORT Rcv_Timeout ;
+ USHORT Diagnostic_Hangs ;
+ USHORT Diagnostic_Timestamp ;
+ USHORT Diagnostic_Timeout ;
+ USHORT Loopback_1st_RBD ;
+ USHORT Loopback_Frame_Length ;
+ USHORT Loopback_Frame_Failures ;
+ ULONG Loopback_Frame_Count ;
+
+ USHORT Max_Multicast_Addresses ;
+ USHORT Max_Multicast_Count ;
+ USHORT Multicast_Padding ;
+ USHORT Max_General_Requests ;
+
+ USHORT Code_and_Xmt_Segment ;
+ USHORT RcvBufferSeg ;
+ USHORT XmtBufferSeg ;
+ USHORT Rcv_Buffer_Size ;
+ USHORT Number_of_Rcv_Buffers ;
+ USHORT Xmt_Buffer_Size ;
+ USHORT Number_of_Xmt_Buffers ;
+ USHORT Rcv_Buffer_Start ;
+ USHORT TCB_Start ;
+ USHORT TBD_Start ;
+ USHORT Xmt_Buffer_Start ;
+ USHORT Room_Left_in_1st_32K ;
+ UCHAR Map_Table[32] ;
+ USHORT Max_Receive_Size ;
+ USHORT Min_Receive_Size ;
+ USHORT Max_Collisions ;
+
+ UCHAR user_FIFO_Threshold ;
+ UCHAR user_PreambleLength ;
+ UCHAR user_CRC_Polynomial ;
+ UCHAR user_InterframeSpacing ;
+ USHORT user_SlotTime ;
+ UCHAR user_MaxRetries ;
+ UCHAR user_LinearPriority ;
+ UCHAR user_ACR_Priority ;
+ UCHAR user_BackoffMethod ;
+ UCHAR user_CRS_Filter ;
+ UCHAR user_CDT_Filter ;
+ UCHAR user_Min_Frame_Length ;
+
+ UCHAR LED_Off_12Volts_DoParityCheck ;
+ UCHAR LED_On_12Volts_DoParityCheck ;
+ UCHAR LED_Off_and_IRQ_Select ;
+ UCHAR LED_On_and_IRQ_Select ;
+
+ UCHAR LED_Status; // added to blink LED. brianlie 12/23/93
+
+// EVEN
+ UCHAR pad00[2];
+
+ USHORT Next_Unused_Location_in_1st_32K ;
+ USHORT Next_Unused_Location_in_2nd_32K ;
+
+ USHORT RFD_Queue[2] ; //head=0, tail=1
+ USHORT Free_RDB_Queue[2] ;
+ USHORT TCB_Queue[2] ;
+
+ X86ADDRESS Default_Address_Base ;
+ X86ADDRESS SCP_Base ;
+
+
+ USHORT Last_CRCERRS ;
+ USHORT Last_ALNERRS ;
+ USHORT Last_RSCERRS ;
+ USHORT Last_OVRNERRS ;
+
+// ALIGN 16
+ UCHAR pad01[22];
+
+ UCHAR ISCP[8];
+
+//ISCP LABEL WORD ; The 82586's "Intermediate System
+// ; Configuration Pointer".
+// db 0 ; Initialization-in-progress flag.
+// db 0 ; [Unused.]
+// dw 0 ; Offset of SCB from SCB Base.
+// dw 0 ; Low order bits of SCB base address.
+// db 0 ; High order bits of SCB base address.
+// db 0 ; [Unused.]
+
+// ALIGN 16
+ UCHAR pad02[24];
+
+ UCHAR szStack[16];
+ USHORT Stack_Area[64];
+
+
+
+
+// ;************************************************
+// ;* Initial Entry Point code *
+// ;************************************************
+ UCHAR Startup_Code[8];
+ USHORT Startup_Code_CS_fixup;
+
+//Startup_Code LABEL BYTE
+// dw 0 ; MOV AX,CS ; These instructions
+// dw 0 ; MOV DS,AX ; are put here during
+// db 0 ; JMP ; initialization.
+// dw 0 ; 0000
+//Startup_Code_CS_fixup LABEL WORD
+// dw 0 ; NIU Code Segment
+
+//;;;;; debugging
+// EVEN
+ UCHAR pad03[2];
+
+//LogStart EQU 0A000h
+//LogEnd EQU 0A000h+(16*1024)
+ USHORT LogFlg;
+ USHORT LopPtr;
+
+//;;;;; debugging
+
+// ALIGN 16
+
+
+// ;************************************************
+// ;* 82586 Runtime Diagnostic Commands *
+// ;************************************************
+
+//; This is the list of commands we give to the 82586 when we perform
+//; the "InitiateDiagnostics" request from the Protocol driver.
+
+//RuntimeDiagnosticCommands LABEL WORD
+
+ USHORT NOP_command[3];
+//NOP_command LABEL WORD
+// dw 0 ; C, B, and other status bits.
+// dw 0000h ; CMD = NOP.
+// dw DIAGNOSE_command-SegmentBase
+
+ USHORT DIAGNOSE_Command[3];
+//DIAGNOSE_command LABEL WORD
+// dw 0 ; C, B, and other status bits.
+// dw 0007h ; CMD = DIAGNOSE.
+// dw TDR_command-SegmentBase
+
+ USHORT TDR_command[3];
+//TDR_command LABEL WORD
+// dw 0 ; C, B, and other status bits.
+// dw 8005h ; EOL = 1 and CMD = TDR.
+// dw 0000h ; This is the last command.
+
+ USHORT TDR_result;
+
+//; Bits in the high byte of "TDR_result":
+
+#define TDR_LinkOK 80h
+#define TDR_TransceiverCableProblem 40h
+#define TDR_Open 20h
+#define TDR_Short 10h
+
+
+
+// ALIGN 16
+ UCHAR pad04[28];
+
+// ;************************************************
+// ;* 82586 Initialization Commands *
+// ;************************************************
+
+//; This is the list of commands we give to the 82586 when we first
+//; start it, when we restart it after we have detected that it is hung,
+//; and when we restart it in performing certain of the "GeneralRequest"s.
+//; There are 4 commands, linked together through their "CB_Link" fields.
+//; The first and third commands are "Configure" commands, and the second
+//; one is an "Individual Address Set Up" command. The two "Configure"
+//; commands specify the same configuration parameters, except that the first
+//; one turns on "internal loopback" mode and the last one turns it off.
+//; We put the 82586 in "internal loopback" mode while it processes the
+//; "Individual Address Set Up" command because it may otherwise not process
+//; it correctly. The fourth command is a "Multicast Address Set Up" command.
+//; NOTE that these command blocks get initialized at run time (by the
+//; "_82586_Initialization" routine). The initial values in the following
+//; declarations are effectively just comments.
+
+//_82586_Initialization_Commands LABEL WORD
+
+ USHORT Configure_with_Loopback[9];
+ USHORT individual_Address[3];
+ UCHAR Our_Address[6];
+ USHORT Operation_Configure[4];
+ USHORT Save_Bad_Frames[3];
+ USHORT Promiscuous_ect[2];
+ USHORT Multicast_Setup[3];
+ USHORT Multicast_Byte_Count;
+ CHAR Dynamically_Allocated_Area[][6];
+
+
+//Configure_with_Loopback LABEL WORD
+// dw 0 ; C, B, and other status bits.
+// dw 0002h ; CMD = Configure.
+// dw Individual_Address-SegmentBase
+// db 12 ; Byte count of this block.
+// db 15 ; FIFO limit = 15.
+// db 40h ; Don't save bad frames; External READY sync.
+// db 40h+2Eh ; Internal loopback; 8-byte preamble; Address
+// ; and Type in data buffer; 6 address bytes.
+// db 0 ; IEEE 802.3 exponential backoff method.
+// db 96 ; Interframe spacing = 96.
+// dw 0F200h ; 15 retries on collisions; Slot time = 512.
+// db 0 ; Non-promiscuous; Broadcasts accepted.
+// db 0 ; Externally generated Carrier Sense (CRS) and
+// ; Collision Detect (CDT); CRS filter and CDT
+// ; filter = 0.
+// dw 12 ; Minimum frame length.
+//
+//Individual_Address LABEL WORD
+// dw 0 ; C, B, and other status bits.
+// dw 0001h ; CMD = Individual Address Set Up.
+// dw Operational_Configure-SegmentBase
+//Our_Address LABEL BYTE
+// dw 3 dup (0) ; The address is filled in at initialization.
+//
+//Operational_Configure LABEL WORD
+// dw 0 ; C, B, and other status bits.
+// dw 0002h ; CMD = Configure.
+// dw Multicast_Setup-SegmentBase
+// db 12 ; Byte count of this block.
+// db 15 ; FIFO limit = 15.
+//Save_Bad_Frames_etc LABEL BYTE
+// db 40h ; Don't save bad frames; External READY sync.
+// db 2Eh ; 8-byte preamble; Address and Type in data
+// ; buffer; 6 address bytes.
+// db 0 ; IEEE 802.3 exponential backoff method.
+// db 96 ; Interframe spacing = 96.
+// dw 0F200h ; 15 retries on collisions; Slot time = 512.
+//Promiscuous_etc LABEL BYTE
+// db 08h ; Non-promiscuous; Broadcasts accepted;
+// ; TONO-CRS.
+// db 0 ; Externally generated Carrier Sense (CRS) and
+// ; Collision Detect (CDT); CRS filter and CDT
+// ; filter = 0.
+// dw 12 ; Minimum frame length.
+//
+//Multicast_Setup LABEL WORD
+// dw 0 ; C, B, and other status bits.
+// dw 8003h ; End-of-List=1; CMD=Multicast Address Setup.
+// dw 0 ; [This is the last initialization command.]
+// dw 0 ; This 0 means disable multicast addresses.
+//
+//Dynamically_Allocated_Area LABEL BYTE
+//
+//; The RAM from here up is allocated by "Initialize_Data". It is used for
+//; (a) the Multicast-Setup Command Block's list of multicast addresses;
+//; (b) the RFDs (Receive Frame Descriptors), if they won't fit in the
+//; first 32K;
+//; (c) the TCBs (Transmit Command Blocks);
+//; (d) the TBDs (Transmit Buffer Descriptors);
+//; (e) the "Request" ring buffer; and
+//; (f) the "Result" ring buffer;
+//; NOTE that the Multicast-Setup Command Block's header must immediately
+//; precede this area, and the space for the list of multicast addresses must
+//; be the first thing allocated, because the list must be contiguous with the
+//; header.
+//
+//
+//;NIU_DataSegment ENDS
+//
+
+
+
+ } HIGHNIUDATA, *PHIGHNIUDATA;
+
+
+typedef volatile struct _NIU_CONTROL_AREA {
+
+ USHORT us_POD_SCB[8]; // xFF00 - 586 SCB (if Ethernet).
+ UCHAR uc_Aux_port; // xFF10 - Aux Control port value last output.
+ UCHAR uc_Aux_reserved;
+ UCHAR uc_ADP_port; // xFF12 - Adapter Control port value.
+ UCHAR uc_ADP_reserved;
+ UCHAR uc_UnusedInfo1[108]; // uninteresting stuff.
+ USHORT us_pod_status; // xFF80 - current Power-On Diag (POD) status.
+ USHORT us_sif_test; // xFF82 - request to test SIF chip.
+ UCHAR uc_UnusedInfo2[12];
+ USHORT us_HWstatus; // xFF90 - status results of POD.
+ USHORT us_HWcommand; // xFF92 - command from PC to PROM.
+ USHORT us_HWresult1; // xFF94 - results of last command from PC.
+ USHORT us_HWresult2; // xFF96 - more results of last command.
+ USHORT us_HWparameter1; // xFF98 - command parameter 1.
+ USHORT us_HWparameter2; // xFF9A - command parameter 2.
+ UCHAR uc_rsrvd_for_PCuse[36];
+ USHORT us_DI_value; // xFFC0 - value of PROM's DI.
+ USHORT us_SI_value; // xFFC2 - value of PROM's SI.
+ USHORT us_BP_value; // xFFC4 - value of PROM's BP.
+ UCHAR uc_unknown1[2]; // xFFC6 - reserved.
+ USHORT us_BX_value; // xFFC8 - value of PROM's BX.
+ USHORT us_DX_value; // xFFCA - value of PROM's DX.
+ USHORT us_CX_value; // xFFCC - value of PROM's CX.
+ USHORT us_AX_value; // xFFCE - value of PROM's AX.
+ USHORT us_ES_value; // xFFD0 - value of PROM's ES.
+ USHORT us_DS_value; // xFFD2 - value of PROM's DS.
+ USHORT us_SP_value; // xFFD4 - value of PROM's SP.
+ USHORT us_SS_value; // xFFD6 - value of PROM's SS.
+ USHORT us_IP_value; // xFFD8 - value of PROM's IP.
+ USHORT us_CS_value; // xFFDA - value of PROM's CS.
+ USHORT us_Flags_value; // xFFDC - value of PROM's Flags.
+ UCHAR uc_interrupt_type; // xFFDE - Interrupt type (?).
+ UCHAR uc_reserved1;
+ UCHAR uc_board_rev; // xFFE0 - board revision level.
+ UCHAR uc_board_sub_rev; // xFFE1 - board sub-revision level.
+ UCHAR uc_banks_of_RAM; // xFFE2 - number of 64k banks of RAM.
+ UCHAR uc_host_type; // xFFE3 - type of host.
+ UCHAR uc_media_type; // xFFE4 - type of media interface:
+ UCHAR uc_product_type; // xFFE5 - type of product.
+ USHORT us_clock_speed; // xFFE6 - NIU CPU clock rate.
+ UCHAR uc_POD_ISCP[8]; // xFFE8 - 586 ISCP (if Ethernet).
+ UCHAR uc_node_id[6]; // xFFF0 - the NIU's 48-bit node address.
+ USHORT us_POD_SCP; // xFFF6 - 586 SCP (if Ethernet).
+ UCHAR uc_hdlc_flag; // xFFF8 - HDLC flag (if Ethernet).
+} NIU_CONTROL_AREA, *PNIU_CONTROL_AREA;
+
+
+
+
+#include "packoff.h"