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>
17 #include <internal/debug.h>
21 typedef struct _LOADER_PARAMETER_BLOCK
*PLOADER_PARAMETER_BLOCK
;
22 typedef struct _KD_PORT_INFORMATION
*PKD_PORT_INFORMATION
;
24 /* DATA **********************************************************************/
26 ULONG KdComPortInUse
= 0;
28 /* FUNCTIONS *****************************************************************/
33 PDRIVER_OBJECT DriverObject
,
34 PUNICODE_STRING RegistryPath
)
38 return STATUS_SUCCESS
;
45 PFAST_MUTEX FastMutex
)
54 PFAST_MUTEX FastMutex
)
61 ExTryToAcquireFastMutex(
62 PFAST_MUTEX FastMutex
)
72 HalAcquireDisplayOwnership(
73 PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters
)
81 HalAdjustResourceList(
82 PCM_RESOURCE_LIST Resources
)
86 return STATUS_SUCCESS
;
92 HalAllProcessorsStarted(VOID
)
102 HalAllocateAdapterChannel(
103 PADAPTER_OBJECT AdapterObject
,
104 PWAIT_CONTEXT_BLOCK WaitContextBlock
,
105 ULONG NumberOfMapRegisters
,
106 PDRIVER_CONTROL ExecutionRoutine
)
110 return STATUS_SUCCESS
;
116 HalAllocateCommonBuffer(
117 PADAPTER_OBJECT AdapterObject
,
119 PPHYSICAL_ADDRESS LogicalAddress
,
120 BOOLEAN CacheEnabled
)
130 HalAssignSlotResources(
131 PUNICODE_STRING RegistryPath
,
132 PUNICODE_STRING DriverClassName
,
133 PDRIVER_OBJECT DriverObject
,
134 PDEVICE_OBJECT DeviceObject
,
135 INTERFACE_TYPE BusType
,
138 PCM_RESOURCE_LIST
*AllocatedResources
)
148 HalBeginSystemInterrupt (ULONG Vector
,
160 HalCalibratePerformanceCounter(
169 HalDisableSystemInterrupt(
190 HalEnableSystemInterrupt(
193 KINTERRUPT_MODE InterruptMode
)
203 HalEndSystemInterrupt(
213 HalFlushCommonBuffer(
232 PADAPTER_OBJECT AdapterObject
,
234 PHYSICAL_ADDRESS LogicalAddress
,
235 PVOID VirtualAddress
,
236 BOOLEAN CacheEnabled
)
245 PDEVICE_DESCRIPTION DeviceDescription
,
246 PULONG NumberOfMapRegisters
)
250 return (PADAPTER_OBJECT
)NULL
;
257 BUS_DATA_TYPE BusDataType
,
271 HalGetBusDataByOffset(
272 BUS_DATA_TYPE BusDataType
,
287 HalGetEnvironmentVariable(
300 HalGetInterruptVector(
301 INTERFACE_TYPE InterfaceType
,
303 ULONG BusInterruptLevel
,
304 ULONG BusInterruptVector
,
327 PLOADER_PARAMETER_BLOCK LoaderBlock
)
337 HalInitializeProcessor(
338 ULONG ProcessorNumber
,
339 PVOID ProcessorStack
)
358 HalProcessorIdle(VOID
)
366 HalQueryDisplayOwnership(VOID
)
376 HalQueryDisplayParameters(
377 OUT PULONG DispSizeX
,
378 OUT PULONG DispSizeY
,
379 OUT PULONG CursorPosX
,
380 OUT PULONG CursorPosY
)
388 HalQueryRealTimeClock(
398 PADAPTER_OBJECT AdapterObject
)
408 HalReleaseDisplayOwnership(VOID
)
415 HalReportResourceUsage(VOID
)
432 HalRequestSoftwareInterrupt(
451 BUS_DATA_TYPE BusDataType
,
465 HalSetBusDataByOffset(
466 BUS_DATA_TYPE BusDataType
,
481 HalSetDisplayParameters(
491 HalSetEnvironmentVariable(
512 HalStartNextProcessor(
524 HalSystemVectorDispatchEntry(
537 HalTranslateBusAddress(
538 INTERFACE_TYPE InterfaceType
,
540 PHYSICAL_ADDRESS BusAddress
,
542 PPHYSICAL_ADDRESS TranslatedAddress
)
552 IoAssignDriveLetters(
553 PLOADER_PARAMETER_BLOCK LoaderBlock
,
554 PSTRING NtDeviceName
,
556 PSTRING NtSystemPathString
)
564 IoFlushAdapterBuffers(
565 PADAPTER_OBJECT AdapterObject
,
567 PVOID MapRegisterBase
,
570 BOOLEAN WriteToDevice
)
580 IoFreeAdapterChannel(
581 PADAPTER_OBJECT AdapterObject
)
590 PADAPTER_OBJECT AdapterObject
,
591 PVOID MapRegisterBase
,
592 ULONG NumberOfMapRegisters
)
601 PADAPTER_OBJECT AdapterObject
,
603 PVOID MapRegisterBase
,
606 BOOLEAN WriteToDevice
)
608 PHYSICAL_ADDRESS Address
;
612 Address
.QuadPart
= 0;
632 PKD_PORT_INFORMATION PortInformation
,
644 PKD_PORT_INFORMATION PortInformation
,
657 PKD_PORT_INFORMATION PortInformation
,
681 PKD_PORT_INFORMATION PortInformation
,
702 PKD_PORT_INFORMATION PortInformation
,
727 KdPortDisableInterrupts()
737 KdPortEnableInterrupts()
744 #undef KeAcquireSpinLock
748 PKSPIN_LOCK SpinLock
,
757 KeAcquireSpinLockRaiseToSynch(
758 PKSPIN_LOCK SpinLock
)
768 KeAcquireInStackQueuedSpinLock(
769 IN PKSPIN_LOCK SpinLock
,
770 IN PKLOCK_QUEUE_HANDLE LockHandle
779 KeReleaseInStackQueuedSpinLock(
780 IN PKLOCK_QUEUE_HANDLE LockHandle
789 KeFlushWriteBuffer(VOID
)
794 #undef KeGetCurrentIrql
797 KeGetCurrentIrql(VOID
)
816 KeQueryPerformanceCounter(
817 PLARGE_INTEGER PerformanceFreq
)
841 KeRaiseIrqlToDpcLevel(VOID
)
851 KeRaiseIrqlToSynchLevel(VOID
)
858 #undef KeReleaseSpinLock
862 PKSPIN_LOCK SpinLock
,
871 KeStallExecutionProcessor(
881 PKSPIN_LOCK SpinLock
)
912 PKSPIN_LOCK SpinLock
,
921 READ_PORT_BUFFER_UCHAR(
932 READ_PORT_BUFFER_ULONG(
943 READ_PORT_BUFFER_USHORT(
987 WRITE_PORT_BUFFER_UCHAR(
998 WRITE_PORT_BUFFER_USHORT(
1009 WRITE_PORT_BUFFER_ULONG(