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)
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
;
66 } E1000_ADAPTER
, *PE1000_ADAPTER
;
72 IN PE1000_ADAPTER Adapter
);
76 NICInitializeAdapterResources(
77 IN PE1000_ADAPTER Adapter
,
78 IN PNDIS_RESOURCE_LIST ResourceList
);
82 NICAllocateIoResources(
83 IN PE1000_ADAPTER Adapter
);
87 NICRegisterInterrupts(
88 IN PE1000_ADAPTER Adapter
);
92 NICUnregisterInterrupts(
93 IN PE1000_ADAPTER Adapter
);
97 NICReleaseIoResources(
98 IN PE1000_ADAPTER Adapter
);
103 IN PE1000_ADAPTER Adapter
);
108 IN PE1000_ADAPTER Adapter
);
113 IN PE1000_ADAPTER Adapter
);
118 IN PE1000_ADAPTER Adapter
);
122 NICGetPermanentMacAddress(
123 IN PE1000_ADAPTER Adapter
,
124 OUT PUCHAR MacAddress
);
128 NICUpdateMulticastList(
129 IN PE1000_ADAPTER Adapter
);
133 NICApplyPacketFilter(
134 IN PE1000_ADAPTER Adapter
);
138 NICApplyInterruptMask(
139 IN PE1000_ADAPTER Adapter
);
143 NICDisableInterrupts(
144 IN PE1000_ADAPTER Adapter
);
148 NICInterruptRecognized(
149 IN PE1000_ADAPTER Adapter
,
150 OUT PBOOLEAN InterruptRecognized
);
154 NICAcknowledgeInterrupts(
155 IN PE1000_ADAPTER Adapter
);
160 IN PE1000_ADAPTER Adapter
);
165 IN PE1000_ADAPTER Adapter
,
167 IN ULONG PhysicalAddress
,
172 MiniportSetInformation(
173 IN NDIS_HANDLE MiniportAdapterContext
,
175 IN PVOID InformationBuffer
,
176 IN ULONG InformationBufferLength
,
177 OUT PULONG BytesRead
,
178 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
);
193 OUT PBOOLEAN InterruptRecognized
,
194 OUT PBOOLEAN QueueMiniportHandleInterrupt
,
195 IN NDIS_HANDLE MiniportAdapterContext
);
199 MiniportHandleInterrupt(
200 IN NDIS_HANDLE MiniportAdapterContext
);
202 #endif /* _E1000_PCH_ */