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 HalAllocateCrashDumpRegisters(
141 HalAssignSlotResources(
142 PUNICODE_STRING RegistryPath
,
143 PUNICODE_STRING DriverClassName
,
144 PDRIVER_OBJECT DriverObject
,
145 PDEVICE_OBJECT DeviceObject
,
146 INTERFACE_TYPE BusType
,
149 PCM_RESOURCE_LIST
*AllocatedResources
)
159 HalBeginSystemInterrupt (ULONG Vector
,
171 HalCalibratePerformanceCounter(
180 HalDisableSystemInterrupt(
201 HalEnableSystemInterrupt(
204 KINTERRUPT_MODE InterruptMode
)
214 HalEndSystemInterrupt(
224 HalFlushCommonBuffer(
240 PADAPTER_OBJECT AdapterObject
,
242 PHYSICAL_ADDRESS LogicalAddress
,
243 PVOID VirtualAddress
,
244 BOOLEAN CacheEnabled
)
253 PDEVICE_DESCRIPTION DeviceDescription
,
254 PULONG NumberOfMapRegisters
)
258 return (PADAPTER_OBJECT
)NULL
;
265 BUS_DATA_TYPE BusDataType
,
279 HalGetBusDataByOffset(
280 BUS_DATA_TYPE BusDataType
,
295 HalGetEnvironmentVariable(
308 HalGetInterruptVector(
309 INTERFACE_TYPE InterfaceType
,
311 ULONG BusInterruptLevel
,
312 ULONG BusInterruptVector
,
335 PLOADER_PARAMETER_BLOCK LoaderBlock
)
345 HalInitializeProcessor(ULONG ProcessorNumber
,
346 PLOADER_PARAMETER_BLOCK LoaderBlock
)
365 HalProcessorIdle(VOID
)
373 HalQueryDisplayOwnership(VOID
)
383 HalQueryDisplayParameters(
384 OUT PULONG DispSizeX
,
385 OUT PULONG DispSizeY
,
386 OUT PULONG CursorPosX
,
387 OUT PULONG CursorPosY
)
395 HalQueryRealTimeClock(
405 PADAPTER_OBJECT AdapterObject
)
415 HalReleaseDisplayOwnership(VOID
)
422 HalReportResourceUsage(VOID
)
439 HalRequestSoftwareInterrupt(
449 FIRMWARE_REENTRY Action
)
458 BUS_DATA_TYPE BusDataType
,
472 HalSetBusDataByOffset(
473 BUS_DATA_TYPE BusDataType
,
488 HalSetDisplayParameters(
498 HalSetEnvironmentVariable(
519 HalStartNextProcessor(
531 HalSystemVectorDispatchEntry(
544 HalTranslateBusAddress(
545 INTERFACE_TYPE InterfaceType
,
547 PHYSICAL_ADDRESS BusAddress
,
549 PPHYSICAL_ADDRESS TranslatedAddress
)
559 IoAssignDriveLetters(
560 PLOADER_PARAMETER_BLOCK LoaderBlock
,
561 PSTRING NtDeviceName
,
563 PSTRING NtSystemPathString
)
571 IoFlushAdapterBuffers(
572 PADAPTER_OBJECT AdapterObject
,
574 PVOID MapRegisterBase
,
577 BOOLEAN WriteToDevice
)
587 IoFreeAdapterChannel(
588 PADAPTER_OBJECT AdapterObject
)
597 PADAPTER_OBJECT AdapterObject
,
598 PVOID MapRegisterBase
,
599 ULONG NumberOfMapRegisters
)
608 PADAPTER_OBJECT AdapterObject
,
610 PVOID MapRegisterBase
,
613 BOOLEAN WriteToDevice
)
615 PHYSICAL_ADDRESS Address
;
619 Address
.QuadPart
= 0;
639 PKD_PORT_INFORMATION PortInformation
,
651 PKD_PORT_INFORMATION PortInformation
,
664 PKD_PORT_INFORMATION PortInformation
,
688 PKD_PORT_INFORMATION PortInformation
,
709 PKD_PORT_INFORMATION PortInformation
,
734 KdPortDisableInterrupts()
744 KdPortEnableInterrupts()
751 #undef KeAcquireSpinLock
755 PKSPIN_LOCK SpinLock
,
764 KeAcquireSpinLockRaiseToSynch(
765 PKSPIN_LOCK SpinLock
)
775 KeAcquireInStackQueuedSpinLock(
776 IN PKSPIN_LOCK SpinLock
,
777 IN PKLOCK_QUEUE_HANDLE LockHandle
786 KeReleaseInStackQueuedSpinLock(
787 IN PKLOCK_QUEUE_HANDLE LockHandle
795 KeFlushWriteBuffer(VOID
)
800 #undef KeGetCurrentIrql
803 KeGetCurrentIrql(VOID
)
822 KeQueryPerformanceCounter(
823 PLARGE_INTEGER PerformanceFreq
)
847 KeRaiseIrqlToDpcLevel(VOID
)
857 KeRaiseIrqlToSynchLevel(VOID
)
864 #undef KeReleaseSpinLock
868 PKSPIN_LOCK SpinLock
,
877 KeStallExecutionProcessor(
887 PKSPIN_LOCK SpinLock
)
918 PKSPIN_LOCK SpinLock
,
927 READ_PORT_BUFFER_UCHAR(
938 READ_PORT_BUFFER_ULONG(
949 READ_PORT_BUFFER_USHORT(
993 WRITE_PORT_BUFFER_UCHAR(
1004 WRITE_PORT_BUFFER_USHORT(
1015 WRITE_PORT_BUFFER_ULONG(