-/* $Id$
- *
+/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: hal/hal.c
/* INCLUDES ******************************************************************/
-#include <ddk/ntddk.h>
-#include <roscfg.h>
+#include <ntddk.h>
+#include <ntdddisk.h>
+#include <arc/arc.h>
+#include <intrin.h>
+#include <ndk/halfuncs.h>
+#include <ndk/iofuncs.h>
+#include <ndk/kdfuncs.h>
#define NDEBUG
-#include <internal/debug.h>
+#include <debug.h>
+
+#undef ExAcquireFastMutex
+#undef ExReleaseFastMutex
+#undef ExTryToAcquireFastMutex
/* DATA **********************************************************************/
-ULONG EXPORTED KdComPortInUse = 0;
+ULONG _KdComPortInUse = 0;
/* FUNCTIONS *****************************************************************/
NTSTATUS
-STDCALL
+NTAPI
DriverEntry(
PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath)
return STATUS_SUCCESS;
}
+/*
+* @unimplemented
+*/
+VOID
+NTAPI
+HalStopProfileInterrupt(IN KPROFILE_SOURCE ProfileSource)
+{
+ KEBUGCHECK(0);
+ return;
+}
+
+/*
+* @unimplemented
+*/
+VOID
+NTAPI
+HalStartProfileInterrupt(IN KPROFILE_SOURCE ProfileSource)
+{
+ KEBUGCHECK(0);
+ return;
+}
+/*
+* @unimplemented
+*/
+ULONG_PTR
+NTAPI
+HalSetProfileInterval(IN ULONG_PTR Interval)
+{
+ KEBUGCHECK(0);
+ return Interval;
+}
+#if 0
VOID
FASTCALL
ExAcquireFastMutex(
return TRUE;
}
-
+#endif
VOID
-STDCALL
+NTAPI
HalAcquireDisplayOwnership(
PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters)
{
NTSTATUS
-STDCALL
+NTAPI
HalAdjustResourceList(
PCM_RESOURCE_LIST Resources)
{
BOOLEAN
-STDCALL
+NTAPI
HalAllProcessorsStarted(VOID)
{
UNIMPLEMENTED;
NTSTATUS
-STDCALL
+NTAPI
HalAllocateAdapterChannel(
PADAPTER_OBJECT AdapterObject,
PWAIT_CONTEXT_BLOCK WaitContextBlock,
PVOID
-STDCALL
+NTAPI
HalAllocateCommonBuffer(
PADAPTER_OBJECT AdapterObject,
ULONG Length,
}
+PVOID
+NTAPI
+HalAllocateCrashDumpRegisters(
+ PADAPTER_OBJECT AdapterObject,
+ PULONG NumberOfMapRegisters)
+{
+ UNIMPLEMENTED;
+ return NULL;
+}
+
+
NTSTATUS
-STDCALL
+NTAPI
HalAssignSlotResources(
PUNICODE_STRING RegistryPath,
PUNICODE_STRING DriverClassName,
}
-BOOLEAN
-STDCALL
-HalBeginSystemInterrupt (ULONG Vector,
- KIRQL Irql,
+BOOLEAN
+NTAPI
+HalBeginSystemInterrupt (KIRQL Irql,
+ ULONG Vector,
PKIRQL OldIrql)
{
UNIMPLEMENTED;
VOID
-STDCALL
+NTAPI
HalCalibratePerformanceCounter(
- ULONG Count)
+ volatile LONG *Count,
+ ULONGLONG NewCount)
{
UNIMPLEMENTED;
}
BOOLEAN
-STDCALL
+NTAPI
HalDisableSystemInterrupt(
ULONG Vector,
KIRQL Irql)
VOID
-STDCALL
+NTAPI
HalDisplayString(
PCH String)
{
BOOLEAN
-STDCALL
+NTAPI
HalEnableSystemInterrupt(
ULONG Vector,
KIRQL Irql,
VOID
-STDCALL
+NTAPI
HalEndSystemInterrupt(
KIRQL Irql,
ULONG Unknown2)
BOOLEAN
-STDCALL
+NTAPI
HalFlushCommonBuffer(
ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4,
- ULONG Unknown5,
- ULONG Unknown6,
- ULONG Unknown7,
- ULONG Unknown8)
+ ULONG Unknown5)
{
UNIMPLEMENTED;
VOID
-STDCALL
+NTAPI
HalFreeCommonBuffer(
PADAPTER_OBJECT AdapterObject,
ULONG Length,
PADAPTER_OBJECT
-STDCALL
+NTAPI
HalGetAdapter(
PDEVICE_DESCRIPTION DeviceDescription,
PULONG NumberOfMapRegisters)
ULONG
-STDCALL
+NTAPI
HalGetBusData(
BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG
-STDCALL
+NTAPI
HalGetBusDataByOffset(
BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
}
-BOOLEAN
-STDCALL
+ARC_STATUS
+NTAPI
HalGetEnvironmentVariable(
PCH Name,
- PCH Value,
- USHORT ValueLength)
+ USHORT ValueLength,
+ PCH Value)
{
UNIMPLEMENTED;
- return FALSE;
+ return ENOENT;
}
ULONG
-STDCALL
+NTAPI
HalGetInterruptVector(
INTERFACE_TYPE InterfaceType,
ULONG BusNumber,
VOID
-STDCALL
+NTAPI
HalHandleNMI(
- ULONG Unused)
+ PVOID NmiData)
{
UNIMPLEMENTED;
}
BOOLEAN
-STDCALL
+NTAPI
HalInitSystem(
ULONG BootPhase,
PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID
-STDCALL
-HalInitializeProcessor(
- ULONG ProcessorNumber,
- PVOID ProcessorStack)
+NTAPI
+HalInitializeProcessor(ULONG ProcessorNumber,
+ PLOADER_PARAMETER_BLOCK LoaderBlock)
{
UNIMPLEMENTED;
}
BOOLEAN
-STDCALL
+NTAPI
HalMakeBeep(
ULONG Frequency)
{
VOID
-STDCALL
+NTAPI
HalProcessorIdle(VOID)
{
UNIMPLEMENTED;
}
+BOOLEAN
+NTAPI
+HalQueryDisplayOwnership(VOID)
+{
+ UNIMPLEMENTED;
+
+ return FALSE;
+}
+
+
VOID
-STDCALL
+NTAPI
HalQueryDisplayParameters(
- PULONG DispSizeX,
- PULONG DispSizeY,
- PULONG CursorPosX,
- PULONG CursorPosY)
+ OUT PULONG DispSizeX,
+ OUT PULONG DispSizeY,
+ OUT PULONG CursorPosX,
+ OUT PULONG CursorPosY)
{
UNIMPLEMENTED;
}
-VOID
-STDCALL
+BOOLEAN
+NTAPI
HalQueryRealTimeClock(
PTIME_FIELDS Time)
{
UNIMPLEMENTED;
+ return FALSE;
}
ULONG
-STDCALL
+NTAPI
HalReadDmaCounter(
PADAPTER_OBJECT AdapterObject)
{
UNIMPLEMENTED;
-
+
return 0;
}
VOID
-STDCALL
+NTAPI
+HalReleaseDisplayOwnership(VOID)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
HalReportResourceUsage(VOID)
{
UNIMPLEMENTED;
VOID
-STDCALL
+NTAPI
HalRequestIpi(
- ULONG Unknown)
+ KAFFINITY TargetSet)
{
UNIMPLEMENTED;
}
VOID
-STDCALL
+FASTCALL
+HalRequestSoftwareInterrupt(
+ KIRQL Request)
+{
+ UNIMPLEMENTED;
+}
+
+VOID FASTCALL
+HalClearSoftwareInterrupt(
+ IN KIRQL Request)
+{
+ UNIMPLEMENTED;
+}
+
+
+VOID
+NTAPI
HalReturnToFirmware(
- ULONG Action)
+ FIRMWARE_REENTRY Action)
{
UNIMPLEMENTED;
}
ULONG
-STDCALL
+NTAPI
HalSetBusData(
BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
ULONG
-STDCALL
+NTAPI
HalSetBusDataByOffset(
BUS_DATA_TYPE BusDataType,
ULONG BusNumber,
VOID
-STDCALL
+NTAPI
HalSetDisplayParameters(
ULONG CursorPosX,
ULONG CursorPosY)
}
-BOOLEAN
-STDCALL
+ARC_STATUS
+NTAPI
HalSetEnvironmentVariable(
PCH Name,
PCH Value)
{
UNIMPLEMENTED;
- return TRUE;
+ return ESUCCESS;
}
-VOID
-STDCALL
+BOOLEAN
+NTAPI
HalSetRealTimeClock(
PTIME_FIELDS Time)
{
UNIMPLEMENTED;
+
+ return TRUE;
+}
+
+
+ULONG
+NTAPI
+HalSetTimeIncrement(
+ ULONG Increment)
+{
+ UNIMPLEMENTED;
+
+ return Increment;
}
BOOLEAN
-STDCALL
-HalStartNextProcessor(
- ULONG Unknown1,
- ULONG Unknown2)
+NTAPI
+HalStartNextProcessor(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
+ IN PKPROCESSOR_STATE ProcessorState)
{
UNIMPLEMENTED;
BOOLEAN
-STDCALL
+NTAPI
HalTranslateBusAddress(
INTERFACE_TYPE InterfaceType,
ULONG BusNumber,
VOID
-STDCALL
-IoAssignDriveLetters(
- PLOADER_PARAMETER_BLOCK LoaderBlock,
- PSTRING NtDeviceName,
- PUCHAR NtSystemPath,
- PSTRING NtSystemPathString)
+NTAPI
+HalpAssignDriveLetters(IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
+ IN PSTRING NtDeviceName,
+ OUT PUCHAR NtSystemPath,
+ OUT PSTRING NtSystemPathString)
{
- UNIMPLEMENTED;
+ /* Call the kernel */
+ IoAssignDriveLetters(LoaderBlock,
+ NtDeviceName,
+ NtSystemPath,
+ NtSystemPathString);
+}
+
+NTSTATUS
+NTAPI
+HalpReadPartitionTable(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN BOOLEAN ReturnRecognizedPartitions,
+ IN OUT PDRIVE_LAYOUT_INFORMATION *PartitionBuffer)
+{
+ /* Call the kernel */
+ return IoReadPartitionTable(DeviceObject,
+ SectorSize,
+ ReturnRecognizedPartitions,
+ PartitionBuffer);
+}
+
+NTSTATUS
+NTAPI
+HalpWritePartitionTable(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN ULONG SectorsPerTrack,
+ IN ULONG NumberOfHeads,
+ IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer)
+{
+ /* Call the kernel */
+ return IoWritePartitionTable(DeviceObject,
+ SectorSize,
+ SectorsPerTrack,
+ NumberOfHeads,
+ PartitionBuffer);
+}
+
+NTSTATUS
+NTAPI
+HalpSetPartitionInformation(IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG SectorSize,
+ IN ULONG PartitionNumber,
+ IN ULONG PartitionType)
+{
+ /* Call the kernel */
+ return IoSetPartitionInformation(DeviceObject,
+ SectorSize,
+ PartitionNumber,
+ PartitionType);
}
BOOLEAN
-STDCALL
+NTAPI
IoFlushAdapterBuffers(
PADAPTER_OBJECT AdapterObject,
PMDL Mdl,
VOID
-STDCALL
+NTAPI
IoFreeAdapterChannel(
PADAPTER_OBJECT AdapterObject)
{
VOID
-STDCALL
+NTAPI
IoFreeMapRegisters(
PADAPTER_OBJECT AdapterObject,
PVOID MapRegisterBase,
PHYSICAL_ADDRESS
-STDCALL
+NTAPI
IoMapTransfer(
PADAPTER_OBJECT AdapterObject,
PMDL Mdl,
}
-BOOLEAN
-STDCALL
-KdPortGetByte(
- PUCHAR ByteRecieved)
-{
- UNIMPLEMENTED;
-
- return TRUE;
-}
-
-
-BOOLEAN
-STDCALL
-KdPortGetByteEx(
- PKD_PORT_INFORMATION PortInformation,
- PUCHAR ByteRecieved)
-{
- UNIMPLEMENTED;
-
- return TRUE;
-}
-
-
-BOOLEAN
-STDCALL
-KdPortInitialize(
- PKD_PORT_INFORMATION PortInformation,
- DWORD Unknown1,
- DWORD Unknown2)
-{
- UNIMPLEMENTED;
-
- return TRUE;
-}
-
-
-BOOLEAN
-STDCALL
-KdPortPollByte(
- PUCHAR ByteRecieved)
-{
- UNIMPLEMENTED;
-
- return TRUE;
-}
-
-
-BOOLEAN
-STDCALL
-KdPortPollByteEx(
- PKD_PORT_INFORMATION PortInformation,
- PUCHAR ByteRecieved)
-{
- UNIMPLEMENTED;
-
- return TRUE;
-}
-
-
+#undef KeAcquireSpinLock
VOID
-STDCALL
-KdPortPutByte(
- UCHAR ByteToSend)
+NTAPI
+KeAcquireSpinLock(
+ PKSPIN_LOCK SpinLock,
+ PKIRQL OldIrql)
{
UNIMPLEMENTED;
}
-VOID
-STDCALL
-KdPortPutByteEx(
- PKD_PORT_INFORMATION PortInformation,
- UCHAR ByteToSend)
+KIRQL
+FASTCALL
+KeAcquireSpinLockRaiseToSynch(
+ PKSPIN_LOCK SpinLock)
{
UNIMPLEMENTED;
-}
-
-VOID
-STDCALL
-KdPortRestore(VOID)
-{
- UNIMPLEMENTED;
+ return 0;
}
VOID
-STDCALL
-KdPortSave(VOID)
-{
- UNIMPLEMENTED;
-}
-
-
-BOOLEAN
-STDCALL
-KdPortDisableInterrupts()
-{
- UNIMPLEMENTED;
-
- return FALSE;
-}
-
-
-BOOLEAN
-STDCALL
-KdPortEnableInterrupts()
+FASTCALL
+KeAcquireInStackQueuedSpinLock(
+ IN PKSPIN_LOCK SpinLock,
+ IN PKLOCK_QUEUE_HANDLE LockHandle
+ )
{
UNIMPLEMENTED;
-
- return FALSE;
}
-
VOID
-STDCALL
-KeAcquireSpinLock(
- PKSPIN_LOCK SpinLock,
- PKIRQL OldIrql)
+FASTCALL
+KeAcquireInStackQueuedSpinLockRaiseToSynch(
+ IN PKSPIN_LOCK SpinLock,
+ IN PKLOCK_QUEUE_HANDLE LockHandle
+ )
{
- UNIMPLEMENTED;
+ UNIMPLEMENTED;
}
-
-KIRQL
+VOID
FASTCALL
-KeAcquireSpinLockRaiseToSynch(
- PKSPIN_LOCK SpinLock)
+KeReleaseInStackQueuedSpinLock(
+ IN PKLOCK_QUEUE_HANDLE LockHandle
+ )
{
UNIMPLEMENTED;
-
- return 0;
}
-
VOID
-STDCALL
+NTAPI
KeFlushWriteBuffer(VOID)
{
UNIMPLEMENTED;
}
-
+#undef KeGetCurrentIrql
KIRQL
-STDCALL
+NTAPI
KeGetCurrentIrql(VOID)
{
UNIMPLEMENTED;
return (KIRQL)0;
}
-
+#undef KeLowerIrql
VOID
-STDCALL
+NTAPI
KeLowerIrql(
KIRQL NewIrql)
{
LARGE_INTEGER
-STDCALL
+NTAPI
KeQueryPerformanceCounter(
PLARGE_INTEGER PerformanceFreq)
{
return Value;
}
-
+#undef KeRaiseIrql
VOID
-STDCALL
+NTAPI
KeRaiseIrql(
KIRQL NewIrql,
PKIRQL OldIrql)
KIRQL
-STDCALL
+NTAPI
KeRaiseIrqlToDpcLevel(VOID)
{
UNIMPLEMENTED;
KIRQL
-STDCALL
+NTAPI
KeRaiseIrqlToSynchLevel(VOID)
{
UNIMPLEMENTED;
return (KIRQL)0;
}
-
+#undef KeReleaseSpinLock
VOID
-STDCALL
+NTAPI
KeReleaseSpinLock(
PKSPIN_LOCK SpinLock,
KIRQL NewIrql)
VOID
-STDCALL
+NTAPI
KeStallExecutionProcessor(
ULONG Microseconds)
{
}
+LOGICAL
+FASTCALL
+KeTryToAcquireQueuedSpinLock(
+ KSPIN_LOCK_QUEUE_NUMBER LockNumber,
+ PKIRQL OldIrql)
+{
+ UNIMPLEMENTED;
+
+ return FALSE;
+}
+
+
+BOOLEAN
+FASTCALL
+KeTryToAcquireQueuedSpinLockRaiseToSynch(
+ KSPIN_LOCK_QUEUE_NUMBER LockNumber,
+ PKIRQL OldIrql)
+{
+ UNIMPLEMENTED;
+
+ return FALSE;
+}
+
+
KIRQL
FASTCALL
KfAcquireSpinLock(
UNIMPLEMENTED;
}
-
+#if !defined(_M_AMD64)
VOID
-STDCALL
+NTAPI
READ_PORT_BUFFER_UCHAR(
PUCHAR Port,
PUCHAR Buffer,
VOID
-STDCALL
+NTAPI
READ_PORT_BUFFER_ULONG(
PULONG Port,
PULONG Buffer,
VOID
-STDCALL
+NTAPI
READ_PORT_BUFFER_USHORT(
PUSHORT Port,
PUSHORT Buffer,
UCHAR
-STDCALL
+NTAPI
READ_PORT_UCHAR(
PUCHAR Port)
{
ULONG
-STDCALL
+NTAPI
READ_PORT_ULONG(
PULONG Port)
{
USHORT
-STDCALL
+NTAPI
READ_PORT_USHORT(
PUSHORT Port)
{
VOID
-STDCALL
+NTAPI
WRITE_PORT_BUFFER_UCHAR(
PUCHAR Port,
PUCHAR Buffer,
VOID
-STDCALL
+NTAPI
WRITE_PORT_BUFFER_USHORT(
PUSHORT Port,
PUSHORT Buffer,
VOID
-STDCALL
+NTAPI
WRITE_PORT_BUFFER_ULONG(
PULONG Port,
PULONG Buffer,
VOID
-STDCALL
+NTAPI
WRITE_PORT_UCHAR(
PUCHAR Port,
UCHAR Value)
}
VOID
-STDCALL
+NTAPI
WRITE_PORT_ULONG(
PULONG Port,
ULONG Value)
}
VOID
-STDCALL
+NTAPI
WRITE_PORT_USHORT(
PUSHORT Port,
USHORT Value)
{
UNIMPLEMENTED;
}
+#endif
+
+KIRQL
+FASTCALL
+KeAcquireQueuedSpinLock(IN PKLOCK_QUEUE_HANDLE LockHandle)
+{
+ UNIMPLEMENTED;
+ return (KIRQL)0;
+}
+
+KIRQL
+FASTCALL
+KeAcquireQueuedSpinLockRaiseToSynch(IN PKLOCK_QUEUE_HANDLE LockHandle)
+{
+ UNIMPLEMENTED;
+ return (KIRQL)0;
+}
+
+VOID
+FASTCALL
+KeReleaseQueuedSpinLock(IN PKLOCK_QUEUE_HANDLE LockHandle,
+ IN KIRQL OldIrql)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+HalSweepDcache(VOID)
+{
+ UNIMPLEMENTED;
+}
+
+VOID
+HalSweepIcache(VOID)
+{
+ UNIMPLEMENTED;
+}
+
+ULONG
+HalGetInterruptSource(VOID)
+{
+ UNIMPLEMENTED;
+ return 0;
+}
/* EOF */