1 /* $Id: hal.c,v 1.2 2002/01/23 23:39:24 chorns Exp $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
6 * PURPOSE: Hardware Abstraction Layer DLL
7 * PROGRAMMER: Casper S. Hornstrup (chorns@users.sourceforge.net)
9 * 01-08-2001 CSH Created
12 /* INCLUDES ******************************************************************/
14 #include <ddk/ntddk.h>
18 #include <internal/debug.h>
20 /* DATA **********************************************************************/
22 ULONG EXPORTED KdComPortInUse
= 0;
24 /* FUNCTIONS *****************************************************************/
29 PDRIVER_OBJECT DriverObject
,
30 PUNICODE_STRING RegistryPath
)
34 return STATUS_SUCCESS
;
41 PFAST_MUTEX FastMutex
)
50 PFAST_MUTEX FastMutex
)
57 ExTryToAcquireFastMutex(
58 PFAST_MUTEX FastMutex
)
68 HalAcquireDisplayOwnership(
69 PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters
)
77 HalAdjustResourceList(
78 PCM_RESOURCE_LIST Resources
)
82 return STATUS_SUCCESS
;
88 HalAllProcessorsStarted(VOID
)
98 HalAllocateAdapterChannel(
99 PADAPTER_OBJECT AdapterObject
,
100 PDEVICE_OBJECT DeviceObject
,
101 ULONG NumberOfMapRegisters
,
102 PDRIVER_CONTROL ExecutionRoutine
,
107 return STATUS_SUCCESS
;
113 HalAllocateCommonBuffer(
114 PADAPTER_OBJECT AdapterObject
,
116 PPHYSICAL_ADDRESS LogicalAddress
,
117 BOOLEAN CacheEnabled
)
127 HalAssignSlotResources(
128 PUNICODE_STRING RegistryPath
,
129 PUNICODE_STRING DriverClassName
,
130 PDRIVER_OBJECT DriverObject
,
131 PDEVICE_OBJECT DeviceObject
,
132 INTERFACE_TYPE BusType
,
135 PCM_RESOURCE_LIST
*AllocatedResources
)
145 HalBeginSystemInterrupt(
158 HalCalibratePerformanceCounter(
167 HalDisableSystemInterrupt(
188 HalEnableSystemInterrupt(
201 HalEndSystemInterrupt(
211 HalFlushCommonBuffer(
230 PADAPTER_OBJECT AdapterObject
,
232 PHYSICAL_ADDRESS LogicalAddress
,
233 PVOID VirtualAddress
,
234 BOOLEAN CacheEnabled
)
243 PDEVICE_DESCRIPTION DeviceDescription
,
244 PULONG NumberOfMapRegisters
)
248 return (PADAPTER_OBJECT
)NULL
;
255 BUS_DATA_TYPE BusDataType
,
269 HalGetBusDataByOffset(
270 BUS_DATA_TYPE BusDataType
,
285 HalGetEnvironmentVariable(
298 HalGetInterruptVector(
299 INTERFACE_TYPE InterfaceType
,
301 ULONG BusInterruptLevel
,
302 ULONG BusInterruptVector
,
325 PLOADER_PARAMETER_BLOCK LoaderBlock
)
335 HalInitializeProcessor(
336 ULONG ProcessorNumber
,
337 PVOID ProcessorStack
)
356 HalProcessorIdle(VOID
)
364 HalQueryDisplayParameters(
376 HalQueryRealTimeClock(
386 PADAPTER_OBJECT AdapterObject
)
394 HalReportResourceUsage(VOID
)
421 BUS_DATA_TYPE BusDataType
,
435 HalSetBusDataByOffset(
436 BUS_DATA_TYPE BusDataType
,
451 HalSetDisplayParameters(
461 HalSetEnvironmentVariable(
482 HalStartNextProcessor(
494 HalSystemVectorDispatchEntry(
507 HalTranslateBusAddress(
508 INTERFACE_TYPE InterfaceType
,
510 PHYSICAL_ADDRESS BusAddress
,
512 PPHYSICAL_ADDRESS TranslatedAddress
)
522 IoAssignDriveLetters(
523 PLOADER_PARAMETER_BLOCK LoaderBlock
,
524 PSTRING NtDeviceName
,
526 PSTRING NtSystemPathString
)
534 IoFlushAdapterBuffers(
535 PADAPTER_OBJECT AdapterObject
,
537 PVOID MapRegisterBase
,
540 BOOLEAN WriteToDevice
)
550 IoFreeAdapterChannel(
551 PADAPTER_OBJECT AdapterObject
)
560 PADAPTER_OBJECT AdapterObject
,
561 PVOID MapRegisterBase
,
562 ULONG NumberOfMapRegisters
)
571 PADAPTER_OBJECT AdapterObject
,
573 PVOID MapRegisterBase
,
576 BOOLEAN WriteToDevice
)
578 PHYSICAL_ADDRESS Address
;
582 Address
.QuadPart
= 0;
602 PKD_PORT_INFORMATION PortInformation
,
650 KdPortDisableInterrupts()
658 KdPortEnableInterrupts()
667 PKSPIN_LOCK SpinLock
,
676 KeAcquireSpinLockRaiseToSynch(
677 PKSPIN_LOCK SpinLock
)
685 KeFlushWriteBuffer(VOID
)
693 KeGetCurrentIrql(VOID
)
712 KeQueryPerformanceCounter(
713 PLARGE_INTEGER PerformanceFreq
)
737 KeRaiseIrqlToDpcLevel(VOID
)
747 KeRaiseIrqlToSynchLevel(VOID
)
758 PKSPIN_LOCK SpinLock
,
767 KeStallExecutionProcessor(
777 PKSPIN_LOCK SpinLock
)
808 PKSPIN_LOCK SpinLock
,
817 READ_PORT_BUFFER_UCHAR(
828 READ_PORT_BUFFER_ULONG(
839 READ_PORT_BUFFER_USHORT(
883 WRITE_PORT_BUFFER_UCHAR(
894 WRITE_PORT_BUFFER_USHORT(
905 WRITE_PORT_BUFFER_ULONG(