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 (ULONG Vector
,
156 HalCalibratePerformanceCounter(
165 HalDisableSystemInterrupt(
186 HalEnableSystemInterrupt(
189 KINTERRUPT_MODE InterruptMode
)
199 HalEndSystemInterrupt(
209 HalFlushCommonBuffer(
228 PADAPTER_OBJECT AdapterObject
,
230 PHYSICAL_ADDRESS LogicalAddress
,
231 PVOID VirtualAddress
,
232 BOOLEAN CacheEnabled
)
241 PDEVICE_DESCRIPTION DeviceDescription
,
242 PULONG NumberOfMapRegisters
)
246 return (PADAPTER_OBJECT
)NULL
;
253 BUS_DATA_TYPE BusDataType
,
267 HalGetBusDataByOffset(
268 BUS_DATA_TYPE BusDataType
,
283 HalGetEnvironmentVariable(
296 HalGetInterruptVector(
297 INTERFACE_TYPE InterfaceType
,
299 ULONG BusInterruptLevel
,
300 ULONG BusInterruptVector
,
323 PLOADER_PARAMETER_BLOCK LoaderBlock
)
333 HalInitializeProcessor(
334 ULONG ProcessorNumber
,
335 PVOID ProcessorStack
)
354 HalProcessorIdle(VOID
)
362 HalQueryDisplayOwnership(VOID
)
372 HalQueryDisplayParameters(
373 OUT PULONG DispSizeX
,
374 OUT PULONG DispSizeY
,
375 OUT PULONG CursorPosX
,
376 OUT PULONG CursorPosY
)
384 HalQueryRealTimeClock(
394 PADAPTER_OBJECT AdapterObject
)
404 HalReleaseDisplayOwnership(VOID
)
411 HalReportResourceUsage(VOID
)
428 HalRequestSoftwareInterrupt(
447 BUS_DATA_TYPE BusDataType
,
461 HalSetBusDataByOffset(
462 BUS_DATA_TYPE BusDataType
,
477 HalSetDisplayParameters(
487 HalSetEnvironmentVariable(
508 HalStartNextProcessor(
520 HalSystemVectorDispatchEntry(
533 HalTranslateBusAddress(
534 INTERFACE_TYPE InterfaceType
,
536 PHYSICAL_ADDRESS BusAddress
,
538 PPHYSICAL_ADDRESS TranslatedAddress
)
548 IoAssignDriveLetters(
549 PLOADER_PARAMETER_BLOCK LoaderBlock
,
550 PSTRING NtDeviceName
,
552 PSTRING NtSystemPathString
)
560 IoFlushAdapterBuffers(
561 PADAPTER_OBJECT AdapterObject
,
563 PVOID MapRegisterBase
,
566 BOOLEAN WriteToDevice
)
576 IoFreeAdapterChannel(
577 PADAPTER_OBJECT AdapterObject
)
586 PADAPTER_OBJECT AdapterObject
,
587 PVOID MapRegisterBase
,
588 ULONG NumberOfMapRegisters
)
597 PADAPTER_OBJECT AdapterObject
,
599 PVOID MapRegisterBase
,
602 BOOLEAN WriteToDevice
)
604 PHYSICAL_ADDRESS Address
;
608 Address
.QuadPart
= 0;
628 PKD_PORT_INFORMATION PortInformation
,
640 PKD_PORT_INFORMATION PortInformation
,
653 PKD_PORT_INFORMATION PortInformation
,
675 PKD_PORT_INFORMATION PortInformation
,
696 PKD_PORT_INFORMATION PortInformation
,
721 KdPortDisableInterrupts()
731 KdPortEnableInterrupts()
742 PKSPIN_LOCK SpinLock
,
751 KeAcquireSpinLockRaiseToSynch(
752 PKSPIN_LOCK SpinLock
)
762 KeAcquireInStackQueuedSpinLock(
763 IN PKSPIN_LOCK SpinLock
,
764 IN PKLOCK_QUEUE_HANDLE LockHandle
773 KeReleaseInStackQueuedSpinLock(
774 IN PKLOCK_QUEUE_HANDLE LockHandle
783 KeFlushWriteBuffer(VOID
)
788 #undef KeGetCurrentIrql
791 KeGetCurrentIrql(VOID
)
810 KeQueryPerformanceCounter(
811 PLARGE_INTEGER PerformanceFreq
)
835 KeRaiseIrqlToDpcLevel(VOID
)
845 KeRaiseIrqlToSynchLevel(VOID
)
856 PKSPIN_LOCK SpinLock
,
865 KeStallExecutionProcessor(
875 PKSPIN_LOCK SpinLock
)
906 PKSPIN_LOCK SpinLock
,
915 READ_PORT_BUFFER_UCHAR(
926 READ_PORT_BUFFER_ULONG(
937 READ_PORT_BUFFER_USHORT(
981 WRITE_PORT_BUFFER_UCHAR(
992 WRITE_PORT_BUFFER_USHORT(
1003 WRITE_PORT_BUFFER_ULONG(