[ros-diffs] [tkreuzer] 34812: stubbed hal more or less copied from arm. It compiles...

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Sat Jul 26 23:18:00 CEST 2008


Author: tkreuzer
Date: Sat Jul 26 16:18:00 2008
New Revision: 34812

URL: http://svn.reactos.org/svn/reactos?rev=34812&view=rev
Log:
stubbed hal more or less copied from arm. It compiles...

Added:
    branches/ros-amd64-bringup/reactos/hal/halamd64/directory.rbuild   (with props)
    branches/ros-amd64-bringup/reactos/hal/halamd64/generic/
    branches/ros-amd64-bringup/reactos/hal/halamd64/generic/generic.rbuild   (with props)
    branches/ros-amd64-bringup/reactos/hal/halamd64/generic/hal.c   (with props)
    branches/ros-amd64-bringup/reactos/hal/halamd64/include/
    branches/ros-amd64-bringup/reactos/hal/halamd64/include/hal.h   (with props)
    branches/ros-amd64-bringup/reactos/hal/halamd64/include/halp.h   (with props)
    branches/ros-amd64-bringup/reactos/hal/halamd64/up/
    branches/ros-amd64-bringup/reactos/hal/halamd64/up/halinit_up.c   (with props)
    branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rbuild   (with props)
    branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rc   (with props)
Removed:
    branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.c
    branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.rbuild
Modified:
    branches/ros-amd64-bringup/reactos/hal/hal.rbuild
    branches/ros-amd64-bringup/reactos/hal/hal/hal.c
    branches/ros-amd64-bringup/reactos/hal/hal/hal_amd64.def

Modified: branches/ros-amd64-bringup/reactos/hal/hal.rbuild
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/hal.rbuild?rev=34812&r1=34811&r2=34812&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/hal.rbuild [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/hal/hal.rbuild [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -26,7 +26,7 @@
 	</if>
 	<if property="ARCH" value="amd64">
 		<directory name="halamd64">
-			<xi:include href="halamd64/hal_generic.rbuild" />
+			<xi:include href="halamd64/directory.rbuild" />
 		</directory>
 	</if>
 </group>

Modified: branches/ros-amd64-bringup/reactos/hal/hal/hal.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/hal/hal.c?rev=34812&r1=34811&r2=34812&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/hal/hal.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/hal/hal/hal.c [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -74,7 +74,7 @@
     KEBUGCHECK(0);
     return Interval;
 }
-
+#if 0
 VOID
 FASTCALL
 ExAcquireFastMutex(
@@ -101,7 +101,7 @@
 
   return TRUE;
 }
-
+#endif
 
 VOID
 NTAPI

Modified: branches/ros-amd64-bringup/reactos/hal/hal/hal_amd64.def
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/hal/hal_amd64.def?rev=34812&r1=34811&r2=34812&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/hal/hal_amd64.def [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/hal/hal/hal_amd64.def [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -59,7 +59,7 @@
 ;IoReadPartitionTable
 ;IoSetPartitionInformation
 ;IoWritePartitionTable
-;KdComPortInUse
+KdComPortInUse=_KdComPortInUse DATA
 KeFlushWriteBuffer
 KeQueryPerformanceCounter
 KeStallExecutionProcessor

Added: branches/ros-amd64-bringup/reactos/hal/halamd64/directory.rbuild
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/directory.rbuild?rev=34812&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/directory.rbuild (added)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/directory.rbuild [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -1,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE group SYSTEM "../../tools/rbuild/project.dtd">
+<group xmlns:xi="http://www.w3.org/2001/XInclude">
+	<directory name="generic">
+		<xi:include href="generic/generic.rbuild" />
+	</directory>
+	<directory name="up">
+		<xi:include href="up/halup.rbuild" />
+	</directory>
+</group>

Propchange: branches/ros-amd64-bringup/reactos/hal/halamd64/directory.rbuild
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/ros-amd64-bringup/reactos/hal/halamd64/generic/generic.rbuild
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/generic/generic.rbuild?rev=34812&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/generic/generic.rbuild (added)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/generic/generic.rbuild [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -1,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<module name="halamd64_generic" type="objectlibrary">
+	<include base="halamd64_generic">../include</include>
+	<include base="ntoskrnl">include</include>
+	<define name="_DISABLE_TIDENTS" />
+	<define name="_NTHAL_" />
+	<file>hal.c</file>
+	<pch>../include/hal.h</pch>
+</module>

Propchange: branches/ros-amd64-bringup/reactos/hal/halamd64/generic/generic.rbuild
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/ros-amd64-bringup/reactos/hal/halamd64/generic/hal.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/generic/hal.c?rev=34812&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/generic/hal.c (added)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/generic/hal.c [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -1,0 +1,1538 @@
+/*
+ * PROJECT:         ReactOS HAL
+ * LICENSE:         BSD - See COPYING.ARM in the top level directory
+ * FILE:            hal/halarm/generic/hal.c
+ * PURPOSE:         Hardware Abstraction Layer
+ * PROGRAMMERS:     ReactOS Portable Systems Group
+ */
+
+/* INCLUDES *******************************************************************/
+
+#include <hal.h>
+#define NDEBUG
+#include <debug.h>
+#include <ndk/inbvfuncs.h>
+
+#undef ExAcquireFastMutex
+#undef ExReleaseFastMutex
+#undef ExTryToAcquireFastMutex
+#undef KeAcquireSpinLock
+#undef KeLowerIrql
+#undef KeRaiseIrql
+#undef KeReleaseSpinLock
+
+#define READ_REGISTER_ULONG(r) (*(volatile ULONG * const)(r))
+#define WRITE_REGISTER_ULONG(r, v) (*(volatile ULONG *)(r) = (v))
+
+/* DATA **********************************************************************/
+
+ULONG HalpCurrentTimeIncrement, HalpNextTimeIncrement, HalpNextIntervalCount;
+ULONG _KdComPortInUse = 0;
+
+ULONG HalpIrqlTable[HIGH_LEVEL + 1] =
+{
+    0xFFFFFFFF, // IRQL 0 PASSIVE_LEVEL
+    0xFFFFFFFD, // IRQL 1 APC_LEVEL
+    0xFFFFFFF9, // IRQL 2 DISPATCH_LEVEL
+    0xFFFFFFD9, // IRQL 3
+    0xFFFFFF99, // IRQL 4
+    0xFFFFFF19, // IRQL 5
+    0xFFFFFE19, // IRQL 6
+    0xFFFFFC19, // IRQL 7
+    0xFFFFF819, // IRQL 8
+    0xFFFFF019, // IRQL 9
+    0xFFFFE019, // IRQL 10
+    0xFFFFC019, // IRQL 11
+    0xFFFF8019, // IRQL 12
+    0xFFFF0019, // IRQL 13
+    0xFFFE0019, // IRQL 14
+    0xFFFC0019, // IRQL 15
+    0xFFF80019, // IRQL 16
+    0xFFF00019, // IRQL 17
+    0xFFE00019, // IRQL 18
+    0xFFC00019, // IRQL 19
+    0xFF800019, // IRQL 20
+    0xFF000019, // IRQL 21
+    0xFE000019, // IRQL 22
+    0xFC000019, // IRQL 23
+    0xF0000019, // IRQL 24
+    0x80000019, // IRQL 25
+    0x19,       // IRQL 26
+    0x18,       // IRQL 27 PROFILE_LEVEL
+    0x10,       // IRQL 28 CLOCK2_LEVEL
+    0x00,       // IRQL 29 IPI_LEVEL
+    0x00,       // IRQL 30 POWER_LEVEL
+    0x00,       // IRQL 31 HIGH_LEVEL
+};
+
+UCHAR HalpMaskTable[HIGH_LEVEL + 1] =
+{
+    PROFILE_LEVEL, // INT 0 WATCHDOG
+    APC_LEVEL,     // INT 1 SOFTWARE INTERRUPT
+    DISPATCH_LEVEL,// INT 2 COMM RX
+    IPI_LEVEL,     // INT 3 COMM TX
+    CLOCK2_LEVEL,  // INT 4 TIMER 0
+    3,
+    4,
+    5,
+    6,
+    7,
+    8,
+    9,
+    10,
+    11,
+    12,
+    13,
+    14,
+    15,
+    16,
+    17,
+    18,
+    19,
+    20,
+    21,
+    22,
+    23,
+    24,
+    25,
+    26,
+    26,
+    26
+};
+
+/* FUNCTIONS *****************************************************************/
+
+NTSTATUS
+NTAPI
+DriverEntry(
+  PDRIVER_OBJECT DriverObject,
+  PUNICODE_STRING RegistryPath)
+{
+  UNIMPLEMENTED;
+
+  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;
+}
+
+VOID
+FASTCALL
+ExAcquireFastMutex(
+  PFAST_MUTEX FastMutex)
+{
+  UNIMPLEMENTED;
+}
+
+
+VOID
+FASTCALL
+ExReleaseFastMutex(
+  PFAST_MUTEX FastMutex)
+{
+  UNIMPLEMENTED;
+}
+
+
+BOOLEAN FASTCALL
+ExTryToAcquireFastMutex(
+  PFAST_MUTEX FastMutex)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+NTSTATUS
+NTAPI
+HalAdjustResourceList(
+  PCM_RESOURCE_LIST Resources)
+{
+  UNIMPLEMENTED;
+
+  return STATUS_SUCCESS;
+}
+
+
+/*
+ * @implemented
+ */
+BOOLEAN
+NTAPI
+HalAllProcessorsStarted(VOID)
+{
+    /* Do nothing */
+    return TRUE;
+}
+
+
+NTSTATUS
+NTAPI
+HalAllocateAdapterChannel(
+  PADAPTER_OBJECT AdapterObject,
+  PWAIT_CONTEXT_BLOCK WaitContextBlock,
+  ULONG NumberOfMapRegisters,
+  PDRIVER_CONTROL ExecutionRoutine)
+{
+  UNIMPLEMENTED;
+
+  return STATUS_SUCCESS;
+}
+
+
+PVOID
+NTAPI
+HalAllocateCommonBuffer(
+  PADAPTER_OBJECT AdapterObject,
+  ULONG Length,
+  PPHYSICAL_ADDRESS LogicalAddress,
+  BOOLEAN CacheEnabled)
+{
+  UNIMPLEMENTED;
+
+  return NULL;
+}
+
+
+PVOID
+NTAPI
+HalAllocateCrashDumpRegisters(
+  PADAPTER_OBJECT AdapterObject,
+  PULONG NumberOfMapRegisters)
+{
+  UNIMPLEMENTED;
+  return NULL;
+}
+
+
+NTSTATUS
+NTAPI
+HalAssignSlotResources(
+  PUNICODE_STRING RegistryPath,
+  PUNICODE_STRING DriverClassName,
+  PDRIVER_OBJECT DriverObject,
+  PDEVICE_OBJECT DeviceObject,
+  INTERFACE_TYPE BusType,
+  ULONG BusNumber,
+  ULONG SlotNumber,
+  PCM_RESOURCE_LIST *AllocatedResources)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+BOOLEAN
+NTAPI
+HalBeginSystemInterrupt (KIRQL Irql,
+			 ULONG Vector,
+			 PKIRQL OldIrql)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+VOID
+NTAPI
+HalCalibratePerformanceCounter(
+  volatile LONG *Count,
+  ULONGLONG NewCount)
+{
+  UNIMPLEMENTED;
+}
+
+
+BOOLEAN
+NTAPI
+HalDisableSystemInterrupt(
+  ULONG Vector,
+  KIRQL Irql)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+VOID
+NTAPI
+HalAcquireDisplayOwnership(IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters)
+{
+    //
+    // Stub since Windows XP implemented Inbv
+    //
+    return;
+}
+
+VOID
+NTAPI
+HalDisplayString(IN PCH String)
+{
+    //
+    // Call the Inbv driver
+    //
+    InbvDisplayString(String);
+}
+
+VOID
+NTAPI
+HalQueryDisplayParameters(OUT PULONG DispSizeX,
+                          OUT PULONG DispSizeY,
+                          OUT PULONG CursorPosX,
+                          OUT PULONG CursorPosY)
+{
+    //
+    // Stub since Windows XP implemented Inbv
+    //
+    return;
+}
+
+VOID
+NTAPI
+HalSetDisplayParameters(IN ULONG CursorPosX,
+                        IN ULONG CursorPosY)
+{
+    //
+    // Stub since Windows XP implemented Inbv
+    //
+    return;
+}
+
+BOOLEAN
+NTAPI
+HalEnableSystemInterrupt(
+  ULONG Vector,
+  KIRQL Irql,
+  KINTERRUPT_MODE InterruptMode)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+VOID
+NTAPI
+HalEndSystemInterrupt(
+  KIRQL Irql,
+  ULONG Unknown2)
+{
+  UNIMPLEMENTED;
+}
+
+
+BOOLEAN
+NTAPI
+HalFlushCommonBuffer(
+  ULONG Unknown1,
+  ULONG Unknown2,
+  ULONG Unknown3,
+  ULONG Unknown4,
+  ULONG Unknown5)
+{
+  UNIMPLEMENTED;
+
+   return TRUE;
+}
+
+
+VOID
+NTAPI
+HalFreeCommonBuffer(
+  PADAPTER_OBJECT AdapterObject,
+  ULONG Length,
+  PHYSICAL_ADDRESS LogicalAddress,
+  PVOID VirtualAddress,
+  BOOLEAN CacheEnabled)
+{
+  UNIMPLEMENTED;
+}
+
+
+PADAPTER_OBJECT
+NTAPI
+HalGetAdapter(
+  PDEVICE_DESCRIPTION DeviceDescription,
+  PULONG NumberOfMapRegisters)
+{
+  UNIMPLEMENTED;
+
+  return (PADAPTER_OBJECT)NULL;
+}
+
+
+ULONG
+NTAPI
+HalGetBusData(
+  BUS_DATA_TYPE BusDataType,
+  ULONG BusNumber,
+  ULONG SlotNumber,
+  PVOID Buffer,
+  ULONG Length)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+ULONG
+NTAPI
+HalGetBusDataByOffset(
+  BUS_DATA_TYPE BusDataType,
+  ULONG BusNumber,
+  ULONG SlotNumber,
+  PVOID Buffer,
+  ULONG Offset,
+  ULONG Length)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+ARC_STATUS
+NTAPI
+HalGetEnvironmentVariable(
+  PCH Name,
+  USHORT ValueLength,
+  PCH Value)
+{
+  UNIMPLEMENTED;
+
+  return ENOENT;
+}
+
+
+ULONG
+NTAPI
+HalGetInterruptVector(
+  INTERFACE_TYPE InterfaceType,
+  ULONG BusNumber,
+  ULONG BusInterruptLevel,
+  ULONG BusInterruptVector,
+  PKIRQL Irql,
+  PKAFFINITY Affinity)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+VOID
+NTAPI
+HalHandleNMI(
+  PVOID NmiData)
+{
+  UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+HalpGetParameters(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
+{
+    PCHAR CommandLine;
+    
+    /* Make sure we have a loader block and command line */
+    if ((LoaderBlock) && (LoaderBlock->LoadOptions))
+    {
+        /* Read the command line */
+        CommandLine = LoaderBlock->LoadOptions;
+        
+        /* Check for initial breakpoint */
+        if (strstr(CommandLine, "BREAK")) DbgBreakPoint();
+    }
+}
+
+ULONG
+HalGetInterruptSource(VOID)
+{
+    ULONG InterruptStatus;
+    
+    //
+    // Get the interrupt status, and return the highest bit set
+    //
+    InterruptStatus = READ_REGISTER_ULONG(VIC_INT_STATUS);
+    return 31 - _clz(InterruptStatus);
+}
+
+VOID
+HalpClockInterrupt(VOID)
+{   
+    //
+    // Clear the interrupt
+    //
+    ASSERT(KeGetCurrentIrql() == CLOCK2_LEVEL);
+    WRITE_REGISTER_ULONG(TIMER0_INT_CLEAR, 1);
+    
+    //
+    // FIXME: Update HAL Perf counters
+    //
+    
+    //
+    // FIXME: Check if someone changed the clockrate
+    //
+    
+    //
+    // Call the kernel
+    //
+    KeUpdateSystemTime(KeGetCurrentThread()->TrapFrame,
+                       CLOCK2_LEVEL,
+                       HalpCurrentTimeIncrement);
+    
+    //
+    // We're done
+    //
+}
+
+VOID
+HalpStallInterrupt(VOID)
+{   
+    //
+    // Clear the interrupt
+    //
+    WRITE_REGISTER_ULONG(TIMER0_INT_CLEAR, 1);
+}
+
+VOID
+HalpInitializeInterrupts(VOID)
+{
+    PKPCR Pcr = (PKPCR)KeGetPcr();
+    ULONG ClockInterval;
+    SP804_CONTROL_REGISTER ControlRegister;
+    
+    //
+    // Fill out the IRQL mappings
+    //
+    RtlCopyMemory(Pcr->IrqlTable, HalpIrqlTable, sizeof(Pcr->IrqlTable));
+    RtlCopyMemory(Pcr->IrqlMask, HalpMaskTable, sizeof(Pcr->IrqlMask));
+    
+    //
+    // Setup the clock and profile interrupt
+    //
+    Pcr->InterruptRoutine[CLOCK2_LEVEL] = HalpStallInterrupt;
+    
+    //
+    // Configure the interval to 10ms
+    //  (INTERVAL (10ms) * TIMCLKfreq (1MHz))
+    // --------------------------------------- == 10^4
+    //  (TIMCLKENXdiv (1) * PRESCALEdiv (1))
+    //
+    ClockInterval = 0x2710;
+    
+    //
+    // Configure the timer
+    //
+    ControlRegister.AsUlong = 0;
+    ControlRegister.Wide = TRUE;
+    ControlRegister.Periodic = TRUE;
+    ControlRegister.Interrupt = TRUE;
+    ControlRegister.Enabled = TRUE;
+    
+    //
+    // Enable the timer
+    //
+    WRITE_REGISTER_ULONG(TIMER0_LOAD, ClockInterval);
+    WRITE_REGISTER_ULONG(TIMER0_CONTROL, ControlRegister.AsUlong);
+}
+
+/*
+ * @implemented
+ */
+BOOLEAN
+NTAPI
+HalInitSystem(IN ULONG BootPhase,
+              IN PLOADER_PARAMETER_BLOCK LoaderBlock)
+{
+    PKPRCB Prcb = KeGetCurrentPrcb();
+    
+    //
+    // Check the boot phase
+    //
+    if (!BootPhase)
+    {
+        //
+        // Get command-line parameters
+        //
+        HalpGetParameters(LoaderBlock);
+        
+#if DBG
+        //
+        // Checked HAL requires checked kernel
+        //
+        if (!(Prcb->BuildType & PRCB_BUILD_DEBUG))
+        {
+            //
+            // No match, bugcheck
+            //
+            KeBugCheckEx(MISMATCHED_HAL, 2, Prcb->BuildType, 1, 0);
+        }
+#else
+        //
+        // Release build requires release HAL
+        //
+        if (Prcb->BuildType & PRCB_BUILD_DEBUG)
+        {
+            //
+            // No match, bugcheck
+            //
+            KeBugCheckEx(MISMATCHED_HAL, 2, Prcb->BuildType, 0, 0);
+        }
+#endif
+        
+#ifdef CONFIG_SMP
+        //
+        // SMP HAL requires SMP kernel
+        //
+        if (Prcb->BuildType & PRCB_BUILD_UNIPROCESSOR)
+        {
+            //
+            // No match, bugcheck
+            //
+            KeBugCheckEx(MISMATCHED_HAL, 2, Prcb->BuildType, 0, 0);
+        }
+#endif
+        
+        //
+        // Validate the PRCB
+        //
+        if (Prcb->MajorVersion != PRCB_MAJOR_VERSION)
+        {
+            //
+            // Validation failed, bugcheck
+            //
+            KeBugCheckEx(MISMATCHED_HAL, 1, Prcb->MajorVersion, 1, 0);
+        }
+        
+        //
+        // Setup time increments to 10ms and 1ms
+        //
+        HalpCurrentTimeIncrement = 100000;
+        HalpNextTimeIncrement = 100000;
+        HalpNextIntervalCount = 0;
+        KeSetTimeIncrement(100000, 10000);
+        
+        //
+        // Initialize interrupts
+        //
+        HalpInitializeInterrupts();
+    }
+    else if (BootPhase == 1)
+    {
+        //
+        // Switch to real clock interrupt
+        //
+        PCR->InterruptRoutine[CLOCK2_LEVEL] = HalpClockInterrupt;
+    }
+    
+    //
+    // All done, return
+    //
+    return TRUE;
+}
+
+
+VOID
+NTAPI
+HalInitializeProcessor(IN ULONG ProcessorNumber,
+                       IN PLOADER_PARAMETER_BLOCK LoaderBlock)
+{
+    //
+    // Nothing to do
+    //
+    return;
+}
+
+
+BOOLEAN
+NTAPI
+HalMakeBeep(
+  ULONG Frequency)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+VOID
+NTAPI
+HalProcessorIdle(VOID)
+{
+  UNIMPLEMENTED;
+}
+
+
+#define RTC_DATA   (PVOID)0xE00E8000
+
+BOOLEAN
+NTAPI
+HalQueryRealTimeClock(IN PTIME_FIELDS Time)
+{
+    LARGE_INTEGER LargeTime;
+    ULONG Seconds;
+    
+    //
+    // Query the RTC value
+    //
+    Seconds = READ_REGISTER_ULONG(RTC_DATA);
+    
+    //
+    // Convert to time
+    //
+    RtlSecondsSince1970ToTime(Seconds, &LargeTime);
+    
+    //
+    // Convert to time-fields
+    //
+    RtlTimeToTimeFields(&LargeTime, Time);
+    return TRUE;
+}
+
+ULONG
+NTAPI
+HalReadDmaCounter(
+  PADAPTER_OBJECT AdapterObject)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+VOID
+NTAPI
+HalReportResourceUsage(VOID)
+{
+  UNIMPLEMENTED;
+}
+
+
+VOID
+NTAPI
+HalRequestIpi(
+  ULONG Unknown)
+{
+  UNIMPLEMENTED;
+}
+
+
+VOID
+FASTCALL
+HalRequestSoftwareInterrupt(IN KIRQL Request)
+{
+    //
+    // Force a software interrupt
+    //
+    WRITE_REGISTER_ULONG(VIC_SOFT_INT, 1 << Request);
+}
+
+VOID
+FASTCALL
+HalClearSoftwareInterrupt(IN KIRQL Request)
+{    
+    //
+    // Clear a software interrupt
+    //
+    WRITE_REGISTER_ULONG(VIC_SOFT_INT_CLEAR, 1 << Request);
+}
+
+VOID
+NTAPI
+HalReturnToFirmware(
+  FIRMWARE_REENTRY Action)
+{
+  UNIMPLEMENTED;
+}
+
+
+ULONG
+NTAPI
+HalSetBusData(
+  BUS_DATA_TYPE BusDataType,
+  ULONG BusNumber,
+  ULONG SlotNumber,
+  PVOID Buffer,
+  ULONG Length)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+ULONG
+NTAPI
+HalSetBusDataByOffset(
+  BUS_DATA_TYPE BusDataType,
+  ULONG BusNumber,
+  ULONG SlotNumber,
+  PVOID Buffer,
+  ULONG Offset,
+  ULONG Length)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+ARC_STATUS
+NTAPI
+HalSetEnvironmentVariable(
+  PCH Name,
+  PCH Value)
+{
+  UNIMPLEMENTED;
+
+  return ESUCCESS;
+}
+
+
+BOOLEAN
+NTAPI
+HalSetRealTimeClock(
+  PTIME_FIELDS Time)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+ULONG
+NTAPI
+HalSetTimeIncrement(
+  ULONG Increment)
+{
+  UNIMPLEMENTED;
+
+  return Increment;
+}
+
+
+BOOLEAN
+NTAPI
+HalStartNextProcessor(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
+                      IN PKPROCESSOR_STATE ProcessorState)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+ULONG
+FASTCALL
+HalSystemVectorDispatchEntry(
+  ULONG Unknown1,
+  ULONG Unknown2,
+  ULONG Unknown3)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+BOOLEAN
+NTAPI
+HalTranslateBusAddress(
+  INTERFACE_TYPE InterfaceType,
+  ULONG BusNumber,
+  PHYSICAL_ADDRESS BusAddress,
+  PULONG AddressSpace,
+  PPHYSICAL_ADDRESS TranslatedAddress)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+VOID
+NTAPI
+HalpAssignDriveLetters(IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
+                       IN PSTRING NtDeviceName,
+                       OUT PUCHAR NtSystemPath,
+                       OUT PSTRING NtSystemPathString)
+{
+    /* 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
+NTAPI
+IoFlushAdapterBuffers(
+  PADAPTER_OBJECT AdapterObject,
+  PMDL Mdl,
+  PVOID MapRegisterBase,
+  PVOID CurrentVa,
+  ULONG Length,
+  BOOLEAN WriteToDevice)
+{
+  UNIMPLEMENTED;
+
+  return TRUE;
+}
+
+
+VOID
+NTAPI
+IoFreeAdapterChannel(
+  PADAPTER_OBJECT AdapterObject)
+{
+  UNIMPLEMENTED;
+}
+
+
+VOID
+NTAPI
+IoFreeMapRegisters(
+  PADAPTER_OBJECT AdapterObject,
+  PVOID MapRegisterBase,
+  ULONG NumberOfMapRegisters)
+{
+  UNIMPLEMENTED;
+}
+
+
+PHYSICAL_ADDRESS
+NTAPI
+IoMapTransfer(
+  PADAPTER_OBJECT AdapterObject,
+  PMDL Mdl,
+  PVOID MapRegisterBase,
+  PVOID CurrentVa,
+  PULONG Length,
+  BOOLEAN WriteToDevice)
+{
+  PHYSICAL_ADDRESS Address;
+
+  UNIMPLEMENTED;
+
+  Address.QuadPart = 0;
+
+  return Address;
+}
+
+VOID
+NTAPI
+KeFlushWriteBuffer(VOID)
+{
+  UNIMPLEMENTED;
+}
+
+LARGE_INTEGER
+NTAPI
+KeQueryPerformanceCounter(
+  PLARGE_INTEGER PerformanceFreq)
+{
+  LARGE_INTEGER Value;
+
+  UNIMPLEMENTED;
+
+  Value.QuadPart = 0;
+
+  return Value;
+}
+
+VOID
+NTAPI
+KeStallExecutionProcessor(IN ULONG Microseconds)
+{
+    SP804_CONTROL_REGISTER ControlRegister;
+    
+    //
+    // Enable the timer
+    //
+    WRITE_REGISTER_ULONG(TIMER1_LOAD, Microseconds);
+    
+    //
+    // Configure the timer
+    //
+    ControlRegister.AsUlong = 0;
+    ControlRegister.OneShot = TRUE;
+    ControlRegister.Wide = TRUE;
+    ControlRegister.Periodic = TRUE;
+    ControlRegister.Enabled = TRUE;
+    WRITE_REGISTER_ULONG(TIMER1_CONTROL, ControlRegister.AsUlong);
+    
+    //
+    // Now we will loop until the timer reached 0
+    //
+    while (READ_REGISTER_ULONG(TIMER1_VALUE));
+}
+
+VOID
+FASTCALL
+KfLowerIrql(IN KIRQL NewIrql)
+{
+    ULONG InterruptMask;
+    ARM_STATUS_REGISTER Flags;
+    PKPCR Pcr = (PKPCR)KeGetPcr();
+    
+    //
+    // Validate the new IRQL
+    //
+    Flags = KeArmStatusRegisterGet();
+    _disable();
+    ASSERT(NewIrql <= Pcr->CurrentIrql);
+    
+    //
+    // IRQLs are internally 8 bits
+    //
+    NewIrql &= 0xFF;
+    
+    //
+    // Setup the interrupt mask for this IRQL
+    //
+    InterruptMask = KeGetPcr()->IrqlTable[NewIrql];
+//    DPRINT1("[LOWER] IRQL: %d InterruptMask: %lx\n", NewIrql, InterruptMask);
+    
+    //
+    // Clear interrupts associated to the old IRQL
+    //
+    WRITE_REGISTER_ULONG(VIC_INT_CLEAR, 0xFFFFFFFF);
+    
+    //
+    // Set the new interrupt mask
+    // PL190 VIC support only for now
+    //
+    WRITE_REGISTER_ULONG(VIC_INT_ENABLE, InterruptMask);
+    
+    //
+    // Save the new IRQL
+    //
+    Pcr->CurrentIrql = NewIrql;
+    if (!Flags.IrqDisable) _enable();
+}
+
+KIRQL
+FASTCALL
+KfRaiseIrql(IN KIRQL NewIrql)
+{
+    KIRQL OldIrql;
+    ULONG InterruptMask;
+    ARM_STATUS_REGISTER Flags;
+    PKPCR Pcr = (PKPCR)KeGetPcr();
+    
+    //
+    // Save the current IRQL
+    //
+    Flags = KeArmStatusRegisterGet();
+    _disable();
+    OldIrql = Pcr->CurrentIrql;
+    
+    //
+    // IRQLs are internally 8 bits
+    //
+    NewIrql &= 0xFF;
+    
+    //
+    // Setup the interrupt mask for this IRQL
+    //
+    InterruptMask = KeGetPcr()->IrqlTable[NewIrql];
+  //  DPRINT1("[RAISE] IRQL: %d InterruptMask: %lx\n", NewIrql, InterruptMask);
+    ASSERT(NewIrql >= OldIrql);
+    
+    //
+    // Clear interrupts associated to the old IRQL
+    //
+    WRITE_REGISTER_ULONG(VIC_INT_CLEAR, 0xFFFFFFFF);
+    
+    //
+    // Set the new interrupt mask
+    // PL190 VIC support only for now
+    //
+    WRITE_REGISTER_ULONG(VIC_INT_ENABLE, InterruptMask);
+    
+    //
+    // Save the new IRQL
+    //
+    Pcr->CurrentIrql = NewIrql;
+    if (!Flags.IrqDisable) _enable();
+    return OldIrql;
+}
+
+VOID
+NTAPI
+READ_PORT_BUFFER_UCHAR(
+  PUCHAR Port,
+  PUCHAR Buffer,
+  ULONG Count)
+{
+  UNIMPLEMENTED;
+}
+
+
+VOID
+NTAPI
+READ_PORT_BUFFER_ULONG(
+  PULONG Port,
+  PULONG Buffer,
+  ULONG Count)
+{
+  UNIMPLEMENTED;
+}
+
+
+VOID
+NTAPI
+READ_PORT_BUFFER_USHORT(
+  PUSHORT Port,
+  PUSHORT Buffer,
+  ULONG Count)
+{
+  UNIMPLEMENTED;
+}
+
+
+UCHAR
+NTAPI
+READ_PORT_UCHAR(
+  PUCHAR Port)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+ULONG
+NTAPI
+READ_PORT_ULONG(
+  PULONG Port)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+USHORT
+NTAPI
+READ_PORT_USHORT(
+  PUSHORT Port)
+{
+  UNIMPLEMENTED;
+
+  return 0;
+}
+
+
+VOID
+NTAPI
+WRITE_PORT_BUFFER_UCHAR(
+  PUCHAR Port,
+  PUCHAR Buffer,
+  ULONG Count)
+{
+  UNIMPLEMENTED;
+}
+
+
+VOID
+NTAPI
+WRITE_PORT_BUFFER_USHORT(
+  PUSHORT Port,
+  PUSHORT Buffer,
+  ULONG Count)
+{
+  UNIMPLEMENTED;
+}
+
+
+VOID
+NTAPI
+WRITE_PORT_BUFFER_ULONG(
+  PULONG Port,
+  PULONG Buffer,
+  ULONG Count)
+{
+  UNIMPLEMENTED;
+}
+
+
+VOID
+NTAPI
+WRITE_PORT_UCHAR(
+  PUCHAR Port,
+  UCHAR Value)
+{
+  UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WRITE_PORT_ULONG(
+  PULONG Port,
+  ULONG Value)
+{
+  UNIMPLEMENTED;
+}
+
+VOID
+NTAPI
+WRITE_PORT_USHORT(
+  PUSHORT Port,
+  USHORT Value)
+{
+  UNIMPLEMENTED;
+}
+
+KIRQL
+KeRaiseIrqlToDpcLevel(VOID)
+{
+    //
+    // Call the generic routine
+    //
+    return KfRaiseIrql(DISPATCH_LEVEL);
+}
+
+KIRQL
+KeRaiseIrqlToSynchLevel(VOID)
+{
+    //
+    // Call the generic routine
+    //
+    return KfRaiseIrql(DISPATCH_LEVEL);
+}
+
+BOOLEAN HalpProcessorIdentified;
+BOOLEAN HalpTestCleanSupported;
+
+VOID
+HalpIdentifyProcessor(VOID)
+{
+    ARM_ID_CODE_REGISTER IdRegister;
+
+    //
+    // Don't do it again
+    //
+    HalpProcessorIdentified = TRUE;
+    
+    //
+    // Read the ID Code
+    //
+    IdRegister = KeArmIdCodeRegisterGet();
+    
+    //
+    // Architecture "6" CPUs support test-and-clean (926EJ-S and 1026EJ-S)
+    //
+    HalpTestCleanSupported = (IdRegister.Architecture == 6);
+}
+
+VOID
+HalSweepDcache(VOID)
+{
+    //
+    // We get called very early on, before HalInitSystem or any of the Hal*
+    // processor routines, so we need to figure out what CPU we're on.
+    //
+    if (!HalpProcessorIdentified) HalpIdentifyProcessor();
+    
+    //
+    // Check if we can do it the ARMv5TE-J way
+    //
+    if (HalpTestCleanSupported)
+    {
+        //
+        // Test, clean, flush D-Cache
+        //
+        __asm__ __volatile__ ("1: mrc p15, 0, pc, c7, c14, 3; bne 1b");
+    }
+    else
+    {
+        //
+        // We need to do it it by set/way
+        //
+        UNIMPLEMENTED;
+    }
+}
+
+VOID
+HalSweepIcache(VOID)
+{
+    //
+    // All ARM cores support the same Icache flush command, no need for HAL work
+    //
+    KeArmFlushIcache();
+}
+
+/*
+ * @implemented
+ */
+#undef KeGetCurrentIrql
+KIRQL
+NTAPI
+KeGetCurrentIrql(VOID)
+{
+    /* Return IRQL */
+    return PCR->CurrentIrql;
+}
+
+/*
+ * @implemented
+ */
+VOID
+NTAPI
+KeLowerIrql(KIRQL NewIrql)
+{
+    /* Call the fastcall function */
+    KfLowerIrql(NewIrql);
+}
+
+/*
+ * @implemented
+ */
+VOID
+NTAPI
+KeRaiseIrql(KIRQL NewIrql,
+            PKIRQL OldIrql)
+{
+    /* Call the fastcall function */
+    *OldIrql = KfRaiseIrql(NewIrql);
+}
+
+/*
+ * @implemented
+ */
+VOID
+NTAPI
+KeAcquireSpinLock(PKSPIN_LOCK SpinLock,
+                  PKIRQL OldIrql)
+{
+    /* Call the fastcall function */
+    *OldIrql = KfAcquireSpinLock(SpinLock);
+}
+
+/*
+ * @implemented
+ */
+KIRQL
+FASTCALL
+KeAcquireSpinLockRaiseToSynch(PKSPIN_LOCK SpinLock)
+{
+    /* Simply raise to dispatch */
+    return KfRaiseIrql(DISPATCH_LEVEL);
+}
+
+/*
+ * @implemented
+ */
+VOID
+NTAPI
+KeReleaseSpinLock(PKSPIN_LOCK SpinLock,
+                  KIRQL NewIrql)
+{
+    /* Call the fastcall function */
+    KfReleaseSpinLock(SpinLock, NewIrql);
+}
+
+/*
+ * @implemented
+ */
+KIRQL
+FASTCALL
+KfAcquireSpinLock(PKSPIN_LOCK SpinLock)
+{
+    /* Simply raise to dispatch */
+    return KfRaiseIrql(DISPATCH_LEVEL);
+}
+
+/*
+ * @implemented
+ */
+VOID
+FASTCALL
+KfReleaseSpinLock(PKSPIN_LOCK SpinLock,
+                  KIRQL OldIrql)
+{
+    /* Simply lower IRQL back */
+    KfLowerIrql(OldIrql);
+}
+
+/*
+ * @implemented
+ */
+KIRQL
+FASTCALL
+KeAcquireQueuedSpinLock(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber)
+{
+    /* Simply raise to dispatch */
+    return KfRaiseIrql(DISPATCH_LEVEL);
+}
+
+/*
+ * @implemented
+ */
+KIRQL
+FASTCALL
+KeAcquireQueuedSpinLockRaiseToSynch(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber)
+{
+    /* Simply raise to dispatch */
+    return KfRaiseIrql(DISPATCH_LEVEL);
+}
+
+/*
+ * @implemented
+ */
+VOID
+FASTCALL
+KeAcquireInStackQueuedSpinLock(IN PKSPIN_LOCK SpinLock,
+                               IN PKLOCK_QUEUE_HANDLE LockHandle)
+{
+    /* Simply raise to dispatch */
+    LockHandle->OldIrql = KfRaiseIrql(DISPATCH_LEVEL);
+}
+
+/*
+ * @implemented
+ */
+VOID
+FASTCALL
+KeAcquireInStackQueuedSpinLockRaiseToSynch(IN PKSPIN_LOCK SpinLock,
+                                           IN PKLOCK_QUEUE_HANDLE LockHandle)
+{
+    /* Simply raise to synch */
+    LockHandle->OldIrql = KfRaiseIrql(DISPATCH_LEVEL);
+}
+
+/*
+ * @implemented
+ */
+VOID
+FASTCALL
+KeReleaseQueuedSpinLock(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber,
+                        IN KIRQL OldIrql)
+{
+    /* Simply lower IRQL back */
+    KfLowerIrql(OldIrql);
+}
+
+/*
+ * @implemented
+ */
+VOID
+FASTCALL
+KeReleaseInStackQueuedSpinLock(IN PKLOCK_QUEUE_HANDLE LockHandle)
+{
+    /* Simply lower IRQL back */
+    KfLowerIrql(LockHandle->OldIrql);
+}
+
+/*
+ * @implemented
+ */
+BOOLEAN
+FASTCALL
+KeTryToAcquireQueuedSpinLockRaiseToSynch(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber,
+                                         IN PKIRQL OldIrql)
+{
+    /* Simply raise to dispatch */
+    *OldIrql = KfRaiseIrql(DISPATCH_LEVEL);
+    
+    /* Always return true on UP Machines */
+    return TRUE;
+}
+
+/*
+ * @implemented
+ */
+LOGICAL
+FASTCALL
+KeTryToAcquireQueuedSpinLock(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber,
+                             OUT PKIRQL OldIrql)
+{
+    /* Simply raise to dispatch */
+    *OldIrql = KfRaiseIrql(DISPATCH_LEVEL);
+    
+    /* Always return true on UP Machines */
+    return TRUE;
+}
+
+/* EOF */

Propchange: branches/ros-amd64-bringup/reactos/hal/halamd64/generic/hal.c
------------------------------------------------------------------------------
    svn:eol-style = native

Removed: branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.c?rev=34811&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.c (removed)
@@ -1,34 +1,0 @@
-/*
- * PROJECT:         ReactOS HAL
- * LICENSE:         GPL - See COPYING in the top level directory
- * FILE:            hal/halamd64/
- * PURPOSE:         I/O HAL Routines for Disk Access
- * PROGRAMMERS:     Timo Kreuzer (timo.kreuzer at reactos.org)
- */
-
-/* INCLUDES ******************************************************************/
-
-#include <hal.h>
-#define NDEBUG
-#include <debug.h>
-
-/* FUNCTIONS *****************************************************************/
-
-
-
-
-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);
-}
-
-

Removed: branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.rbuild
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.rbuild?rev=34811&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.rbuild [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/hal_generic.rbuild (removed)
@@ -1,11 +1,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
-<group>
-	<module name="hal_generic" type="objectlibrary">
-		<include>include</include>
-		<include base="ntoskrnl">include</include>
-		<define name="_DISABLE_TIDENTS" />
-		<define name="_NTHAL_" />
-		<file>hal_generic.c</file>
-	</module>
-</group>

Added: branches/ros-amd64-bringup/reactos/hal/halamd64/include/hal.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/include/hal.h?rev=34812&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/include/hal.h (added)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/include/hal.h [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -1,0 +1,43 @@
+/*
+ * PROJECT:         ReactOS HAL
+ * LICENSE:         BSD - See COPYING.ARM in the top level directory
+ * FILE:            hal/halarm/include/hal.h
+ * PURPOSE:         Hardware Abstraction Layer Header
+ * PROGRAMMERS:     ReactOS Portable Systems Group
+ */
+
+/* INCLUDES ******************************************************************/
+
+/* C Headers */
+#include <stdio.h>
+
+/* WDK HAL Compilation hack */
+#ifdef _MSC_VER
+#include <excpt.h>
+#include <ntdef.h>
+#undef _NTHAL_
+#undef DECLSPEC_IMPORT
+#define DECLSPEC_IMPORT
+#define __declspec(dllimport)
+#endif
+
+/* IFS/DDK/NDK Headers */
+#include <ntifs.h>
+#include <bugcodes.h>
+#include <ntdddisk.h>
+#include <arc/arc.h>
+#include <iotypes.h>
+#include <kefuncs.h>
+#include <intrin.h>
+#include <halfuncs.h>
+#include <iofuncs.h>
+#include <ldrtypes.h>
+#include <obfuncs.h>
+
+/* Internal HAL Headers */
+#include "halp.h"
+
+/* Helper Header */
+#include <reactos/helper.h>
+
+/* EOF */

Propchange: branches/ros-amd64-bringup/reactos/hal/halamd64/include/hal.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/ros-amd64-bringup/reactos/hal/halamd64/include/halp.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/include/halp.h?rev=34812&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/include/halp.h (added)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/include/halp.h [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -1,0 +1,22 @@
+#ifndef __INTERNAL_HAL_HAL_H
+#define __INTERNAL_HAL_HAL_H
+
+//
+// ARM Headers
+//
+#include <internal/arm/ke.h>
+#include <internal/arm/intrin_i.h>
+
+//
+// Versatile Peripherals
+//
+#include <peripherals/pl011.h>
+#include <peripherals/pl190.h>
+#include <peripherals/sp804.h>
+
+//
+// WDK Hack
+//
+#define KdComPortInUse          _KdComPortInUse
+
+#endif /* __INTERNAL_HAL_HAL_H */

Propchange: branches/ros-amd64-bringup/reactos/hal/halamd64/include/halp.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/ros-amd64-bringup/reactos/hal/halamd64/up/halinit_up.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/up/halinit_up.c?rev=34812&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/up/halinit_up.c (added)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/up/halinit_up.c [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -1,0 +1,32 @@
+/* $Id: halinit_up.c 24964 2006-11-29 08:28:20Z ion $
+ *
+ * COPYRIGHT:     See COPYING in the top level directory
+ * PROJECT:       ReactOS kernel
+ * FILE:          ntoskrnl/hal/x86/halinit.c
+ * PURPOSE:       Initalize the x86 hal
+ * PROGRAMMER:    David Welch (welch at cwcom.net)
+ * UPDATE HISTORY:
+ *              11/06/98: Created
+ */
+
+/* INCLUDES *****************************************************************/
+
+#include <hal.h>
+#define NDEBUG
+#include <debug.h>
+
+/* FUNCTIONS ***************************************************************/
+
+VOID
+HalpInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
+{
+
+}
+
+VOID
+HalpInitPhase1(VOID)
+{
+
+}
+
+/* EOF */

Propchange: branches/ros-amd64-bringup/reactos/hal/halamd64/up/halinit_up.c
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rbuild
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rbuild?rev=34812&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rbuild (added)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rbuild [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -1,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<module name="halarm_up" type="kernelmodedll" installbase="system32" installname="hal.dll">
+	<importlibrary definition="../../hal/hal_amd64.def" />
+	<bootstrap installbase="$(CDOUTPUT)" nameoncd="hal.dll" />
+	<include base="halamd64_generic">../include</include>
+	<include base="ntoskrnl">include</include>
+	<define name="_DISABLE_TIDENTS" />
+	<define name="_NTHAL_" />
+	<library>halamd64_generic</library>
+	<library>ntoskrnl</library>
+	<file>halinit_up.c</file>
+	<file>halup.rc</file>
+</module>

Propchange: branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rbuild
------------------------------------------------------------------------------
    svn:eol-style = native

Added: branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rc
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rc?rev=34812&view=auto
==============================================================================
--- branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rc (added)
+++ branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rc [iso-8859-1] Sat Jul 26 16:18:00 2008
@@ -1,0 +1,5 @@
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION	"AMD64 Uniprocessor Hardware Abstraction Layer\0"
+#define REACTOS_STR_INTERNAL_NAME	"halup\0"
+#define REACTOS_STR_ORIGINAL_FILENAME	"halup.dll\0"
+#include <reactos/version.rc>

Propchange: branches/ros-amd64-bringup/reactos/hal/halamd64/up/halup.rc
------------------------------------------------------------------------------
    svn:eol-style = native



More information about the Ros-diffs mailing list