1 /* $Id: hal.c,v 1.6 2003/10/20 06:03:28 vizzini 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 PWAIT_CONTEXT_BLOCK WaitContextBlock
,
101 ULONG NumberOfMapRegisters
,
102 PDRIVER_CONTROL ExecutionRoutine
)
106 return STATUS_SUCCESS
;
112 HalAllocateCommonBuffer(
113 PADAPTER_OBJECT AdapterObject
,
115 PPHYSICAL_ADDRESS LogicalAddress
,
116 BOOLEAN CacheEnabled
)
126 HalAssignSlotResources(
127 PUNICODE_STRING RegistryPath
,
128 PUNICODE_STRING DriverClassName
,
129 PDRIVER_OBJECT DriverObject
,
130 PDEVICE_OBJECT DeviceObject
,
131 INTERFACE_TYPE BusType
,
134 PCM_RESOURCE_LIST
*AllocatedResources
)
144 HalBeginSystemInterrupt(
157 HalCalibratePerformanceCounter(
166 HalDisableSystemInterrupt(
187 HalEnableSystemInterrupt(
200 HalEndSystemInterrupt(
210 HalFlushCommonBuffer(
229 PADAPTER_OBJECT AdapterObject
,
231 PHYSICAL_ADDRESS LogicalAddress
,
232 PVOID VirtualAddress
,
233 BOOLEAN CacheEnabled
)
242 PDEVICE_DESCRIPTION DeviceDescription
,
243 PULONG NumberOfMapRegisters
)
247 return (PADAPTER_OBJECT
)NULL
;
254 BUS_DATA_TYPE BusDataType
,
268 HalGetBusDataByOffset(
269 BUS_DATA_TYPE BusDataType
,
284 HalGetEnvironmentVariable(
297 HalGetInterruptVector(
298 INTERFACE_TYPE InterfaceType
,
300 ULONG BusInterruptLevel
,
301 ULONG BusInterruptVector
,
324 PLOADER_PARAMETER_BLOCK LoaderBlock
)
334 HalInitializeProcessor(
335 ULONG ProcessorNumber
,
336 PVOID ProcessorStack
)
355 HalProcessorIdle(VOID
)
363 HalQueryDisplayParameters(
375 HalQueryRealTimeClock(
385 PADAPTER_OBJECT AdapterObject
)
393 HalReportResourceUsage(VOID
)
420 BUS_DATA_TYPE BusDataType
,
434 HalSetBusDataByOffset(
435 BUS_DATA_TYPE BusDataType
,
450 HalSetDisplayParameters(
460 HalSetEnvironmentVariable(
481 HalStartNextProcessor(
493 HalSystemVectorDispatchEntry(
506 HalTranslateBusAddress(
507 INTERFACE_TYPE InterfaceType
,
509 PHYSICAL_ADDRESS BusAddress
,
511 PPHYSICAL_ADDRESS TranslatedAddress
)
521 IoAssignDriveLetters(
522 PLOADER_PARAMETER_BLOCK LoaderBlock
,
523 PSTRING NtDeviceName
,
525 PSTRING NtSystemPathString
)
533 IoFlushAdapterBuffers(
534 PADAPTER_OBJECT AdapterObject
,
536 PVOID MapRegisterBase
,
539 BOOLEAN WriteToDevice
)
549 IoFreeAdapterChannel(
550 PADAPTER_OBJECT AdapterObject
)
559 PADAPTER_OBJECT AdapterObject
,
560 PVOID MapRegisterBase
,
561 ULONG NumberOfMapRegisters
)
570 PADAPTER_OBJECT AdapterObject
,
572 PVOID MapRegisterBase
,
575 BOOLEAN WriteToDevice
)
577 PHYSICAL_ADDRESS Address
;
581 Address
.QuadPart
= 0;
601 PKD_PORT_INFORMATION PortInformation
,
613 PKD_PORT_INFORMATION PortInformation
,
637 PKD_PORT_INFORMATION PortInformation
,
658 PKD_PORT_INFORMATION PortInformation
,
683 KdPortDisableInterrupts()
691 KdPortEnableInterrupts()
700 PKSPIN_LOCK SpinLock
,
709 KeAcquireSpinLockRaiseToSynch(
710 PKSPIN_LOCK SpinLock
)
718 KeFlushWriteBuffer(VOID
)
726 KeGetCurrentIrql(VOID
)
745 KeQueryPerformanceCounter(
746 PLARGE_INTEGER PerformanceFreq
)
770 KeRaiseIrqlToDpcLevel(VOID
)
780 KeRaiseIrqlToSynchLevel(VOID
)
791 PKSPIN_LOCK SpinLock
,
800 KeStallExecutionProcessor(
810 PKSPIN_LOCK SpinLock
)
841 PKSPIN_LOCK SpinLock
,
850 READ_PORT_BUFFER_UCHAR(
861 READ_PORT_BUFFER_ULONG(
872 READ_PORT_BUFFER_USHORT(
916 WRITE_PORT_BUFFER_UCHAR(
927 WRITE_PORT_BUFFER_USHORT(
938 WRITE_PORT_BUFFER_ULONG(