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)
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
;
75 } E1000_ADAPTER
, *PE1000_ADAPTER
;
81 IN PE1000_ADAPTER Adapter
);
85 NICInitializeAdapterResources(
86 IN PE1000_ADAPTER Adapter
,
87 IN PNDIS_RESOURCE_LIST ResourceList
);
91 NICAllocateIoResources(
92 IN PE1000_ADAPTER Adapter
);
96 NICRegisterInterrupts(
97 IN PE1000_ADAPTER Adapter
);
101 NICUnregisterInterrupts(
102 IN PE1000_ADAPTER Adapter
);
106 NICReleaseIoResources(
107 IN PE1000_ADAPTER Adapter
);
112 IN PE1000_ADAPTER Adapter
);
117 IN PE1000_ADAPTER Adapter
);
122 IN PE1000_ADAPTER Adapter
);
127 IN PE1000_ADAPTER Adapter
);
131 NICGetPermanentMacAddress(
132 IN PE1000_ADAPTER Adapter
,
133 OUT PUCHAR MacAddress
);
137 NICUpdateMulticastList(
138 IN PE1000_ADAPTER Adapter
);
142 NICApplyPacketFilter(
143 IN PE1000_ADAPTER Adapter
);
147 NICApplyInterruptMask(
148 IN PE1000_ADAPTER Adapter
);
152 NICDisableInterrupts(
153 IN PE1000_ADAPTER Adapter
);
157 NICInterruptRecognized(
158 IN PE1000_ADAPTER Adapter
,
159 OUT PBOOLEAN InterruptRecognized
);
164 IN PE1000_ADAPTER Adapter
);
169 IN PE1000_ADAPTER Adapter
,
170 IN ULONG PhysicalAddress
,
175 MiniportSetInformation(
176 IN NDIS_HANDLE MiniportAdapterContext
,
178 IN PVOID InformationBuffer
,
179 IN ULONG InformationBufferLength
,
180 OUT PULONG BytesRead
,
181 OUT PULONG BytesNeeded
);
185 MiniportQueryInformation(
186 IN NDIS_HANDLE MiniportAdapterContext
,
188 IN PVOID InformationBuffer
,
189 IN ULONG InformationBufferLength
,
190 OUT PULONG BytesWritten
,
191 OUT PULONG BytesNeeded
);
196 OUT PBOOLEAN InterruptRecognized
,
197 OUT PBOOLEAN QueueMiniportHandleInterrupt
,
198 IN NDIS_HANDLE MiniportAdapterContext
);
202 MiniportHandleInterrupt(
203 IN NDIS_HANDLE MiniportAdapterContext
);
205 #endif /* _E1000_PCH_ */