2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Realtek 8139 driver
5 * PURPOSE: RTL8139 driver definitions
11 #define ADAPTER_TAG 'Altr'
12 #define RESOURCE_LIST_TAG 'Rltr'
14 #define MAX_RESET_ATTEMPTS 25
15 #define RECEIVE_BUFFER_SIZE (32768)
16 // The full receive window requires 16 bytes of padding
17 // plus 2048 for receive overflows (because of WRAP)
18 #define FULL_RECEIVE_BUFFER_SIZE (32768 + 16 + 2048)
19 #define RECV_CRC_LENGTH 4
21 #define MINIMUM_FRAME_SIZE 60
22 #define MAXIMUM_FRAME_SIZE 1514
24 #define DRIVER_VERSION 1
26 // 1/2 packet early RX, 512 byte FIFO threshold, 32K RX buffer, unlimited DMA bursts, WRAP
27 #define RC_VAL (0x800B780)
29 // 2048 byte DMA bursts
30 #define TC_VAL (0x700)
32 typedef struct _RTL_ADAPTER
{
33 NDIS_HANDLE MiniportAdapterHandle
;
39 ULONG InterruptVector
;
41 BOOLEAN InterruptShared
;
45 NDIS_MINIPORT_INTERRUPT Interrupt
;
46 BOOLEAN InterruptRegistered
;
48 UCHAR PermanentMacAddress
[IEEE_802_ADDR_LENGTH
];
49 UCHAR CurrentMacAddress
[IEEE_802_ADDR_LENGTH
];
51 UCHAR MacAddress
[IEEE_802_ADDR_LENGTH
];
52 } MulticastList
[MAXIMUM_MULTICAST_ADDRESSES
];
54 ULONG ReceiveBufferLength
;
56 NDIS_PHYSICAL_ADDRESS ReceiveBufferPa
;
66 USHORT InterruptPending
;
72 NDIS_PHYSICAL_ADDRESS RuntTxBuffersPa
;
78 ULONG ReceiveNoBufferSpace
;
79 ULONG ReceiveCrcError
;
80 ULONG ReceiveAlignmentError
;
81 ULONG TransmitOneCollision
;
82 ULONG TransmitMoreCollisions
;
84 } RTL_ADAPTER
, *PRTL_ADAPTER
;
89 IN PRTL_ADAPTER Adapter
95 IN PRTL_ADAPTER Adapter
100 NICRegisterReceiveBuffer (
101 IN PRTL_ADAPTER Adapter
106 NICRemoveReceiveBuffer (
107 IN PRTL_ADAPTER Adapter
113 IN PRTL_ADAPTER Adapter
118 NICGetPermanentMacAddress (
119 IN PRTL_ADAPTER Adapter
,
120 OUT PUCHAR MacAddress
125 NICApplyPacketFilter (
126 IN PRTL_ADAPTER Adapter
131 NICApplyInterruptMask (
132 IN PRTL_ADAPTER Adapter
137 NICDisableInterrupts (
138 IN PRTL_ADAPTER Adapter
143 NICInterruptRecognized (
144 IN PRTL_ADAPTER Adapter
,
145 OUT PBOOLEAN InterruptRecognized
150 NICAcknowledgeInterrupts (
151 IN PRTL_ADAPTER Adapter
156 NICUpdateLinkStatus (
157 IN PRTL_ADAPTER Adapter
163 IN PRTL_ADAPTER Adapter
,
165 IN ULONG PhysicalAddress
,
171 MiniportSetInformation (
172 IN NDIS_HANDLE MiniportAdapterContext
,
174 IN PVOID InformationBuffer
,
175 IN ULONG InformationBufferLength
,
176 OUT PULONG BytesRead
,
177 OUT PULONG BytesNeeded
182 MiniportQueryInformation (
183 IN NDIS_HANDLE MiniportAdapterContext
,
185 IN PVOID InformationBuffer
,
186 IN ULONG InformationBufferLength
,
187 OUT PULONG BytesWritten
,
188 OUT PULONG BytesNeeded
194 OUT PBOOLEAN InterruptRecognized
,
195 OUT PBOOLEAN QueueMiniportHandleInterrupt
,
196 IN NDIS_HANDLE MiniportAdapterContext
201 MiniportHandleInterrupt (
202 IN NDIS_HANDLE MiniportAdapterContext