4 * Type definitions for miniport drivers
6 * This file is part of the w32api package.
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
30 #define EMULATOR_READ_ACCESS 0x01
31 #define EMULATOR_WRITE_ACCESS 0x02
33 typedef enum _EMULATOR_PORT_ACCESS_TYPE
{
37 } EMULATOR_PORT_ACCESS_TYPE
, *PEMULATOR_PORT_ACCESS_TYPE
;
40 typedef struct _EMULATOR_ACCESS_ENTRY
{
42 ULONG NumConsecutivePorts
;
43 EMULATOR_PORT_ACCESS_TYPE AccessType
;
47 } EMULATOR_ACCESS_ENTRY
, *PEMULATOR_ACCESS_ENTRY
;
50 (NTAPI
*PBANKED_SECTION_ROUTINE
)(
57 typedef enum _INTERFACE_TYPE
{
58 InterfaceTypeUndefined
= -1,
77 }INTERFACE_TYPE
, *PINTERFACE_TYPE
;
79 typedef enum _KINTERRUPT_MODE
{
84 typedef VOID (*PINTERFACE_REFERENCE
)(PVOID Context
);
85 typedef VOID (*PINTERFACE_DEREFERENCE
)(PVOID Context
);
87 typedef enum _BUS_DATA_TYPE
{
88 ConfigurationSpaceUndefined
= -1,
100 SgiInternalConfiguration
,
102 } BUS_DATA_TYPE
, *PBUS_DATA_TYPE
;
104 typedef enum _DMA_WIDTH
{
109 }DMA_WIDTH
, *PDMA_WIDTH
;
111 typedef enum _DMA_SPEED
{
118 }DMA_SPEED
, *PDMA_SPEED
;
120 typedef struct _INTERFACE
{
124 PINTERFACE_REFERENCE InterfaceReference
;
125 PINTERFACE_DEREFERENCE InterfaceDereference
;
126 } INTERFACE
, *PINTERFACE
;
128 typedef enum _IRQ_DEVICE_POLICY
{
129 IrqPolicyMachineDefault
= 0,
130 IrqPolicyAllCloseProcessors
,
131 IrqPolicyOneCloseProcessor
,
132 IrqPolicyAllProcessorsInMachine
,
133 IrqPolicySpecifiedProcessors
,
134 IrqPolicySpreadMessagesAcrossAllProcessors
135 } IRQ_DEVICE_POLICY
, *PIRQ_DEVICE_POLICY
;
137 typedef enum _IRQ_PRIORITY
{
138 IrqPriorityUndefined
= 0,
142 } IRQ_PRIORITY
, *PIRQ_PRIORITY
;
144 typedef struct _IO_RESOURCE_DESCRIPTOR
{
146 UCHAR Type
; // use CM_RESOURCE_TYPE
147 UCHAR ShareDisposition
; // use CM_SHARE_DISPOSITION
149 USHORT Flags
; // use CM resource flag defines
150 USHORT Spare2
; // align
156 PHYSICAL_ADDRESS MinimumAddress
;
157 PHYSICAL_ADDRESS MaximumAddress
;
163 PHYSICAL_ADDRESS MinimumAddress
;
164 PHYSICAL_ADDRESS MaximumAddress
;
170 IRQ_DEVICE_POLICY AffinityPolicy
;
171 IRQ_PRIORITY PriorityPolicy
;
172 KAFFINITY TargetedProcessors
;
176 ULONG MinimumChannel
;
177 ULONG MaximumChannel
;
183 PHYSICAL_ADDRESS MinimumAddress
;
184 PHYSICAL_ADDRESS MaximumAddress
;
192 // Bus Number information.
203 ULONG Priority
; // use LCPRI_Xxx values in cfg.h
209 // The following structures provide descriptions
210 // for memory resource requirement greater than MAXULONG
216 PHYSICAL_ADDRESS MinimumAddress
;
217 PHYSICAL_ADDRESS MaximumAddress
;
223 PHYSICAL_ADDRESS MinimumAddress
;
224 PHYSICAL_ADDRESS MaximumAddress
;
230 PHYSICAL_ADDRESS MinimumAddress
;
231 PHYSICAL_ADDRESS MaximumAddress
;
237 } IO_RESOURCE_DESCRIPTOR
, *PIO_RESOURCE_DESCRIPTOR
;
246 #endif /* __MINIPORT_H */