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
155 PHYSICAL_ADDRESS MinimumAddress
;
156 PHYSICAL_ADDRESS MaximumAddress
;
161 PHYSICAL_ADDRESS MinimumAddress
;
162 PHYSICAL_ADDRESS MaximumAddress
;
167 IRQ_DEVICE_POLICY AffinityPolicy
;
168 IRQ_PRIORITY PriorityPolicy
;
169 KAFFINITY TargetedProcessors
;
172 ULONG MinimumChannel
;
173 ULONG MaximumChannel
;
178 PHYSICAL_ADDRESS MinimumAddress
;
179 PHYSICAL_ADDRESS MaximumAddress
;
185 // Bus Number information.
194 ULONG Priority
; // use LCPRI_Xxx values in cfg.h
199 // The following structures provide descriptions
200 // for memory resource requirement greater than MAXULONG
205 PHYSICAL_ADDRESS MinimumAddress
;
206 PHYSICAL_ADDRESS MaximumAddress
;
211 PHYSICAL_ADDRESS MinimumAddress
;
212 PHYSICAL_ADDRESS MaximumAddress
;
217 PHYSICAL_ADDRESS MinimumAddress
;
218 PHYSICAL_ADDRESS MaximumAddress
;
221 } IO_RESOURCE_DESCRIPTOR
, *PIO_RESOURCE_DESCRIPTOR
;
224 #endif /* ! __BROKEN__ */
230 #endif /* __MINIPORT_H */