2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: include/internal/hal/ddk.h
5 * PURPOSE: HAL provided defintions for device drivers
6 * PROGRAMMER: David Welch (welch@mcmail.com)
8 * 23/06/98: Taken from linux system.h
12 #ifndef __INCLUDE_INTERNAL_HAL_DDK_H
13 #define __INCLUDE_INTERNAL_HAL_DDK_H
15 #include <internal/ntoskrnl.h>
17 /* HalReturnToFirmware */
18 #define FIRMWARE_HALT 1
19 #define FIRMWARE_REBOOT 3
24 DEVICE_DESCRIPTION_VERSION
,
25 DEVICE_DESCRIPTION_VERSION1
,
28 typedef ULONG DMA_WIDTH
;
29 typedef ULONG DMA_SPEED
;
30 typedef ULONG BUS_DATA_TYPE
;
33 * PURPOSE: Types for HalGetBusData
44 typedef struct _DEVICE_DESCRIPTION
48 BOOLEAN ScatterGather
;
50 BOOLEAN AutoInitialize
;
51 BOOLEAN Dma32BitAddress
;
57 INTERFACE_TYPE InterfaceType
;
62 } DEVICE_DESCRIPTION
, *PDEVICE_DESCRIPTION
;
64 typedef BOOLEAN (*PHAL_RESET_DISPLAY_PARAMETERS
)(ULONG Columns
, ULONG Rows
);
67 VOID
HalAcquireDisplayOwnership (
68 PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters
);
70 PVOID
HalAllocateCommonBuffer(PADAPTER_OBJECT AdapterObject
,
72 PPHYSICAL_ADDRESS LogicalAddress
,
73 BOOLEAN CacheEnabled
);
75 NTSTATUS
HalAssignSlotResources(PUNICODE_STRING RegistryPath
,
76 PUNICODE_STRING DriverClassName
,
77 PDRIVER_OBJECT DriverObject
,
78 PDEVICE_OBJECT DeviceObject
,
79 INTERFACE_TYPE BusType
,
82 PCM_RESOURCE_LIST
* AllocatedResources
);
84 VOID
HalDisplayString (PCH String
);
86 VOID
HalExamineMBR(PDEVICE_OBJECT DeviceObject
,
88 ULONG MBRTypeIdentifier
,
91 VOID
HalFreeCommonBuffer(PADAPTER_OBJECT AdapterObject
,
93 PHYSICAL_ADDRESS LogicalAddress
,
95 BOOLEAN CacheEnabled
);
97 PADAPTER_OBJECT
HalGetAdapter(PDEVICE_DESCRIPTION DeviceDescription
,
98 PULONG NumberOfMapRegisters
);
100 ULONG
HalGetBusData(BUS_DATA_TYPE BusDataType
,
106 ULONG
HalGetBusDataByOffset(BUS_DATA_TYPE BusDataType
,
113 ULONG
HalGetDmaAlignmentRequirement(VOID
);
115 ULONG
HalGetInterruptVector(INTERFACE_TYPE InterfaceType
,
117 ULONG BusInterruptLevel
,
118 ULONG BusInterruptVector
,
120 PKAFFINITY Affinity
);
122 BOOLEAN
HalInitSystem (ULONG Phase
,
125 BOOLEAN
HalMakeBeep (ULONG Frequency
);
127 VOID
HalQueryDisplayParameters(PULONG DispSizeX
,
132 VOID
HalQueryRealTimeClock(PTIME_FIELDS pTime
);
133 VOID
HalSetRealTimeClock(PTIME_FIELDS Time
);
135 VOID
HalQuerySystemInformation(VOID
);
137 ULONG
HalReadDmaCounter(PADAPTER_OBJECT AdapterObject
);
139 VOID
HalReturnToFirmware(ULONG Action
);
141 ULONG
HalSetBusData(BUS_DATA_TYPE BusDataType
,
147 ULONG
HalSetBusDataByOffset(BUS_DATA_TYPE BusDataType
,
154 VOID
HalSetDisplayParameters(ULONG CursorPosX
,
157 BOOLEAN
HalTranslateBusAddress(INTERFACE_TYPE InterfaceType
,
159 PHYSICAL_ADDRESS BusAddress
,
161 PPHYSICAL_ADDRESS TranslatedAddress
);
164 * Kernel debugger section
167 typedef struct _KD_PORT_INFORMATION
172 } KD_PORT_INFORMATION
, *PKD_PORT_INFORMATION
;
175 extern ULONG KdComPortInUse
;
180 KdPortInitialize (PKD_PORT_INFORMATION PortInformation
,
186 KdPortPutByte (UCHAR ByteToSend
);
194 READ_PORT_BUFFER_UCHAR (PUCHAR Port
, PUCHAR Value
, ULONG Count
);
197 READ_PORT_BUFFER_ULONG (PULONG Port
, PULONG Value
, ULONG Count
);
200 READ_PORT_BUFFER_USHORT (PUSHORT Port
, PUSHORT Value
, ULONG Count
);
203 READ_PORT_UCHAR (PUCHAR Port
);
206 READ_PORT_ULONG (PULONG Port
);
209 READ_PORT_USHORT (PUSHORT Port
);
212 WRITE_PORT_BUFFER_UCHAR (PUCHAR Port
, PUCHAR Value
, ULONG Count
);
215 WRITE_PORT_BUFFER_ULONG (PULONG Port
, PULONG Value
, ULONG Count
);
218 WRITE_PORT_BUFFER_USHORT (PUSHORT Port
, PUSHORT Value
, ULONG Count
);
221 WRITE_PORT_UCHAR (PUCHAR Port
, UCHAR Value
);
224 WRITE_PORT_ULONG (PULONG Port
, ULONG Value
);
227 WRITE_PORT_USHORT (PUSHORT Port
, USHORT Value
);
230 #endif /* __INCLUDE_INTERNAL_HAL_DDK_H */