sync with trunk head (34904)
[reactos.git] / reactos / hal / hal / hal.c
index 93c3670..d3c3aa2 100644 (file)
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
  * COPYRIGHT:        See COPYING in the top level directory
  * PROJECT:          ReactOS kernel
  * FILE:             hal/hal.c
 /* INCLUDES ******************************************************************/
 
 #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
@@ -24,7 +27,7 @@
 
 /* DATA **********************************************************************/
 
-ULONG KdComPortInUse = 0;
+ULONG _KdComPortInUse = 0;
 
 /* FUNCTIONS *****************************************************************/
 
@@ -39,7 +42,39 @@ DriverEntry(
   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(
@@ -66,7 +101,7 @@ ExTryToAcquireFastMutex(
 
   return TRUE;
 }
-
+#endif
 
 VOID
 NTAPI
@@ -126,13 +161,14 @@ HalAllocateCommonBuffer(
 }
 
 
-VOID
+PVOID
 NTAPI
 HalAllocateCrashDumpRegisters(
-  ULONG Unknown1,
-  ULONG Unknown2)
+  PADAPTER_OBJECT AdapterObject,
+  PULONG NumberOfMapRegisters)
 {
   UNIMPLEMENTED;
+  return NULL;
 }
 
 
@@ -154,10 +190,10 @@ HalAssignSlotResources(
 }
 
 
-BOOLEAN 
-NTAPI 
-HalBeginSystemInterrupt (ULONG Vector,
-                        KIRQL Irql,
+BOOLEAN
+NTAPI
+HalBeginSystemInterrupt (KIRQL Irql,
+                        ULONG Vector,
                         PKIRQL OldIrql)
 {
   UNIMPLEMENTED;
@@ -169,7 +205,8 @@ HalBeginSystemInterrupt (ULONG Vector,
 VOID
 NTAPI
 HalCalibratePerformanceCounter(
-  ULONG Count)
+  volatile LONG *Count,
+  ULONGLONG NewCount)
 {
   UNIMPLEMENTED;
 }
@@ -290,16 +327,16 @@ HalGetBusDataByOffset(
 }
 
 
-BOOLEAN
+ARC_STATUS
 NTAPI
 HalGetEnvironmentVariable(
   PCH Name,
-  PCH Value,
-  USHORT ValueLength)
+  USHORT ValueLength,
+  PCH Value)
 {
   UNIMPLEMENTED;
 
-  return FALSE;
+  return ENOENT;
 }
 
 
@@ -322,7 +359,7 @@ HalGetInterruptVector(
 VOID
 NTAPI
 HalHandleNMI(
-  ULONG Unused)
+  PVOID NmiData)
 {
   UNIMPLEMENTED;
 }
@@ -390,12 +427,13 @@ HalQueryDisplayParameters(
 }
 
 
-VOID
+BOOLEAN
 NTAPI
 HalQueryRealTimeClock(
   PTIME_FIELDS Time)
 {
   UNIMPLEMENTED;
+  return FALSE;
 }
 
 
@@ -405,7 +443,7 @@ HalReadDmaCounter(
   PADAPTER_OBJECT AdapterObject)
 {
   UNIMPLEMENTED;
-  
+
   return 0;
 }
 
@@ -428,7 +466,7 @@ HalReportResourceUsage(VOID)
 VOID
 NTAPI
 HalRequestIpi(
-  ULONG Unknown)
+    KAFFINITY TargetSet)
 {
   UNIMPLEMENTED;
 }
@@ -442,6 +480,13 @@ HalRequestSoftwareInterrupt(
   UNIMPLEMENTED;
 }
 
+VOID FASTCALL
+HalClearSoftwareInterrupt(
+  IN KIRQL Request)
+{
+  UNIMPLEMENTED;
+}
+
 
 VOID
 NTAPI
@@ -493,7 +538,7 @@ HalSetDisplayParameters(
 }
 
 
-BOOLEAN
+ARC_STATUS
 NTAPI
 HalSetEnvironmentVariable(
   PCH Name,
@@ -501,24 +546,36 @@ HalSetEnvironmentVariable(
 {
   UNIMPLEMENTED;
 
-  return TRUE;
+  return ESUCCESS;
 }
 
 
-VOID
+BOOLEAN
 NTAPI
 HalSetRealTimeClock(
   PTIME_FIELDS Time)
 {
   UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+ULONG
+NTAPI
+HalSetTimeIncrement(
+  ULONG Increment)
+{
+  UNIMPLEMENTED;
+
+  return Increment;
 }
 
 
 BOOLEAN
 NTAPI
-HalStartNextProcessor(
-  ULONG Unknown1,
-  ULONG Unknown2)
+HalStartNextProcessor(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
+                      IN PKPROCESSOR_STATE ProcessorState)
 {
   UNIMPLEMENTED;
 
@@ -556,13 +613,60 @@ HalTranslateBusAddress(
 
 VOID
 NTAPI
-IoAssignDriveLetters(
-  PLOADER_PARAMETER_BLOCK LoaderBlock,
-  PSTRING NtDeviceName,
-  PUCHAR NtSystemPath,
-  PSTRING NtSystemPathString)
+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);
 }
 
 
@@ -622,132 +726,6 @@ IoMapTransfer(
 }
 
 
-BOOLEAN
-NTAPI
-KdPortGetByte(
-  PUCHAR  ByteRecieved)
-{
-  UNIMPLEMENTED;
-
-  return TRUE;
-}
-
-
-BOOLEAN
-NTAPI
-KdPortGetByteEx(
-  PKD_PORT_INFORMATION PortInformation,
-  PUCHAR  ByteRecieved)
-{
-  UNIMPLEMENTED;
-
-  return TRUE;
-}
-
-
-BOOLEAN
-NTAPI
-KdPortInitialize(
-  PKD_PORT_INFORMATION PortInformation,
-  ULONG Unknown1,
-  ULONG Unknown2)
-{
-  UNIMPLEMENTED;
-
-  return TRUE;
-}
-
-
-BOOLEAN
-NTAPI
-KdPortInitializeEx(
-  PKD_PORT_INFORMATION PortInformation,
-  ULONG Unknown1,
-  ULONG Unknown2)
-{
-  UNIMPLEMENTED;
-  
-  return TRUE;
-}
-
-
-BOOLEAN
-NTAPI
-KdPortPollByte(
-  PUCHAR  ByteRecieved)
-{
-  UNIMPLEMENTED;
-
-  return TRUE;
-}
-
-
-BOOLEAN
-NTAPI
-KdPortPollByteEx(
-  PKD_PORT_INFORMATION PortInformation,
-  PUCHAR  ByteRecieved)
-{
-  UNIMPLEMENTED;
-
-  return TRUE;
-}
-
-
-VOID
-NTAPI
-KdPortPutByte(
-  UCHAR ByteToSend)
-{
-  UNIMPLEMENTED;
-}
-
-
-VOID
-NTAPI
-KdPortPutByteEx(
-  PKD_PORT_INFORMATION PortInformation,
-  UCHAR ByteToSend)
-{
-  UNIMPLEMENTED;
-}
-
-
-VOID
-NTAPI
-KdPortRestore(VOID)
-{
-  UNIMPLEMENTED;
-}
-
-
-VOID
-NTAPI
-KdPortSave(VOID)
-{
-  UNIMPLEMENTED;
-}
-
-
-BOOLEAN
-NTAPI
-KdPortDisableInterrupts()
-{
-  UNIMPLEMENTED;
-
-  return FALSE;
-}
-
-
-BOOLEAN
-NTAPI
-KdPortEnableInterrupts()
-{
-  UNIMPLEMENTED;
-
-  return FALSE;
-}
-
 #undef KeAcquireSpinLock
 VOID
 NTAPI
@@ -780,6 +758,15 @@ KeAcquireInStackQueuedSpinLock(
   UNIMPLEMENTED;
 }
 
+VOID
+FASTCALL
+KeAcquireInStackQueuedSpinLockRaiseToSynch(
+    IN PKSPIN_LOCK SpinLock,
+    IN PKLOCK_QUEUE_HANDLE LockHandle
+    )
+{
+   UNIMPLEMENTED;
+}
 
 VOID
 FASTCALL
@@ -881,6 +868,30 @@ KeStallExecutionProcessor(
 }
 
 
+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(
@@ -921,7 +932,7 @@ KfReleaseSpinLock(
   UNIMPLEMENTED;
 }
 
-
+#if !defined(_M_AMD64)
 VOID
 NTAPI
 READ_PORT_BUFFER_UCHAR(
@@ -1047,5 +1058,49 @@ WRITE_PORT_USHORT(
 {
   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 */