1 /* $Id: ddk.h,v 1.10 2000/03/04 20:45:33 ea Exp $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: include/internal/hal/ddk.h
6 * PURPOSE: HAL provided defintions for device drivers
7 * PROGRAMMER: David Welch (welch@mcmail.com)
9 * 23/06/98: Taken from linux system.h
13 #ifndef __INCLUDE_INTERNAL_HAL_DDK_H
14 #define __INCLUDE_INTERNAL_HAL_DDK_H
16 #include <internal/ntoskrnl.h>
18 /* HalReturnToFirmware */
19 #define FIRMWARE_HALT 1
20 #define FIRMWARE_REBOOT 3
25 DEVICE_DESCRIPTION_VERSION
,
26 DEVICE_DESCRIPTION_VERSION1
,
29 typedef ULONG DMA_WIDTH
;
30 typedef ULONG DMA_SPEED
;
31 typedef ULONG BUS_DATA_TYPE
;
34 * PURPOSE: Types for HalGetBusData
45 typedef struct _DEVICE_DESCRIPTION
49 BOOLEAN ScatterGather
;
51 BOOLEAN AutoInitialize
;
52 BOOLEAN Dma32BitAddress
;
58 INTERFACE_TYPE InterfaceType
;
63 } DEVICE_DESCRIPTION
, *PDEVICE_DESCRIPTION
;
65 typedef BOOLEAN (*PHAL_RESET_DISPLAY_PARAMETERS
)(ULONG Columns
, ULONG Rows
);
69 HalAcquireDisplayOwnership (
70 PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters
);
73 HalAllocateCommonBuffer(PADAPTER_OBJECT AdapterObject
,
75 PPHYSICAL_ADDRESS LogicalAddress
,
76 BOOLEAN CacheEnabled
);
79 HalAssignSlotResources(PUNICODE_STRING RegistryPath
,
80 PUNICODE_STRING DriverClassName
,
81 PDRIVER_OBJECT DriverObject
,
82 PDEVICE_OBJECT DeviceObject
,
83 INTERFACE_TYPE BusType
,
86 PCM_RESOURCE_LIST
* AllocatedResources
);
89 HalDisplayString (PCH String
);
92 HalExamineMBR(PDEVICE_OBJECT DeviceObject
,
94 ULONG MBRTypeIdentifier
,
98 HalFreeCommonBuffer(PADAPTER_OBJECT AdapterObject
,
100 PHYSICAL_ADDRESS LogicalAddress
,
101 PVOID VirtualAddress
,
102 BOOLEAN CacheEnabled
);
105 HalGetAdapter(PDEVICE_DESCRIPTION DeviceDescription
,
106 PULONG NumberOfMapRegisters
);
109 HalGetBusData(BUS_DATA_TYPE BusDataType
,
116 HalGetBusDataByOffset(BUS_DATA_TYPE BusDataType
,
124 HalGetDmaAlignmentRequirement(VOID
);
127 HalGetInterruptVector(INTERFACE_TYPE InterfaceType
,
129 ULONG BusInterruptLevel
,
130 ULONG BusInterruptVector
,
132 PKAFFINITY Affinity
);
135 HalInitSystem (ULONG Phase
,
139 HalMakeBeep (ULONG Frequency
);
142 HalQueryDisplayParameters(PULONG DispSizeX
,
148 HalQueryRealTimeClock(PTIME_FIELDS pTime
);
150 HalSetRealTimeClock(PTIME_FIELDS Time
);
153 HalQuerySystemInformation(VOID
);
156 HalReadDmaCounter(PADAPTER_OBJECT AdapterObject
);
159 HalReturnToFirmware(ULONG Action
);
162 HalSetBusData(BUS_DATA_TYPE BusDataType
,
169 HalSetBusDataByOffset(BUS_DATA_TYPE BusDataType
,
177 HalSetDisplayParameters(ULONG CursorPosX
,
181 HalTranslateBusAddress(INTERFACE_TYPE InterfaceType
,
183 PHYSICAL_ADDRESS BusAddress
,
185 PPHYSICAL_ADDRESS TranslatedAddress
);
188 * Kernel debugger section
191 typedef struct _KD_PORT_INFORMATION
196 } KD_PORT_INFORMATION
, *PKD_PORT_INFORMATION
;
199 #if defined(__HAL__) || defined(__NTOSKRNL__)
200 extern ULONG KdComPortInUse
__declspec(dllexport
);
202 extern ULONG KdComPortInUse
__declspec(dllimport
);
207 KdPortInitialize (PKD_PORT_INFORMATION PortInformation
,
213 KdPortPutByte (UCHAR ByteToSend
);
222 READ_PORT_BUFFER_UCHAR (PUCHAR Port
, PUCHAR Value
, ULONG Count
);
226 READ_PORT_BUFFER_ULONG (PULONG Port
, PULONG Value
, ULONG Count
);
230 READ_PORT_BUFFER_USHORT (PUSHORT Port
, PUSHORT Value
, ULONG Count
);
234 READ_PORT_UCHAR (PUCHAR Port
);
238 READ_PORT_ULONG (PULONG Port
);
242 READ_PORT_USHORT (PUSHORT Port
);
246 WRITE_PORT_BUFFER_UCHAR (PUCHAR Port
, PUCHAR Value
, ULONG Count
);
250 WRITE_PORT_BUFFER_ULONG (PULONG Port
, PULONG Value
, ULONG Count
);
254 WRITE_PORT_BUFFER_USHORT (PUSHORT Port
, PUSHORT Value
, ULONG Count
);
258 WRITE_PORT_UCHAR (PUCHAR Port
, UCHAR Value
);
262 WRITE_PORT_ULONG (PULONG Port
, ULONG Value
);
266 WRITE_PORT_USHORT (PUSHORT Port
, USHORT Value
);
269 #endif /* __INCLUDE_INTERNAL_HAL_DDK_H */