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>
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(
142 HalAssignSlotResources(
143 PUNICODE_STRING RegistryPath
,
144 PUNICODE_STRING DriverClassName
,
145 PDRIVER_OBJECT DriverObject
,
146 PDEVICE_OBJECT DeviceObject
,
147 INTERFACE_TYPE BusType
,
150 PCM_RESOURCE_LIST
*AllocatedResources
)
160 HalBeginSystemInterrupt (ULONG Vector
,
172 HalCalibratePerformanceCounter(
181 HalDisableSystemInterrupt(
202 HalEnableSystemInterrupt(
205 KINTERRUPT_MODE InterruptMode
)
215 HalEndSystemInterrupt(
225 HalFlushCommonBuffer(
241 PADAPTER_OBJECT AdapterObject
,
243 PHYSICAL_ADDRESS LogicalAddress
,
244 PVOID VirtualAddress
,
245 BOOLEAN CacheEnabled
)
254 PDEVICE_DESCRIPTION DeviceDescription
,
255 PULONG NumberOfMapRegisters
)
259 return (PADAPTER_OBJECT
)NULL
;
266 BUS_DATA_TYPE BusDataType
,
280 HalGetBusDataByOffset(
281 BUS_DATA_TYPE BusDataType
,
296 HalGetEnvironmentVariable(
309 HalGetInterruptVector(
310 INTERFACE_TYPE InterfaceType
,
312 ULONG BusInterruptLevel
,
313 ULONG BusInterruptVector
,
336 PLOADER_PARAMETER_BLOCK LoaderBlock
)
346 HalInitializeProcessor(ULONG ProcessorNumber
,
347 PLOADER_PARAMETER_BLOCK LoaderBlock
)
366 HalProcessorIdle(VOID
)
374 HalQueryDisplayOwnership(VOID
)
384 HalQueryDisplayParameters(
385 OUT PULONG DispSizeX
,
386 OUT PULONG DispSizeY
,
387 OUT PULONG CursorPosX
,
388 OUT PULONG CursorPosY
)
396 HalQueryRealTimeClock(
406 PADAPTER_OBJECT AdapterObject
)
416 HalReleaseDisplayOwnership(VOID
)
423 HalReportResourceUsage(VOID
)
440 HalRequestSoftwareInterrupt(
450 FIRMWARE_REENTRY Action
)
459 BUS_DATA_TYPE BusDataType
,
473 HalSetBusDataByOffset(
474 BUS_DATA_TYPE BusDataType
,
489 HalSetDisplayParameters(
499 HalSetEnvironmentVariable(
520 HalStartNextProcessor(
532 HalSystemVectorDispatchEntry(
545 HalTranslateBusAddress(
546 INTERFACE_TYPE InterfaceType
,
548 PHYSICAL_ADDRESS BusAddress
,
550 PPHYSICAL_ADDRESS TranslatedAddress
)
560 IoAssignDriveLetters(
561 PLOADER_PARAMETER_BLOCK LoaderBlock
,
562 PSTRING NtDeviceName
,
564 PSTRING NtSystemPathString
)
572 IoFlushAdapterBuffers(
573 PADAPTER_OBJECT AdapterObject
,
575 PVOID MapRegisterBase
,
578 BOOLEAN WriteToDevice
)
588 IoFreeAdapterChannel(
589 PADAPTER_OBJECT AdapterObject
)
598 PADAPTER_OBJECT AdapterObject
,
599 PVOID MapRegisterBase
,
600 ULONG NumberOfMapRegisters
)
609 PADAPTER_OBJECT AdapterObject
,
611 PVOID MapRegisterBase
,
614 BOOLEAN WriteToDevice
)
616 PHYSICAL_ADDRESS Address
;
620 Address
.QuadPart
= 0;
640 PKD_PORT_INFORMATION PortInformation
,
652 PKD_PORT_INFORMATION PortInformation
,
665 PKD_PORT_INFORMATION PortInformation
,
689 PKD_PORT_INFORMATION PortInformation
,
710 PKD_PORT_INFORMATION PortInformation
,
735 KdPortDisableInterrupts()
745 KdPortEnableInterrupts()
752 #undef KeAcquireSpinLock
756 PKSPIN_LOCK SpinLock
,
765 KeAcquireSpinLockRaiseToSynch(
766 PKSPIN_LOCK SpinLock
)
776 KeAcquireInStackQueuedSpinLock(
777 IN PKSPIN_LOCK SpinLock
,
778 IN PKLOCK_QUEUE_HANDLE LockHandle
787 KeReleaseInStackQueuedSpinLock(
788 IN PKLOCK_QUEUE_HANDLE LockHandle
796 KeFlushWriteBuffer(VOID
)
801 #undef KeGetCurrentIrql
804 KeGetCurrentIrql(VOID
)
823 KeQueryPerformanceCounter(
824 PLARGE_INTEGER PerformanceFreq
)
848 KeRaiseIrqlToDpcLevel(VOID
)
858 KeRaiseIrqlToSynchLevel(VOID
)
865 #undef KeReleaseSpinLock
869 PKSPIN_LOCK SpinLock
,
878 KeStallExecutionProcessor(
888 PKSPIN_LOCK SpinLock
)
919 PKSPIN_LOCK SpinLock
,
928 READ_PORT_BUFFER_UCHAR(
939 READ_PORT_BUFFER_ULONG(
950 READ_PORT_BUFFER_USHORT(
994 WRITE_PORT_BUFFER_UCHAR(
1005 WRITE_PORT_BUFFER_USHORT(
1016 WRITE_PORT_BUFFER_ULONG(