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>
15 #include <ndk/halfuncs.h>
16 #include <ndk/kdfuncs.h>
21 #undef ExAcquireFastMutex
22 #undef ExReleaseFastMutex
23 #undef ExTryToAcquireFastMutex
25 /* DATA **********************************************************************/
27 ULONG KdComPortInUse
= 0;
29 /* FUNCTIONS *****************************************************************/
34 PDRIVER_OBJECT DriverObject
,
35 PUNICODE_STRING RegistryPath
)
39 return STATUS_SUCCESS
;
46 PFAST_MUTEX FastMutex
)
55 PFAST_MUTEX FastMutex
)
62 ExTryToAcquireFastMutex(
63 PFAST_MUTEX FastMutex
)
73 HalAcquireDisplayOwnership(
74 PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters
)
82 HalAdjustResourceList(
83 PCM_RESOURCE_LIST Resources
)
87 return STATUS_SUCCESS
;
93 HalAllProcessorsStarted(VOID
)
103 HalAllocateAdapterChannel(
104 PADAPTER_OBJECT AdapterObject
,
105 PWAIT_CONTEXT_BLOCK WaitContextBlock
,
106 ULONG NumberOfMapRegisters
,
107 PDRIVER_CONTROL ExecutionRoutine
)
111 return STATUS_SUCCESS
;
117 HalAllocateCommonBuffer(
118 PADAPTER_OBJECT AdapterObject
,
120 PPHYSICAL_ADDRESS LogicalAddress
,
121 BOOLEAN CacheEnabled
)
131 HalAssignSlotResources(
132 PUNICODE_STRING RegistryPath
,
133 PUNICODE_STRING DriverClassName
,
134 PDRIVER_OBJECT DriverObject
,
135 PDEVICE_OBJECT DeviceObject
,
136 INTERFACE_TYPE BusType
,
139 PCM_RESOURCE_LIST
*AllocatedResources
)
149 HalBeginSystemInterrupt (ULONG Vector
,
161 HalCalibratePerformanceCounter(
170 HalDisableSystemInterrupt(
191 HalEnableSystemInterrupt(
194 KINTERRUPT_MODE InterruptMode
)
204 HalEndSystemInterrupt(
214 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 HalQueryDisplayOwnership(VOID
)
374 HalQueryDisplayParameters(
375 OUT PULONG DispSizeX
,
376 OUT PULONG DispSizeY
,
377 OUT PULONG CursorPosX
,
378 OUT PULONG CursorPosY
)
386 HalQueryRealTimeClock(
396 PADAPTER_OBJECT AdapterObject
)
406 HalReleaseDisplayOwnership(VOID
)
413 HalReportResourceUsage(VOID
)
430 HalRequestSoftwareInterrupt(
440 FIRMWARE_REENTRY Action
)
449 BUS_DATA_TYPE BusDataType
,
463 HalSetBusDataByOffset(
464 BUS_DATA_TYPE BusDataType
,
479 HalSetDisplayParameters(
489 HalSetEnvironmentVariable(
510 HalStartNextProcessor(
522 HalSystemVectorDispatchEntry(
535 HalTranslateBusAddress(
536 INTERFACE_TYPE InterfaceType
,
538 PHYSICAL_ADDRESS BusAddress
,
540 PPHYSICAL_ADDRESS TranslatedAddress
)
550 IoAssignDriveLetters(
551 PLOADER_PARAMETER_BLOCK LoaderBlock
,
552 PSTRING NtDeviceName
,
554 PSTRING NtSystemPathString
)
562 IoFlushAdapterBuffers(
563 PADAPTER_OBJECT AdapterObject
,
565 PVOID MapRegisterBase
,
568 BOOLEAN WriteToDevice
)
578 IoFreeAdapterChannel(
579 PADAPTER_OBJECT AdapterObject
)
588 PADAPTER_OBJECT AdapterObject
,
589 PVOID MapRegisterBase
,
590 ULONG NumberOfMapRegisters
)
599 PADAPTER_OBJECT AdapterObject
,
601 PVOID MapRegisterBase
,
604 BOOLEAN WriteToDevice
)
606 PHYSICAL_ADDRESS Address
;
610 Address
.QuadPart
= 0;
630 PKD_PORT_INFORMATION PortInformation
,
642 PKD_PORT_INFORMATION PortInformation
,
655 PKD_PORT_INFORMATION PortInformation
,
679 PKD_PORT_INFORMATION PortInformation
,
700 PKD_PORT_INFORMATION PortInformation
,
725 KdPortDisableInterrupts()
735 KdPortEnableInterrupts()
742 #undef KeAcquireSpinLock
746 PKSPIN_LOCK SpinLock
,
755 KeAcquireSpinLockRaiseToSynch(
756 PKSPIN_LOCK SpinLock
)
766 KeAcquireInStackQueuedSpinLock(
767 IN PKSPIN_LOCK SpinLock
,
768 IN PKLOCK_QUEUE_HANDLE LockHandle
777 KeReleaseInStackQueuedSpinLock(
778 IN PKLOCK_QUEUE_HANDLE LockHandle
786 KeFlushWriteBuffer(VOID
)
791 #undef KeGetCurrentIrql
794 KeGetCurrentIrql(VOID
)
813 KeQueryPerformanceCounter(
814 PLARGE_INTEGER PerformanceFreq
)
838 KeRaiseIrqlToDpcLevel(VOID
)
848 KeRaiseIrqlToSynchLevel(VOID
)
855 #undef KeReleaseSpinLock
859 PKSPIN_LOCK SpinLock
,
868 KeStallExecutionProcessor(
878 PKSPIN_LOCK SpinLock
)
909 PKSPIN_LOCK SpinLock
,
918 READ_PORT_BUFFER_UCHAR(
929 READ_PORT_BUFFER_ULONG(
940 READ_PORT_BUFFER_USHORT(
984 WRITE_PORT_BUFFER_UCHAR(
995 WRITE_PORT_BUFFER_USHORT(
1006 WRITE_PORT_BUFFER_ULONG(