ReactOS 0.4.16-dev-319-g6cf4263
dc21x4.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS DC21x4 Driver
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Main header file
5 * COPYRIGHT: Copyright 2023 Dmitry Borisov <di.sean@protonmail.com>
6 */
7
8#pragma once
9
10#if !DBG
11#define NO_KERNEL_LIST_ENTRY_CHECKS
12#endif
13#include <ndis.h>
14#include <section_attribs.h>
15
16#include "dc21x4hw.h"
17#include "eeprom.h"
18#include "media.h"
19#include "util.h"
20
21#define DC21X4_TAG '4x12'
22
23#define DC_TRANSMIT_DESCRIPTORS 64
24#define DC_TRANSMIT_BLOCKS 48
25#define DC_TRANSMIT_BUFFERS 4
26#define DC_LOOPBACK_FRAMES 4
27
28#define DC_RECEIVE_BUFFERS_DEFAULT 64
29#define DC_RECEIVE_BUFFERS_MIN 8
30#define DC_RECEIVE_BUFFERS_EXTRA 16
31
32#define DC_RECEIVE_ARRAY_SIZE 16
33
34#define DC_MULTICAST_LIST_SIZE 36
35
36#define DC_MAXIMUM_FRAME_SIZE 1514
37#define DC_TRANSMIT_BLOCK_SIZE 1536
38#define DC_RECEIVE_BLOCK_SIZE 1536
39#define DC_ETHERNET_HEADER_SIZE 14
40
41#define DC_TX_UNDERRUN_LIMIT 5
42#define DC_INTERRUPT_PROCESSING_LIMIT 8
43
44#define DC_FRAGMENTATION_THRESHOLD 32
45
46#define DC_PACKET_FILTERS ( \
47 NDIS_PACKET_TYPE_DIRECTED | \
48 NDIS_PACKET_TYPE_MULTICAST | \
49 NDIS_PACKET_TYPE_BROADCAST | \
50 NDIS_PACKET_TYPE_PROMISCUOUS | \
51 NDIS_PACKET_TYPE_ALL_MULTICAST)
52
53#define DC_LOOPBACK_FRAME_SIZE 64
54
55/* Transmit descriptors reserved for internal use */
56#define DC_TBD_RESERVE (2 + DC_LOOPBACK_FRAMES) /* (+2 for setup frame) */
57#define DC_TCB_RESERVE (1 + DC_LOOPBACK_FRAMES) /* (+1 for setup frame) */
58
59#define DC_EVENT_SETUP_FRAME_COMPLETED 0x00000001
60
62typedef struct _DC_TCB DC_TCB, *PDC_TCB;
63typedef struct _DC_RCB DC_RCB, *PDC_RCB;
65
66typedef VOID
68 _In_ PDC21X4_ADAPTER Adapter,
69 _In_ ULONG InterruptStatus);
71
72typedef struct _DC_TX_BUFFER_DATA
73{
77
78typedef struct _DC_STATISTICS
79{
100
101typedef struct _DC21X4_ADAPTER
102{
106
108#define DC_NEED_RX_OVERFLOW_WORKAROUND 0x80000000
109#define DC_SIA_GPIO 0x00000001
110#define DC_SIA_ANALOG_CONTROL 0x00000002
111#define DC_HAS_POWER_MANAGEMENT 0x00000004
112#define DC_HAS_POWER_SAVING 0x00000008
113#define DC_HAS_MII 0x00000010
114#define DC_PERFECT_FILTERING_ONLY 0x00000020
115#define DC_ENABLE_PCI_COMMANDS 0x00000040
116#define DC_MII_AUTOSENSE 0x00000080
117#define DC_HAS_TIMER 0x00000100
118
120#define DC_ACTIVE 0x80000000
121#define DC_IO_MAPPED 0x00000001
122#define DC_IRQ_SHARED 0x00000002
123#define DC_FIRST_SETUP 0x00000004
124#define DC_AUTOSENSE 0x00000008
125
128
144
152
155
157
160
163#define DC_MODE_AUTONEG_MASK 0x0000000F
164#define DC_MODE_PORT_AUTOSENSE 0x00000010
165#define DC_MODE_TEST_PACKET 0x00000020
166#define DC_MODE_AUI_FAILED 0x00000040
167#define DC_MODE_BNC_FAILED 0x00000080
168
169#define DC_MODE_AUTONEG_NONE 0x00000000
170#define DC_MODE_AUTONEG_WAIT_INTERRUPT 0x00000001
171#define DC_MODE_AUTONEG_LINK_STATUS_CHECK 0x00000002
172
184
191
195
198
201
204 ULONG MulticastCount;
205 struct
206 {
209
255
256#include "sendrcv.h"
257
259
261ULONG
263 _In_ PDC21X4_ADAPTER Adapter,
265{
266 ULONG Value;
267
268 NdisRawReadPortUlong((PULONG)(Adapter->IoBase + Register), &Value);
269 return Value;
270}
271
272#define DC_WRITE(Adapter, Register, Value) \
273 NdisRawWritePortUlong((PULONG)((Adapter)->IoBase + (Register)), (Value));
274
275CODE_SEG("INIT")
276DRIVER_INITIALIZE DriverEntry;
277
278CODE_SEG("PAGE")
280NTAPI
284 _In_ PNDIS_MEDIUM MediumArray,
288
289VOID
290NTAPI
292 _In_ NDIS_HANDLE MiniportAdapterContext,
295
296VOID
297NTAPI
299 _In_ NDIS_HANDLE MiniportAdapterContext,
301
302VOID
304 _In_ PDC21X4_ADAPTER Adapter);
305
306VOID
307NTAPI
309 _In_ NDIS_HANDLE MiniportAdapterContext,
311
313NTAPI
315 _In_ NDIS_HANDLE MiniportAdapterContext,
316 _In_ NDIS_OID Oid,
317 _In_ PVOID InformationBuffer,
318 _In_ ULONG InformationBufferLength,
320 _Out_ PULONG BytesNeeded);
321
323NTAPI
325 _In_ NDIS_HANDLE MiniportAdapterContext,
326 _In_ NDIS_OID Oid,
327 _In_ PVOID InformationBuffer,
328 _In_ ULONG InformationBufferLength,
330 _Out_ PULONG BytesNeeded);
331
332VOID
333NTAPI
334DcIsr(
335 _Out_ PBOOLEAN InterruptRecognized,
336 _Out_ PBOOLEAN QueueMiniportHandleInterrupt,
337 _In_ NDIS_HANDLE MiniportAdapterContext);
338
339VOID
340NTAPI
342 _In_ NDIS_HANDLE MiniportAdapterContext);
343
344CODE_SEG("PAGE")
345VOID
346NTAPI
350
353 _In_ PDC21X4_ADAPTER Adapter,
355
358 _In_ PDC21X4_ADAPTER Adapter,
359 _In_ PNDIS_PM_PACKET_PATTERN PmPattern);
360
363 _In_ PDC21X4_ADAPTER Adapter,
364 _In_ PNDIS_PM_PACKET_PATTERN PmPattern);
365
366CODE_SEG("PAGE")
367VOID
369 _In_ __drv_freesMem(Mem) PDC21X4_ADAPTER Adapter);
370
371CODE_SEG("PAGE")
372VOID
373NTAPI
377
379VOID
381 _In_ PDC21X4_ADAPTER Adapter,
382 _In_ BOOLEAN WaitForPackets);
383
384CODE_SEG("PAGE")
385VOID
387 _In_ PDC21X4_ADAPTER Adapter);
388
389CODE_SEG("PAGE")
392 _In_ PDC21X4_ADAPTER Adapter);
393
394CODE_SEG("PAGE")
397 _In_ PDC21X4_ADAPTER Adapter);
398
399CODE_SEG("PAGE")
400VOID
402 _In_ PDC21X4_ADAPTER Adapter);
403
404CODE_SEG("PAGE")
405VOID
407 _In_ PDC21X4_ADAPTER Adapter);
408
409CODE_SEG("PAGE")
410VOID
412 _In_ PDC21X4_ADAPTER Adapter);
413
414ULONG
417 _In_ ULONG Size);
418
419VOID
421 _In_ PDC21X4_ADAPTER Adapter);
422
423VOID
425 _In_ PDC21X4_ADAPTER Adapter);
426
427VOID
429 _In_ PDC21X4_ADAPTER Adapter,
431
432VOID
434 _In_ PDC21X4_ADAPTER Adapter,
435 _In_ ULONG Csr13,
436 _In_ ULONG Csr14,
437 _In_ ULONG Csr15);
438
439VOID
441 _In_ PDC21X4_ADAPTER Adapter);
442
443CODE_SEG("PAGE")
444VOID
446 _In_ PDC21X4_ADAPTER Adapter);
447
450 _In_ PDC21X4_ADAPTER Adapter,
451 _In_ BOOLEAN WaitForCompletion);
452
455 _In_ PDC21X4_ADAPTER Adapter,
456 _In_ ULONG PacketFilter);
457
460 _In_ PDC21X4_ADAPTER Adapter);
461
462VOID
464 _In_ PDC21X4_ADAPTER Adapter,
466
467CODE_SEG("PAGE")
470 _In_ PDC21X4_ADAPTER Adapter);
471
474 _In_ PDC21X4_ADAPTER Adapter,
475 _In_ ULONG PhyAddress,
476 _In_ ULONG RegAddress,
477 _In_ ULONG Data);
478
480MiiRead(
481 _In_ PDC21X4_ADAPTER Adapter,
482 _In_ ULONG PhyAddress,
483 _In_ ULONG RegAddress,
485
486CODE_SEG("PAGE")
487VOID
489 _In_ PDC21X4_ADAPTER Adapter);
490
491VOID
492NTAPI
496
497NDIS_TIMER_FUNCTION MediaMonitor21040Dpc;
498NDIS_TIMER_FUNCTION MediaMonitor21041Dpc;
499NDIS_TIMER_FUNCTION MediaMonitor21140Dpc;
500NDIS_TIMER_FUNCTION MediaMonitor21143Dpc;
501
505
506CODE_SEG("PAGE")
507VOID
509 _In_ PDC21X4_ADAPTER Adapter);
510
511CODE_SEG("PAGE")
512VOID
514 _In_ PDC21X4_ADAPTER Adapter,
515 _In_ ULONG MediaNumber);
516
517VOID
519 _In_ PDC21X4_ADAPTER Adapter,
521
522VOID
524 _In_ PDC21X4_ADAPTER Adapter,
525 _In_ BOOLEAN ResetPhy);
526
527VOID
529 _In_ PDC21X4_ADAPTER Adapter);
530
533 _In_ PDC21X4_ADAPTER Adapter);
534
535VOID
537 _In_ PDC21X4_ADAPTER Adapter);
538
539VOID
541 _In_ PDC21X4_ADAPTER Adapter);
#define CODE_SEG(...)
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
Definition: bufpool.h:45
#define _Interlocked_
VOID DcWriteGpio(_In_ PDC21X4_ADAPTER Adapter, _In_ ULONG Value)
Definition: hardware.c:64
struct _DC_RCB * PDC_RCB
Definition: dc21x4.h:63
VOID() MEDIA_HANDLE_LINK_STATE_CHANGE(_In_ PDC21X4_ADAPTER Adapter, _In_ ULONG InterruptStatus)
Definition: dc21x4.h:67
VOID NTAPI DcReturnPacket(_In_ NDIS_HANDLE MiniportAdapterContext, _In_ PNDIS_PACKET Packet)
Definition: interrupt.c:244
struct _DC_TCB * PDC_TCB
Definition: dc21x4.h:62
NDIS_STATUS DcUpdateMulticastList(_In_ PDC21X4_ADAPTER Adapter)
Definition: hardware.c:375
LIST_ENTRY SRompAdapterList
Definition: eeprom.c:30
NDIS_STATUS DcSetupAdapter(_In_ PDC21X4_ADAPTER Adapter)
Definition: hardware.c:462
VOID DcPowerSave(_In_ PDC21X4_ADAPTER Adapter, _In_ BOOLEAN Enable)
Definition: power.c:225
VOID MediaSelectMiiPort(_In_ PDC21X4_ADAPTER Adapter, _In_ BOOLEAN ResetPhy)
Definition: media.c:215
NDIS_STATUS DcSetPower(_In_ PDC21X4_ADAPTER Adapter, _In_ NDIS_DEVICE_POWER_STATE PowerState)
Definition: power.c:191
#define DC_LOOPBACK_FRAMES
Definition: dc21x4.h:26
VOID DcDisableHw(_In_ PDC21X4_ADAPTER Adapter)
Definition: hardware.c:17
MEDIA_HANDLE_LINK_STATE_CHANGE MediaLinkStateChange21143
Definition: dc21x4.h:504
struct _DC21X4_ADAPTER * PDC21X4_ADAPTER
Definition: dc21x4.h:61
VOID NTAPI DcPowerWorker(_In_ PNDIS_WORK_ITEM WorkItem, _In_opt_ PVOID Context)
Definition: power.c:167
VOID DcSetupFrameInitialize(_In_ PDC21X4_ADAPTER Adapter)
Definition: hardware.c:260
VOID NTAPI DcCancelSendPackets(_In_ NDIS_HANDLE MiniportAdapterContext, _In_ PVOID CancelId)
Definition: send.c:271
VOID MediaMiiSelect(_In_ PDC21X4_ADAPTER Adapter)
Definition: media.c:197
VOID NTAPI DcIsr(_Out_ PBOOLEAN InterruptRecognized, _Out_ PBOOLEAN QueueMiniportHandleInterrupt, _In_ NDIS_HANDLE MiniportAdapterContext)
Definition: interrupt.c:594
struct _DC_COALESCE_BUFFER * PDC_COALESCE_BUFFER
Definition: dc21x4.h:64
DRIVER_INITIALIZE DriverEntry
Definition: dc21x4.h:276
FORCEINLINE ULONG DC_READ(_In_ PDC21X4_ADAPTER Adapter, _In_ DC_CSR Register)
Definition: dc21x4.h:262
NDIS_STATUS DcApplyPacketFilter(_In_ PDC21X4_ADAPTER Adapter, _In_ ULONG PacketFilter)
Definition: hardware.c:401
VOID MediaInitMediaList(_In_ PDC21X4_ADAPTER Adapter)
Definition: media.c:547
VOID DcInitRxRing(_In_ PDC21X4_ADAPTER Adapter)
Definition: init.c:574
NDIS_TIMER_FUNCTION MediaMonitor21041Dpc
Definition: dc21x4.h:498
#define DC_MULTICAST_LIST_SIZE
Definition: dc21x4.h:34
VOID DcStartAdapter(_In_ PDC21X4_ADAPTER Adapter)
Definition: dc21x4.c:168
VOID NTAPI DcTransmitTimeoutRecoveryWorker(_In_ PNDIS_WORK_ITEM WorkItem, _In_opt_ PVOID Context)
Definition: dc21x4.c:247
VOID DcStopTxRxProcess(_In_ PDC21X4_ADAPTER Adapter)
Definition: hardware.c:38
ULONG DcEthernetCrc(_In_reads_bytes_(Size) const VOID *Buffer, _In_ ULONG Size)
Definition: dc21x4.c:17
#define DC_TRANSMIT_BUFFERS
Definition: dc21x4.h:25
NDIS_TIMER_FUNCTION MediaMonitor21143Dpc
Definition: dc21x4.h:500
VOID MediaInitDefaultMedia(_In_ PDC21X4_ADAPTER Adapter, _In_ ULONG MediaNumber)
Definition: media.c:325
struct _DC_TX_BUFFER_DATA * PDC_TX_BUFFER_DATA
NDIS_STATUS DcRemoveWakeUpPattern(_In_ PDC21X4_ADAPTER Adapter, _In_ PNDIS_PM_PACKET_PATTERN PmPattern)
Definition: power.c:205
VOID HpnaPhyInit(_In_ PDC21X4_ADAPTER Adapter)
Definition: phy.c:194
MEDIA_HANDLE_LINK_STATE_CHANGE * PMEDIA_HANDLE_LINK_STATE_CHANGE
Definition: dc21x4.h:70
VOID NTAPI DcHandleInterrupt(_In_ NDIS_HANDLE MiniportAdapterContext)
Definition: interrupt.c:514
NDIS_STATUS DcAddWakeUpPattern(_In_ PDC21X4_ADAPTER Adapter, _In_ PNDIS_PM_PACKET_PATTERN PmPattern)
Definition: power.c:215
NDIS_TIMER_FUNCTION MediaMonitor21140Dpc
Definition: dc21x4.h:499
NDIS_TIMER_FUNCTION MediaMonitor21040Dpc
Definition: dc21x4.h:497
DECLSPEC_NOINLINE VOID DcStopAdapter(_In_ PDC21X4_ADAPTER Adapter, _In_ BOOLEAN WaitForPackets)
Definition: dc21x4.c:123
VOID MediaGprSelect(_In_ PDC21X4_ADAPTER Adapter)
Definition: media.c:303
MEDIA_HANDLE_LINK_STATE_CHANGE MediaLinkStateChange21041
Definition: dc21x4.h:503
VOID DcFreeAdapter(_In_ __drv_freesMem(Mem) PDC21X4_ADAPTER Adapter)
Definition: init.c:1022
VOID MediaIndicateConnect(_In_ PDC21X4_ADAPTER Adapter, _In_ BOOLEAN LinkUp)
Definition: media.c:17
MEDIA_HANDLE_LINK_STATE_CHANGE MediaLinkStateChange21040
Definition: dc21x4.h:502
NDIS_STATUS DcReadEeprom(_In_ PDC21X4_ADAPTER Adapter)
Definition: eeprom.c:1482
BOOLEAN MiiRead(_In_ PDC21X4_ADAPTER Adapter, _In_ ULONG PhyAddress, _In_ ULONG RegAddress, _Out_ PULONG Data)
Definition: phy.c:101
VOID DcWriteSia(_In_ PDC21X4_ADAPTER Adapter, _In_ ULONG Csr13, _In_ ULONG Csr14, _In_ ULONG Csr15)
Definition: hardware.c:89
VOID DcFreeEeprom(_In_ PDC21X4_ADAPTER Adapter)
Definition: eeprom.c:1444
VOID NTAPI DcResetWorker(_In_ PNDIS_WORK_ITEM WorkItem, _In_opt_ PVOID Context)
Definition: dc21x4.c:190
struct _DC21X4_ADAPTER DC21X4_ADAPTER
Definition: dc21x4.h:61
BOOLEAN MediaMiiCheckLink(_In_ PDC21X4_ADAPTER Adapter)
Definition: media.c:141
struct _DC_TX_BUFFER_DATA DC_TX_BUFFER_DATA
struct _DC_STATISTICS DC_STATISTICS
VOID DcProcessPendingPackets(_In_ PDC21X4_ADAPTER Adapter)
Definition: send.c:201
BOOLEAN DcFindMiiPhy(_In_ PDC21X4_ADAPTER Adapter)
Definition: phy.c:217
VOID DcInitTxRing(_In_ PDC21X4_ADAPTER Adapter)
Definition: init.c:499
BOOLEAN DcSetupFrameDownload(_In_ PDC21X4_ADAPTER Adapter, _In_ BOOLEAN WaitForCompletion)
Definition: hardware.c:187
NDIS_STATUS NTAPI DcInitialize(_Out_ PNDIS_STATUS OpenErrorStatus, _Out_ PUINT SelectedMediumIndex, _In_ PNDIS_MEDIUM MediumArray, _In_ UINT MediumArraySize, _In_ NDIS_HANDLE MiniportAdapterHandle, _In_ NDIS_HANDLE WrapperConfigurationContext)
Definition: init.c:1125
struct _DC_STATISTICS * PDC_STATISTICS
NDIS_STATUS NTAPI DcSetInformation(_In_ NDIS_HANDLE MiniportAdapterContext, _In_ NDIS_OID Oid, _In_ PVOID InformationBuffer, _In_ ULONG InformationBufferLength, _Out_ PULONG BytesRead, _Out_ PULONG BytesNeeded)
Definition: requests.c:483
NDIS_STATUS NTAPI DcQueryInformation(_In_ NDIS_HANDLE MiniportAdapterContext, _In_ NDIS_OID Oid, _In_ PVOID InformationBuffer, _In_ ULONG InformationBufferLength, _Out_ PULONG BytesWritten, _Out_ PULONG BytesNeeded)
Definition: requests.c:208
VOID DcTestPacket(_In_ PDC21X4_ADAPTER Adapter)
Definition: hardware.c:135
VOID MediaSiaSelect(_In_ PDC21X4_ADAPTER Adapter)
Definition: media.c:268
BOOLEAN MiiWrite(_In_ PDC21X4_ADAPTER Adapter, _In_ ULONG PhyAddress, _In_ ULONG RegAddress, _In_ ULONG Data)
Definition: phy.c:78
VOID NTAPI DcSendPackets(_In_ NDIS_HANDLE MiniportAdapterContext, _In_ PPNDIS_PACKET PacketArray, _In_ UINT NumberOfPackets)
Definition: send.c:228
enum _DC_CSR DC_CSR
enum _DC_CHIP_TYPE DC_CHIP_TYPE
LONG CancelId
Definition: main.c:23
#define __drv_freesMem(kind)
Definition: driverspecs.h:272
#define SROM_MAX_STREAM_REGS
Definition: eeprom.h:93
#define ETH_LENGTH_OF_ADDRESS
Definition: efilter.h:16
#define MEDIA_LIST_MAX
Definition: media.h:57
unsigned __int64 ULONG64
Definition: imports.h:198
#define NdisRawReadPortUlong(Port, Data)
Definition: ndis.h:4182
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
Definition: ndis.h:1549
unsigned int * PUINT
Definition: ndis.h:50
unsigned int UINT
Definition: ndis.h:50
_In_ PPNDIS_PACKET _In_ UINT NumberOfPackets
Definition: ndis.h:5121
_In_ PPNDIS_PACKET PacketArray
Definition: ndis.h:5120
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT SelectedMediumIndex
Definition: ndis.h:6011
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT _In_ UINT MediumArraySize
Definition: ndis.h:6013
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _In_ NDIS_HANDLE WrapperConfigurationContext
Definition: ndis.h:3946
_In_ NDIS_HANDLE MiniportAdapterHandle
Definition: ndis.h:4668
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS OpenErrorStatus
Definition: ndis.h:6009
* PNDIS_STATUS
Definition: ndis.h:45
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define DECLSPEC_NOINLINE
Definition: ntbasedef.h:225
#define DECLSPEC_CACHEALIGN
Definition: ntbasedef.h:272
enum _NDIS_DEVICE_POWER_STATE NDIS_DEVICE_POWER_STATE
enum _NDIS_MEDIUM * PNDIS_MEDIUM
int NDIS_STATUS
Definition: ntddndis.h:475
ULONG NDIS_OID
Definition: ntddndis.h:230
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:142
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
@ LinkUp
Definition: srb.h:741
ULONG MulticastMaxEntries
Definition: dc21x4.h:202
BOOLEAN ProgramHashPerfectFilter
Definition: dc21x4.h:215
UCHAR CurrentMacAddress[ETH_LENGTH_OF_ADDRESS]
Definition: dc21x4.h:200
NDIS_HANDLE BufferPool
Definition: dc21x4.h:247
ULONG InterruptStatus
Definition: dc21x4.h:126
volatile LONG MediaTestStatus
Definition: dc21x4.h:180
NDIS_HANDLE WrapperConfigurationHandle
Definition: dc21x4.h:159
ULONG SetupFramePhys
Definition: dc21x4.h:218
PULONG SetupFrame
Definition: dc21x4.h:216
ULONG TcbSlots
Definition: dc21x4.h:137
ULONG AdapterSize
Definition: dc21x4.h:235
ULONG ModeFlags
Definition: dc21x4.h:162
ULONG RcbCount
Definition: dc21x4.h:213
ULONG TcbCompleted
Definition: dc21x4.h:139
PUCHAR IoBase
Definition: dc21x4.h:103
UCHAR ResetStreamLength
Definition: dc21x4.h:226
DECLSPEC_CACHEALIGN NDIS_SPIN_LOCK ModeLock
Definition: dc21x4.h:161
ULONG PacketFilter
Definition: dc21x4.h:154
ULONG TransmitUnderruns
Definition: dc21x4.h:153
BOOLEAN OidPending
Definition: dc21x4.h:214
PVOID AdapterOriginal
Definition: dc21x4.h:242
PDC_RCB * RcbArray
Definition: dc21x4.h:146
ULONG TbdPhys
Definition: dc21x4.h:245
ULONG MediaBitmap
Definition: dc21x4.h:175
_Interlocked_ volatile LONG ResetLock
Definition: dc21x4.h:239
UCHAR PermanentMacAddress[ETH_LENGTH_OF_ADDRESS]
Definition: dc21x4.h:199
BOOLEAN LinkUp
Definition: dc21x4.h:176
PDC_RBD HeadRbd
Definition: dc21x4.h:148
ULONG InterruptLevel
Definition: dc21x4.h:233
PULONG SetupFrameSaved
Definition: dc21x4.h:217
ULONG InterruptFlags
Definition: dc21x4.h:234
USHORT ResetStream[SROM_MAX_STREAM_REGS]
Definition: dc21x4.h:227
NDIS_WORK_ITEM ResetWorkItem
Definition: dc21x4.h:237
ULONG AnalogControl
Definition: dc21x4.h:185
struct _DC21X4_ADAPTER::@993 MulticastList[DC_MULTICAST_LIST_SIZE]
PVOID TbdOriginal
Definition: dc21x4.h:243
ULONG MiiAdvertising
Definition: dc21x4.h:187
ULONG LastReceiveActivity
Definition: dc21x4.h:179
ULONG RcbFree
Definition: dc21x4.h:151
ULONG LastTcbCompleted
Definition: dc21x4.h:140
SINGLE_LIST_ENTRY SendBufferList
Definition: dc21x4.h:142
PDC_TCB TailTcb
Definition: dc21x4.h:130
PDC_RBD TailRbd
Definition: dc21x4.h:149
PDC_TCB HeadTcb
Definition: dc21x4.h:141
PDC_COALESCE_BUFFER CoalesceBuffer
Definition: dc21x4.h:252
ULONG OpMode
Definition: dc21x4.h:173
PVOID RbdOriginal
Definition: dc21x4.h:244
SINGLE_LIST_ENTRY AllocRcbList
Definition: dc21x4.h:229
ULONG Features
Definition: dc21x4.h:107
PDC_TBD HeadTbd
Definition: dc21x4.h:134
ULONG DefaultMedia
Definition: dc21x4.h:212
ULONG CurrentInterruptMask
Definition: dc21x4.h:105
ULONG LoopbackFrameNumber
Definition: dc21x4.h:220
PDC_TBD CurrentTbd
Definition: dc21x4.h:133
NDIS_DEVICE_POWER_STATE PowerState
Definition: dc21x4.h:193
ULONG PhyAddress
Definition: dc21x4.h:177
PDC_TBD TailTbd
Definition: dc21x4.h:135
NDIS_PHYSICAL_ADDRESS IoBaseAddress
Definition: dc21x4.h:240
PDC_RBD CurrentRbd
Definition: dc21x4.h:147
PMEDIA_HANDLE_LINK_STATE_CHANGE HandleLinkStateChange
Definition: dc21x4.h:127
UCHAR HpnaRegister[32]
Definition: dc21x4.h:197
PDC_TCB CurrentTcb
Definition: dc21x4.h:132
ULONG InterruptMask
Definition: dc21x4.h:104
ULONG BusNumber
Definition: dc21x4.h:222
_Field_range_(0, MulticastMaxEntries) ULONG MulticastCount
ULONG LinkStateChangeMask
Definition: dc21x4.h:190
PDC_SROM_ENTRY SRomEntry
Definition: dc21x4.h:241
ULONG MediaNumber
Definition: dc21x4.h:174
NDIS_HANDLE AdapterHandle
Definition: dc21x4.h:158
NDIS_MINIPORT_TIMER MediaMonitorTimer
Definition: dc21x4.h:181
DC_TX_BUFFER_DATA SendBufferData[DC_TRANSMIT_BUFFERS]
Definition: dc21x4.h:253
LIST_ENTRY SendQueueList
Definition: dc21x4.h:136
UCHAR RevisionId
Definition: dc21x4.h:224
SINGLE_LIST_ENTRY UsedRcbList
Definition: dc21x4.h:230
PVOID LoopbackFrame[DC_LOOPBACK_FRAMES]
Definition: dc21x4.h:251
NDIS_MINIPORT_INTERRUPT Interrupt
Definition: dc21x4.h:231
ULONG InterruptVector
Definition: dc21x4.h:232
DECLSPEC_CACHEALIGN NDIS_SPIN_LOCK ReceiveLock
Definition: dc21x4.h:145
ULONG WakeUpFlags
Definition: dc21x4.h:192
ULONG BusMode
Definition: dc21x4.h:211
PDC_TCB LastTcb
Definition: dc21x4.h:131
NDIS_HANDLE PacketPool
Definition: dc21x4.h:248
USHORT DeviceId
Definition: dc21x4.h:228
ULONG LinkSpeedMbps
Definition: dc21x4.h:210
NDIS_PHYSICAL_ADDRESS RbdPhysOriginal
Definition: dc21x4.h:250
NDIS_WORK_ITEM PowerWorkItem
Definition: dc21x4.h:236
ULONG MiiControl
Definition: dc21x4.h:188
NDIS_DEVICE_POWER_STATE PrevPowerState
Definition: dc21x4.h:194
DC_MEDIA Media[MEDIA_LIST_MAX]
Definition: dc21x4.h:183
DC_CHIP_TYPE ChipType
Definition: dc21x4.h:189
UCHAR MacAddress[ETH_LENGTH_OF_ADDRESS]
Definition: dc21x4.h:207
UCHAR ControllerIndex
Definition: dc21x4.h:225
NDIS_WORK_ITEM TxRecoveryWorkItem
Definition: dc21x4.h:238
ULONG SiaSetting
Definition: dc21x4.h:178
NDIS_PHYSICAL_ADDRESS TbdPhysOriginal
Definition: dc21x4.h:249
ULONG LoopbackFramePhys[DC_LOOPBACK_FRAMES]
Definition: dc21x4.h:221
DC_MII_MEDIA MiiMedia
Definition: dc21x4.h:182
ULONG SymAdvertising
Definition: dc21x4.h:186
DECLSPEC_CACHEALIGN NDIS_SPIN_LOCK SendLock
Definition: dc21x4.h:129
SINGLE_LIST_ENTRY FreeRcbList
Definition: dc21x4.h:150
ULONG TbdSlots
Definition: dc21x4.h:138
SCATTER_GATHER_LIST LocalSgList
Definition: dc21x4.h:143
ULONG RbdPhys
Definition: dc21x4.h:246
ULONG HpnaInitBitmap
Definition: dc21x4.h:196
UCHAR DeviceNumber
Definition: dc21x4.h:223
DC_STATISTICS Statistics
Definition: dc21x4.h:156
ULONG Flags
Definition: dc21x4.h:119
ULONG LoopbackFrameSlots
Definition: dc21x4.h:219
Definition: eeprom.h:29
ULONG64 ReceiveOverrunErrors
Definition: dc21x4.h:95
ULONG64 TransmitErrors
Definition: dc21x4.h:85
ULONG64 TransmitOk
Definition: dc21x4.h:80
ULONG64 TransmitUnderrunErrors
Definition: dc21x4.h:87
ULONG64 ReceiveMulticast
Definition: dc21x4.h:92
ULONG64 TransmitExcessiveCollisions
Definition: dc21x4.h:86
ULONG64 ReceiveNoBuffers
Definition: dc21x4.h:96
ULONG64 TransmitDeferred
Definition: dc21x4.h:81
ULONG64 TransmitLostCarrierSense
Definition: dc21x4.h:88
ULONG64 ReceiveBroadcast
Definition: dc21x4.h:91
ULONG64 ReceiveUnicast
Definition: dc21x4.h:93
ULONG64 ReceiveOk
Definition: dc21x4.h:90
ULONG64 TransmitMoreCollisions
Definition: dc21x4.h:84
ULONG64 TransmitLateCollisions
Definition: dc21x4.h:89
ULONG64 ReceiveErrors
Definition: dc21x4.h:94
ULONG64 TransmitOneRetry
Definition: dc21x4.h:83
ULONG64 TransmitHeartbeatErrors
Definition: dc21x4.h:82
ULONG64 ReceiveAlignmentErrors
Definition: dc21x4.h:98
ULONG64 ReceiveCrcErrors
Definition: dc21x4.h:97
PVOID VirtualAddress
Definition: dc21x4.h:74
NDIS_PHYSICAL_ADDRESS PhysicalAddress
Definition: dc21x4.h:75
Definition: typedefs.h:120
Definition: ntbasedef.h:636
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
Definition: wdfdevice.h:3034
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
Definition: wdfiotarget.h:960
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
Definition: wdfiotarget.h:870
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
#define FORCEINLINE
Definition: wdftypes.h:67
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
Definition: wdfworkitem.h:115
struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST
Definition: iotypes.h:2204
unsigned char UCHAR
Definition: xmlstorage.h:181
#define const
Definition: zconf.h:233