2 * PROJECT: ReactOS Intel PRO/1000 Driver
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Intel PRO/1000 driver definitions
5 * COPYRIGHT: Copyright 2013 Cameron Gutman (cameron.gutman@reactos.org)
6 * Copyright 2018 Mark Jansen (mark.jansen@reactos.org)
16 #define E1000_TAG '001e'
18 #define MAXIMUM_FRAME_SIZE 1522
19 #define RECEIVE_BUFFER_SIZE 2048
21 #define DRIVER_VERSION 1
24 #define DEFAULT_INTERRUPT_MASK (E1000_IMS_LSC | E1000_IMS_TXDW | E1000_IMS_RXDMT0 | E1000_IMS_RXT0)
26 typedef struct _E1000_ADAPTER
29 NDIS_HANDLE AdapterHandle
;
33 USHORT SubsystemVendorID
;
35 UCHAR PermanentMacAddress
[IEEE_802_ADDR_LENGTH
];
37 UCHAR MacAddress
[IEEE_802_ADDR_LENGTH
];
38 } MulticastList
[MAXIMUM_MULTICAST_ADDRESSES
];
47 volatile PUCHAR IoPort
;
50 NDIS_PHYSICAL_ADDRESS IoAddress
;
52 volatile PUCHAR IoBase
;
55 ULONG InterruptVector
;
57 BOOLEAN InterruptShared
;
60 NDIS_MINIPORT_INTERRUPT Interrupt
;
61 BOOLEAN InterruptRegistered
;
64 ULONG InterruptPending
;
68 PE1000_TRANSMIT_DESCRIPTOR TransmitDescriptors
;
69 NDIS_PHYSICAL_ADDRESS TransmitDescriptorsPa
;
77 PE1000_RECEIVE_DESCRIPTOR ReceiveDescriptors
;
78 NDIS_PHYSICAL_ADDRESS ReceiveDescriptorsPa
;
82 E1000_RCVBUF_SIZE ReceiveBufferType
;
83 volatile PUCHAR ReceiveBuffer
;
84 NDIS_PHYSICAL_ADDRESS ReceiveBufferPa
;
85 ULONG ReceiveBufferEntrySize
;
87 } E1000_ADAPTER
, *PE1000_ADAPTER
;
93 IN PE1000_ADAPTER Adapter
);
97 NICInitializeAdapterResources(
98 IN PE1000_ADAPTER Adapter
,
99 IN PNDIS_RESOURCE_LIST ResourceList
);
103 NICAllocateIoResources(
104 IN PE1000_ADAPTER Adapter
);
108 NICRegisterInterrupts(
109 IN PE1000_ADAPTER Adapter
);
113 NICUnregisterInterrupts(
114 IN PE1000_ADAPTER Adapter
);
118 NICReleaseIoResources(
119 IN PE1000_ADAPTER Adapter
);
124 IN PE1000_ADAPTER Adapter
);
129 IN PE1000_ADAPTER Adapter
);
134 IN PE1000_ADAPTER Adapter
);
139 IN PE1000_ADAPTER Adapter
);
143 NICGetPermanentMacAddress(
144 IN PE1000_ADAPTER Adapter
,
145 OUT PUCHAR MacAddress
);
149 NICUpdateMulticastList(
150 IN PE1000_ADAPTER Adapter
);
154 NICApplyPacketFilter(
155 IN PE1000_ADAPTER Adapter
);
159 NICApplyInterruptMask(
160 IN PE1000_ADAPTER Adapter
);
164 NICDisableInterrupts(
165 IN PE1000_ADAPTER Adapter
);
169 NICInterruptRecognized(
170 IN PE1000_ADAPTER Adapter
,
171 OUT PBOOLEAN InterruptRecognized
);
176 IN PE1000_ADAPTER Adapter
);
181 IN PE1000_ADAPTER Adapter
,
182 IN ULONG PhysicalAddress
,
187 MiniportSetInformation(
188 IN NDIS_HANDLE MiniportAdapterContext
,
190 IN PVOID InformationBuffer
,
191 IN ULONG InformationBufferLength
,
192 OUT PULONG BytesRead
,
193 OUT PULONG BytesNeeded
);
197 MiniportQueryInformation(
198 IN NDIS_HANDLE MiniportAdapterContext
,
200 IN PVOID InformationBuffer
,
201 IN ULONG InformationBufferLength
,
202 OUT PULONG BytesWritten
,
203 OUT PULONG BytesNeeded
);
208 OUT PBOOLEAN InterruptRecognized
,
209 OUT PBOOLEAN QueueMiniportHandleInterrupt
,
210 IN NDIS_HANDLE MiniportAdapterContext
);
214 MiniportHandleInterrupt(
215 IN NDIS_HANDLE MiniportAdapterContext
);
221 IN PE1000_ADAPTER Adapter
,
227 #endif /* _E1000_PCH_ */