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
;
49 #ifndef VIDEO_ACCESS_RANGE_DEFINED /* also in video.h */
50 #define VIDEO_ACCESS_RANGE_DEFINED
51 typedef struct _VIDEO_ACCESS_RANGE
{
52 PHYSICAL_ADDRESS RangeStart
;
58 } VIDEO_ACCESS_RANGE
, *PVIDEO_ACCESS_RANGE
;
62 (NTAPI
*PBANKED_SECTION_ROUTINE
)(
69 typedef enum _INTERFACE_TYPE
{
70 InterfaceTypeUndefined
= -1,
89 }INTERFACE_TYPE
, *PINTERFACE_TYPE
;
91 typedef enum _KINTERRUPT_MODE
{
96 typedef VOID (*PINTERFACE_REFERENCE
)(PVOID Context
);
97 typedef VOID (*PINTERFACE_DEREFERENCE
)(PVOID Context
);
99 typedef enum _BUS_DATA_TYPE
{
100 ConfigurationSpaceUndefined
= -1,
112 SgiInternalConfiguration
,
114 } BUS_DATA_TYPE
, *PBUS_DATA_TYPE
;
116 typedef enum _DMA_WIDTH
{
121 }DMA_WIDTH
, *PDMA_WIDTH
;
123 typedef enum _DMA_SPEED
{
130 }DMA_SPEED
, *PDMA_SPEED
;
132 typedef struct _INTERFACE
{
136 PINTERFACE_REFERENCE InterfaceReference
;
137 PINTERFACE_DEREFERENCE InterfaceDereference
;
138 } INTERFACE
, *PINTERFACE
;
140 typedef enum _IRQ_DEVICE_POLICY
{
141 IrqPolicyMachineDefault
= 0,
142 IrqPolicyAllCloseProcessors
,
143 IrqPolicyOneCloseProcessor
,
144 IrqPolicyAllProcessorsInMachine
,
145 IrqPolicySpecifiedProcessors
,
146 IrqPolicySpreadMessagesAcrossAllProcessors
147 } IRQ_DEVICE_POLICY
, *PIRQ_DEVICE_POLICY
;
149 typedef enum _IRQ_PRIORITY
{
150 IrqPriorityUndefined
= 0,
154 } IRQ_PRIORITY
, *PIRQ_PRIORITY
;
156 typedef struct _IO_RESOURCE_DESCRIPTOR
{
158 UCHAR Type
; // use CM_RESOURCE_TYPE
159 UCHAR ShareDisposition
; // use CM_SHARE_DISPOSITION
161 USHORT Flags
; // use CM resource flag defines
162 USHORT Spare2
; // align
168 PHYSICAL_ADDRESS MinimumAddress
;
169 PHYSICAL_ADDRESS MaximumAddress
;
175 PHYSICAL_ADDRESS MinimumAddress
;
176 PHYSICAL_ADDRESS MaximumAddress
;
182 IRQ_DEVICE_POLICY AffinityPolicy
;
183 IRQ_PRIORITY PriorityPolicy
;
184 KAFFINITY TargetedProcessors
;
188 ULONG MinimumChannel
;
189 ULONG MaximumChannel
;
195 PHYSICAL_ADDRESS MinimumAddress
;
196 PHYSICAL_ADDRESS MaximumAddress
;
204 // Bus Number information.
215 ULONG Priority
; // use LCPRI_Xxx values in cfg.h
221 // The following structures provide descriptions
222 // for memory resource requirement greater than MAXULONG
228 PHYSICAL_ADDRESS MinimumAddress
;
229 PHYSICAL_ADDRESS MaximumAddress
;
235 PHYSICAL_ADDRESS MinimumAddress
;
236 PHYSICAL_ADDRESS MaximumAddress
;
242 PHYSICAL_ADDRESS MinimumAddress
;
243 PHYSICAL_ADDRESS MaximumAddress
;
249 } IO_RESOURCE_DESCRIPTOR
, *PIO_RESOURCE_DESCRIPTOR
;
258 #endif /* __MINIPORT_H */