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 ******************************************************************/
15 #include <ndk/halfuncs.h>
16 #include <ndk/kdfuncs.h>
18 #include <internal/kd.h>
23 #undef ExAcquireFastMutex
24 #undef ExReleaseFastMutex
25 #undef ExTryToAcquireFastMutex
27 /* DATA **********************************************************************/
29 ULONG KdComPortInUse
= 0;
31 /* FUNCTIONS *****************************************************************/
36 PDRIVER_OBJECT DriverObject
,
37 PUNICODE_STRING RegistryPath
)
41 return STATUS_SUCCESS
;
48 PFAST_MUTEX FastMutex
)
57 PFAST_MUTEX FastMutex
)
64 ExTryToAcquireFastMutex(
65 PFAST_MUTEX FastMutex
)
75 HalAcquireDisplayOwnership(
76 PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters
)
84 HalAdjustResourceList(
85 PCM_RESOURCE_LIST Resources
)
89 return STATUS_SUCCESS
;
95 HalAllProcessorsStarted(VOID
)
105 HalAllocateAdapterChannel(
106 PADAPTER_OBJECT AdapterObject
,
107 PWAIT_CONTEXT_BLOCK WaitContextBlock
,
108 ULONG NumberOfMapRegisters
,
109 PDRIVER_CONTROL ExecutionRoutine
)
113 return STATUS_SUCCESS
;
119 HalAllocateCommonBuffer(
120 PADAPTER_OBJECT AdapterObject
,
122 PPHYSICAL_ADDRESS LogicalAddress
,
123 BOOLEAN CacheEnabled
)
133 HalAllocateCrashDumpRegisters(
144 HalAssignSlotResources(
145 PUNICODE_STRING RegistryPath
,
146 PUNICODE_STRING DriverClassName
,
147 PDRIVER_OBJECT DriverObject
,
148 PDEVICE_OBJECT DeviceObject
,
149 INTERFACE_TYPE BusType
,
152 PCM_RESOURCE_LIST
*AllocatedResources
)
162 HalBeginSystemInterrupt (ULONG Vector
,
174 HalCalibratePerformanceCounter(
183 HalDisableSystemInterrupt(
204 HalEnableSystemInterrupt(
207 KINTERRUPT_MODE InterruptMode
)
217 HalEndSystemInterrupt(
227 HalFlushCommonBuffer(
243 PADAPTER_OBJECT AdapterObject
,
245 PHYSICAL_ADDRESS LogicalAddress
,
246 PVOID VirtualAddress
,
247 BOOLEAN CacheEnabled
)
256 PDEVICE_DESCRIPTION DeviceDescription
,
257 PULONG NumberOfMapRegisters
)
261 return (PADAPTER_OBJECT
)NULL
;
268 BUS_DATA_TYPE BusDataType
,
282 HalGetBusDataByOffset(
283 BUS_DATA_TYPE BusDataType
,
298 HalGetEnvironmentVariable(
311 HalGetInterruptVector(
312 INTERFACE_TYPE InterfaceType
,
314 ULONG BusInterruptLevel
,
315 ULONG BusInterruptVector
,
338 PROS_LOADER_PARAMETER_BLOCK LoaderBlock
)
348 HalInitializeProcessor(ULONG ProcessorNumber
,
349 PROS_LOADER_PARAMETER_BLOCK LoaderBlock
)
368 HalProcessorIdle(VOID
)
376 HalQueryDisplayOwnership(VOID
)
386 HalQueryDisplayParameters(
387 OUT PULONG DispSizeX
,
388 OUT PULONG DispSizeY
,
389 OUT PULONG CursorPosX
,
390 OUT PULONG CursorPosY
)
398 HalQueryRealTimeClock(
408 PADAPTER_OBJECT AdapterObject
)
418 HalReleaseDisplayOwnership(VOID
)
425 HalReportResourceUsage(VOID
)
442 HalRequestSoftwareInterrupt(
452 FIRMWARE_REENTRY Action
)
461 BUS_DATA_TYPE BusDataType
,
475 HalSetBusDataByOffset(
476 BUS_DATA_TYPE BusDataType
,
491 HalSetDisplayParameters(
501 HalSetEnvironmentVariable(
522 HalStartNextProcessor(
534 HalSystemVectorDispatchEntry(
547 HalTranslateBusAddress(
548 INTERFACE_TYPE InterfaceType
,
550 PHYSICAL_ADDRESS BusAddress
,
552 PPHYSICAL_ADDRESS TranslatedAddress
)
562 IoAssignDriveLetters(
563 PROS_LOADER_PARAMETER_BLOCK LoaderBlock
,
564 PSTRING NtDeviceName
,
566 PSTRING NtSystemPathString
)
574 IoFlushAdapterBuffers(
575 PADAPTER_OBJECT AdapterObject
,
577 PVOID MapRegisterBase
,
580 BOOLEAN WriteToDevice
)
590 IoFreeAdapterChannel(
591 PADAPTER_OBJECT AdapterObject
)
600 PADAPTER_OBJECT AdapterObject
,
601 PVOID MapRegisterBase
,
602 ULONG NumberOfMapRegisters
)
611 PADAPTER_OBJECT AdapterObject
,
613 PVOID MapRegisterBase
,
616 BOOLEAN WriteToDevice
)
618 PHYSICAL_ADDRESS Address
;
622 Address
.QuadPart
= 0;
642 PKD_PORT_INFORMATION PortInformation
,
654 PKD_PORT_INFORMATION PortInformation
,
667 PKD_PORT_INFORMATION PortInformation
,
691 PKD_PORT_INFORMATION PortInformation
,
712 PKD_PORT_INFORMATION PortInformation
,
737 KdPortDisableInterrupts()
747 KdPortEnableInterrupts()
754 #undef KeAcquireSpinLock
758 PKSPIN_LOCK SpinLock
,
767 KeAcquireSpinLockRaiseToSynch(
768 PKSPIN_LOCK SpinLock
)
778 KeAcquireInStackQueuedSpinLock(
779 IN PKSPIN_LOCK SpinLock
,
780 IN PKLOCK_QUEUE_HANDLE LockHandle
789 KeReleaseInStackQueuedSpinLock(
790 IN PKLOCK_QUEUE_HANDLE LockHandle
798 KeFlushWriteBuffer(VOID
)
803 #undef KeGetCurrentIrql
806 KeGetCurrentIrql(VOID
)
825 KeQueryPerformanceCounter(
826 PLARGE_INTEGER PerformanceFreq
)
850 KeRaiseIrqlToDpcLevel(VOID
)
860 KeRaiseIrqlToSynchLevel(VOID
)
867 #undef KeReleaseSpinLock
871 PKSPIN_LOCK SpinLock
,
880 KeStallExecutionProcessor(
890 PKSPIN_LOCK SpinLock
)
921 PKSPIN_LOCK SpinLock
,
930 READ_PORT_BUFFER_UCHAR(
941 READ_PORT_BUFFER_ULONG(
952 READ_PORT_BUFFER_USHORT(
996 WRITE_PORT_BUFFER_UCHAR(
1007 WRITE_PORT_BUFFER_USHORT(
1018 WRITE_PORT_BUFFER_ULONG(