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/ntndk.h>
20 /* DATA **********************************************************************/
22 ULONG 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(
225 PADAPTER_OBJECT AdapterObject
,
227 PHYSICAL_ADDRESS LogicalAddress
,
228 PVOID VirtualAddress
,
229 BOOLEAN CacheEnabled
)
238 PDEVICE_DESCRIPTION DeviceDescription
,
239 PULONG NumberOfMapRegisters
)
243 return (PADAPTER_OBJECT
)NULL
;
250 BUS_DATA_TYPE BusDataType
,
264 HalGetBusDataByOffset(
265 BUS_DATA_TYPE BusDataType
,
280 HalGetEnvironmentVariable(
293 HalGetInterruptVector(
294 INTERFACE_TYPE InterfaceType
,
296 ULONG BusInterruptLevel
,
297 ULONG BusInterruptVector
,
320 PLOADER_PARAMETER_BLOCK LoaderBlock
)
330 HalInitializeProcessor(
331 ULONG ProcessorNumber
,
332 PVOID ProcessorStack
)
351 HalProcessorIdle(VOID
)
359 HalQueryDisplayOwnership(VOID
)
369 HalQueryDisplayParameters(
370 OUT PULONG DispSizeX
,
371 OUT PULONG DispSizeY
,
372 OUT PULONG CursorPosX
,
373 OUT PULONG CursorPosY
)
381 HalQueryRealTimeClock(
391 PADAPTER_OBJECT AdapterObject
)
401 HalReleaseDisplayOwnership(VOID
)
408 HalReportResourceUsage(VOID
)
425 HalRequestSoftwareInterrupt(
435 FIRMWARE_REENTRY Action
)
444 BUS_DATA_TYPE BusDataType
,
458 HalSetBusDataByOffset(
459 BUS_DATA_TYPE BusDataType
,
474 HalSetDisplayParameters(
484 HalSetEnvironmentVariable(
505 HalStartNextProcessor(
517 HalSystemVectorDispatchEntry(
530 HalTranslateBusAddress(
531 INTERFACE_TYPE InterfaceType
,
533 PHYSICAL_ADDRESS BusAddress
,
535 PPHYSICAL_ADDRESS TranslatedAddress
)
545 IoAssignDriveLetters(
546 PLOADER_PARAMETER_BLOCK LoaderBlock
,
547 PSTRING NtDeviceName
,
549 PSTRING NtSystemPathString
)
557 IoFlushAdapterBuffers(
558 PADAPTER_OBJECT AdapterObject
,
560 PVOID MapRegisterBase
,
563 BOOLEAN WriteToDevice
)
573 IoFreeAdapterChannel(
574 PADAPTER_OBJECT AdapterObject
)
583 PADAPTER_OBJECT AdapterObject
,
584 PVOID MapRegisterBase
,
585 ULONG NumberOfMapRegisters
)
594 PADAPTER_OBJECT AdapterObject
,
596 PVOID MapRegisterBase
,
599 BOOLEAN WriteToDevice
)
601 PHYSICAL_ADDRESS Address
;
605 Address
.QuadPart
= 0;
625 PKD_PORT_INFORMATION PortInformation
,
637 PKD_PORT_INFORMATION PortInformation
,
650 PKD_PORT_INFORMATION PortInformation
,
674 PKD_PORT_INFORMATION PortInformation
,
695 PKD_PORT_INFORMATION PortInformation
,
720 KdPortDisableInterrupts()
730 KdPortEnableInterrupts()
737 #undef KeAcquireSpinLock
741 PKSPIN_LOCK SpinLock
,
750 KeAcquireSpinLockRaiseToSynch(
751 PKSPIN_LOCK SpinLock
)
761 KeAcquireInStackQueuedSpinLock(
762 IN PKSPIN_LOCK SpinLock
,
763 IN PKLOCK_QUEUE_HANDLE LockHandle
772 KeReleaseInStackQueuedSpinLock(
773 IN PKLOCK_QUEUE_HANDLE LockHandle
782 KeFlushWriteBuffer(VOID
)
787 #undef KeGetCurrentIrql
790 KeGetCurrentIrql(VOID
)
809 KeQueryPerformanceCounter(
810 PLARGE_INTEGER PerformanceFreq
)
834 KeRaiseIrqlToDpcLevel(VOID
)
844 KeRaiseIrqlToSynchLevel(VOID
)
851 #undef KeReleaseSpinLock
855 PKSPIN_LOCK SpinLock
,
864 KeStallExecutionProcessor(
874 PKSPIN_LOCK SpinLock
)
905 PKSPIN_LOCK SpinLock
,
914 READ_PORT_BUFFER_UCHAR(
925 READ_PORT_BUFFER_ULONG(
936 READ_PORT_BUFFER_USHORT(
980 WRITE_PORT_BUFFER_UCHAR(
991 WRITE_PORT_BUFFER_USHORT(
1002 WRITE_PORT_BUFFER_ULONG(