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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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(a)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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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(a)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/h…
==============================================================================
--- 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/h…
==============================================================================
--- 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