Don't use hal_generic_pc.rbuild. Remove obsolete hal.c. Add apic.c from x86 to build. Add some stubs.

svn path=/branches/ros-amd64-bringup/; revision=35947
This commit is contained in:
Timo Kreuzer 2008-09-04 19:11:19 +00:00
parent 2b96a78f9a
commit a6a7745b55
8 changed files with 135 additions and 823 deletions

View file

@ -27,7 +27,6 @@
<if property="ARCH" value="amd64">
<directory name="halx86">
<xi:include href="halx86/hal_generic_amd64.rbuild" />
<xi:include href="halx86/hal_generic_pc.rbuild" />
</directory>
<directory name="halamd64">
<xi:include href="halamd64/directory.rbuild" />

View file

@ -14,9 +14,9 @@ HalAssignSlotResources
HalCalibratePerformanceCounter
HalClearSoftwareInterrupt
;HalConvertDeviceIdtToIrql
;HalDisableInterrupt
HalDisableInterrupt
HalDisplayString
;HalEnableInterrupt
HalEnableInterrupt
;HalEnumerateEnvironmentVariablesEx
;HalEnumerateProcessors
HalFlushCommonBuffer
@ -52,7 +52,7 @@ HalRequestIpi
HalRequestSoftwareInterrupt
HalReturnToFirmware
;HalSendNMI
;HalSendSoftwareInterrupt
HalSendSoftwareInterrupt
HalSetBusData
HalSetBusDataByOffset
HalSetDisplayParameters

View file

@ -9,6 +9,7 @@
<file>halinit.c</file>
<file>irq.S</file>
<file>misc.c</file>
<file>mps.S</file>
<file>systimer.S</file>
<pch>../include/hal.h</pch>
</module>

View file

@ -1,781 +0,0 @@
/*
* 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>
#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;
/* 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;
}
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)
{
KEBUGCHECK(0);
return 0;
}
VOID
HalpClockInterrupt(VOID)
{
KEBUGCHECK(0);
return;
}
VOID
HalpStallInterrupt(VOID)
{
KEBUGCHECK(0);
return;
}
VOID
HalpInitializeInterrupts(VOID)
{
KEBUGCHECK(0);
return;
}
/*
* @implemented
*/
BOOLEAN
NTAPI
HalInitSystem(IN ULONG BootPhase,
IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
KEBUGCHECK(0);
return;
}
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)
{
KEBUGCHECK(0);
return TRUE;
}
ULONG
NTAPI
HalReadDmaCounter(
PADAPTER_OBJECT AdapterObject)
{
UNIMPLEMENTED;
return 0;
}
VOID
NTAPI
HalReportResourceUsage(VOID)
{
UNIMPLEMENTED;
}
VOID
NTAPI
HalRequestIpi(
KAFFINITY TargetSet)
{
UNIMPLEMENTED;
}
VOID
FASTCALL
HalRequestSoftwareInterrupt(IN KIRQL Request)
{
KEBUGCHECK(0);
return;
}
VOID
FASTCALL
HalClearSoftwareInterrupt(IN KIRQL Request)
{
KEBUGCHECK(0);
return;
}
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)
{
UNIMPLEMENTED;
return;
}
BOOLEAN HalpProcessorIdentified;
BOOLEAN HalpTestCleanSupported;
VOID
HalpIdentifyProcessor(VOID)
{
UNIMPLEMENTED;
return;
}
VOID
HalSweepDcache(VOID)
{
UNIMPLEMENTED;
return;
}
VOID
HalSweepIcache(VOID)
{
UNIMPLEMENTED;
return;
}
/* EOF */

View file

@ -34,13 +34,44 @@
.globl _HalpInitPICs
.func _HalpInitPICs
_HalpInitPICs:
UNIMPLEMENTED "HalpInitPICs"
UNIMPLEMENTED "HalpInitPICs"
.endfunc
.global _HalEnableInterrupt
.func _HalEnableInterrupt
_HalEnableInterrupt:
UNIMPLEMENTED "HalEnableInterrupt"
.endfunc
.global _HalDisableInterrupt
.func _HalDisableInterrupt
_HalDisableInterrupt:
UNIMPLEMENTED "HalDisableInterrupt"
.endfunc
.global _HalRequestSoftwareInterrupt
.func _HalRequestSoftwareInterrupt
_HalRequestSoftwareInterrupt:
UNIMPLEMENTED "HalRequestSoftwareInterrupt"
.endfunc
.global _HalSendSoftwareInterrupt
.func _HalSendSoftwareInterrupt
_HalSendSoftwareInterrupt:
UNIMPLEMENTED "HalSendSoftwareInterrupt"
.endfunc
.global _HalEndSystemInterrupt
.func _HalEndSystemInterrupt
_HalEndSystemInterrupt:
UNIMPLEMENTED "HalEndSystemInterrupt"
.endfunc
.globl _HalClearSoftwareInterrupt
.func _HalClearSoftwareInterrupt
_HalClearSoftwareInterrupt:
UNIMPLEMENTED "HalClearSoftwareInterrupt"
/* Get IRR mask */
mov eax, 1
@ -52,42 +83,9 @@ _HalClearSoftwareInterrupt:
ret
.endfunc
.globl _HalRequestSoftwareInterrupt
.func _HalRequestSoftwareInterrupt
_HalRequestSoftwareInterrupt:
UNIMPLEMENTED "HalRequestSoftwareInterrupt"
.endfunc
.globl _HalBeginSystemInterrupt
.func _HalBeginSystemInterrupt
_HalBeginSystemInterrupt:
UNIMPLEMENTED "HalBeginSystemInterrupt"
.endfunc
.globl _HalpApcInterrupt
.func _HalpApcInterrupt
//TRAP_FIXUPS hapc_a, hapc_t, DoFixupV86, DoFixupAbios
_HalpApcInterrupt:
UNIMPLEMENTED "HalpApcInterrupt"
.endfunc
.globl _HalpApcInterrupt2ndEntry
.func _HalpApcInterrupt2ndEntry
_HalpApcInterrupt2ndEntry:
UNIMPLEMENTED "HalpApcInterrupt2ndEntry"
.endfunc
.globl _HalpDispatchInterrupt
.func _HalpDispatchInterrupt
//TRAP_FIXUPS hdpc_a, hdpc_t, DoFixupV86, DoFixupAbios
_HalpDispatchInterrupt:
UNIMPLEMENTED "HalpDispatchInterrupt"
.endfunc
.globl _HalpDispatchInterrupt2ndEntry
.func _HalpDispatchInterrupt2ndEntry
_HalpDispatchInterrupt2ndEntry:
UNIMPLEMENTED "HalpDispatchInterrupt2ndEntry"
UNIMPLEMENTED "HalBeginSystemInterrupt"
.endfunc

View file

@ -0,0 +1,95 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/hal/amd64/generic/mps.S
* PURPOSE: Intel MultiProcessor specification support
* PROGRAMMER: Casper S. Hornstrup (chorns@users.sourceforge.net)
*/
/* INCLUDES ******************************************************************/
#include <ndk/asm.h>
/* FUNCTIONS *****************************************************************/
#define BEFORE \
cld; \
pushq %rax; \
pushq %rbx; \
pushq %rcx; \
pushq %rdx; \
pushq %rsi; \
pushq %rdi; \
pushq %fs; \
pushq %gs; \
#define AFTER \
popq %gs; \
popq %fs; \
popq %rdi; \
popq %rsi; \
popq %rdx; \
popq %rcx; \
popq %rbx; \
popq %rax; \
#ifdef CONFIG_SMP
.global _MpsIpiInterrupt
_MpsIpiInterrupt:
/* Save registers */
BEFORE
/* Call the C handler */
call _MpsIpiHandler
/* Return to the caller */
AFTER
iret
#endif
.globl _MpsErrorInterrupt
_MpsErrorInterrupt:
/* Save registers */
BEFORE
/* Call the C handler */
call _MpsErrorHandler
/* Return to the caller */
AFTER
iret
.globl _MpsSpuriousInterrupt
_MpsSpuriousInterrupt:
/* Save registers */
BEFORE
/* Call the C handler */
call _MpsSpuriousHandler
/* Return to the caller */
AFTER
iret
.global _MpsTimerInterrupt
_MpsTimerInterrupt:
/* Save registers */
BEFORE
movl $0xef,%ebx
movl $0xceafbeef,%eax
pushq %rax
pushq %rsp
pushq %rbx
call _MpsTimerHandler
popq %rax
popq %rax
popq %rax
/* Return to the caller */
AFTER
iret
/* EOF */

View file

@ -8,7 +8,6 @@
<define name="_DISABLE_TIDENTS" />
<define name="_NTHAL_" />
<library>hal_generic_amd64</library>
<library>hal_generic_pc</library>
<library>hal_generic</library>
<library>ntoskrnl</library>
<file>halinit_up.c</file>

View file

@ -13,13 +13,14 @@
<file>dma.c</file>
<file>drive.c</file>
<file>display.c</file>
<file>pci.c</file>
<file>profil.c</file>
<file>reboot.c</file>
<file>sysinfo.c</file>
<file>timer.c</file>
</directory>
<directory name="mp">
<!-- file>apic.c</file -->
<file>apic.c</file>
</directory>
<directory name="include">
<pch>hal.h</pch>