From 5ec7192b662643e99d6df3e4f67455ff75296953 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Thu, 31 Dec 2009 21:23:01 +0000 Subject: [PATCH] [HAL] - Move the rest from halamd64 to halx86 svn path=/branches/ros-amd64-bringup/; revision=44835 --- reactos/hal/hal.rbuild | 5 - reactos/hal/halamd64/directory.rbuild | 7 - reactos/hal/halamd64/generic/generic.rbuild | 16 - reactos/hal/halamd64/include/bus.h | 296 ------------------ reactos/hal/halamd64/include/hal.h | 52 --- reactos/hal/halamd64/include/halp.h | 176 ----------- .../generic/amd64}/halinit.c | 0 .../generic => halx86/generic/amd64}/misc.c | 0 .../generic => halx86/generic/amd64}/pic.c | 0 .../generic => halx86/generic/amd64}/usage.c | 0 reactos/hal/halx86/hal_generic.rbuild | 4 + reactos/hal/halx86/halamd64.rbuild | 9 +- reactos/hal/halx86/halmps.rbuild | 8 +- .../generic => halx86/mp/amd64}/mps.S | 0 reactos/hal/halx86/mp/{ => i386}/mps.S | 0 reactos/hal/halx86/mp/{ => i386}/mpsboot.asm | 0 reactos/hal/halx86/mp/{ => i386}/spinlock.c | 0 17 files changed, 14 insertions(+), 559 deletions(-) delete mode 100644 reactos/hal/halamd64/directory.rbuild delete mode 100644 reactos/hal/halamd64/generic/generic.rbuild delete mode 100644 reactos/hal/halamd64/include/bus.h delete mode 100644 reactos/hal/halamd64/include/hal.h delete mode 100644 reactos/hal/halamd64/include/halp.h rename reactos/hal/{halamd64/generic => halx86/generic/amd64}/halinit.c (100%) rename reactos/hal/{halamd64/generic => halx86/generic/amd64}/misc.c (100%) rename reactos/hal/{halamd64/generic => halx86/generic/amd64}/pic.c (100%) rename reactos/hal/{halamd64/generic => halx86/generic/amd64}/usage.c (100%) rename reactos/hal/{halamd64/generic => halx86/mp/amd64}/mps.S (100%) rename reactos/hal/halx86/mp/{ => i386}/mps.S (100%) rename reactos/hal/halx86/mp/{ => i386}/mpsboot.asm (100%) rename reactos/hal/halx86/mp/{ => i386}/spinlock.c (100%) diff --git a/reactos/hal/hal.rbuild b/reactos/hal/hal.rbuild index 6f873c833be..a7cf4bb0274 100644 --- a/reactos/hal/hal.rbuild +++ b/reactos/hal/hal.rbuild @@ -15,9 +15,4 @@ - - - - - diff --git a/reactos/hal/halamd64/directory.rbuild b/reactos/hal/halamd64/directory.rbuild deleted file mode 100644 index 78a530357b0..00000000000 --- a/reactos/hal/halamd64/directory.rbuild +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/reactos/hal/halamd64/generic/generic.rbuild b/reactos/hal/halamd64/generic/generic.rbuild deleted file mode 100644 index da566068ca9..00000000000 --- a/reactos/hal/halamd64/generic/generic.rbuild +++ /dev/null @@ -1,16 +0,0 @@ - - - - - ../include - include - - - halinit.c - misc.c - mps.S - usage.c - pic.c - ../include/hal.h - - diff --git a/reactos/hal/halamd64/include/bus.h b/reactos/hal/halamd64/include/bus.h deleted file mode 100644 index 9f58d4055e0..00000000000 --- a/reactos/hal/halamd64/include/bus.h +++ /dev/null @@ -1,296 +0,0 @@ -#ifndef __INTERNAL_HAL_BUS_H -#define __INTERNAL_HAL_BUS_H - -// -// Helper Macros -// -#define PASTE2(x,y) x ## y -#define POINTER_TO_(x) PASTE2(P,x) -#define READ_FROM(x) PASTE2(READ_PORT_, x) -#define WRITE_TO(x) PASTE2(WRITE_PORT_, x) - -// -// Declares a PCI Register Read/Write Routine -// -#define TYPE_DEFINE(x, y) \ - ULONG \ - NTAPI \ - x( \ - IN PPCIPBUSDATA BusData, \ - IN y PciCfg, \ - IN PUCHAR Buffer, \ - IN ULONG Offset \ - ) -#define TYPE1_DEFINE(x) TYPE_DEFINE(x, PPCI_TYPE1_CFG_BITS); -#define TYPE2_DEFINE(x) TYPE_DEFINE(x, PPCI_TYPE2_ADDRESS_BITS); - -// -// Defines a PCI Register Read/Write Type 1 Routine Prologue and Epilogue -// -#define TYPE1_START(x, y) \ - TYPE_DEFINE(x, PPCI_TYPE1_CFG_BITS) \ -{ \ - ULONG i = Offset % sizeof(ULONG); \ - PciCfg->u.bits.RegisterNumber = Offset / sizeof(ULONG); \ - WRITE_PORT_ULONG(BusData->Config.Type1.Address, PciCfg->u.AsULONG); -#define TYPE1_END(y) \ - return sizeof(y); } -#define TYPE2_END TYPE1_END - -// -// PCI Register Read Type 1 Routine -// -#define TYPE1_READ(x, y) \ - TYPE1_START(x, y) \ - *((POINTER_TO_(y))Buffer) = \ - READ_FROM(y)((POINTER_TO_(y))(ULONG_PTR)(BusData->Config.Type1.Data + i)); \ - TYPE1_END(y) - -// -// PCI Register Write Type 1 Routine -// -#define TYPE1_WRITE(x, y) \ - TYPE1_START(x, y) \ - WRITE_TO(y)((POINTER_TO_(y))(ULONG_PTR)(BusData->Config.Type1.Data + i), \ - *((POINTER_TO_(y))Buffer)); \ - TYPE1_END(y) - -// -// Defines a PCI Register Read/Write Type 2 Routine Prologue and Epilogue -// -#define TYPE2_START(x, y) \ - TYPE_DEFINE(x, PPCI_TYPE2_ADDRESS_BITS) \ -{ \ - PciCfg->u.bits.RegisterNumber = (USHORT)Offset; - -// -// PCI Register Read Type 2 Routine -// -#define TYPE2_READ(x, y) \ - TYPE2_START(x, y) \ - *((POINTER_TO_(y))Buffer) = \ - READ_FROM(y)((POINTER_TO_(y))(ULONG_PTR)PciCfg->u.AsUSHORT); \ - TYPE2_END(y) - -// -// PCI Register Write Type 2 Routine -// -#define TYPE2_WRITE(x, y) \ - TYPE2_START(x, y) \ - WRITE_TO(y)((POINTER_TO_(y))(ULONG_PTR)PciCfg->u.AsUSHORT, \ - *((POINTER_TO_(y))Buffer)); \ - TYPE2_END(y) - -typedef struct _PCIPBUSDATA -{ - PCIBUSDATA CommonData; - union - { - struct - { - PULONG Address; - ULONG Data; - } Type1; - struct - { - PUCHAR CSE; - PUCHAR Forward; - ULONG Base; - } Type2; - } Config; - ULONG MaxDevice; -} PCIPBUSDATA, *PPCIPBUSDATA; - -typedef ULONG -(NTAPI *FncConfigIO)( - IN PPCIPBUSDATA BusData, - IN PVOID State, - IN PUCHAR Buffer, - IN ULONG Offset -); - -typedef VOID -(NTAPI *FncSync)( - IN PBUS_HANDLER BusHandler, - IN PCI_SLOT_NUMBER Slot, - IN PKIRQL Irql, - IN PVOID State -); - -typedef VOID -(NTAPI *FncReleaseSync)( - IN PBUS_HANDLER BusHandler, - IN KIRQL Irql -); - -typedef struct _PCI_CONFIG_HANDLER -{ - FncSync Synchronize; - FncReleaseSync ReleaseSynchronzation; - FncConfigIO ConfigRead[3]; - FncConfigIO ConfigWrite[3]; -} PCI_CONFIG_HANDLER, *PPCI_CONFIG_HANDLER; - -typedef struct _PCI_REGISTRY_INFO_INTERNAL -{ - UCHAR MajorRevision; - UCHAR MinorRevision; - UCHAR NoBuses; - UCHAR HardwareMechanism; - ULONG ElementCount; - PCI_CARD_DESCRIPTOR CardList[ANYSIZE_ARRAY]; -} PCI_REGISTRY_INFO_INTERNAL, *PPCI_REGISTRY_INFO_INTERNAL; - -/* FUNCTIONS *****************************************************************/ - -VOID -NTAPI -HalpPCISynchronizeType1( - IN PBUS_HANDLER BusHandler, - IN PCI_SLOT_NUMBER Slot, - IN PKIRQL Irql, - IN PPCI_TYPE1_CFG_BITS PciCfg -); - -VOID -NTAPI -HalpPCIReleaseSynchronzationType1( - IN PBUS_HANDLER BusHandler, - IN KIRQL Irql -); - -VOID -NTAPI -HalpPCISynchronizeType2( - IN PBUS_HANDLER BusHandler, - IN PCI_SLOT_NUMBER Slot, - IN PKIRQL Irql, - IN PPCI_TYPE2_ADDRESS_BITS PciCfg -); - -VOID -NTAPI -HalpPCIReleaseSynchronizationType2( - IN PBUS_HANDLER BusHandler, - IN KIRQL Irql -); - -TYPE1_DEFINE(HalpPCIReadUcharType1); -TYPE1_DEFINE(HalpPCIReadUshortType1); -TYPE1_DEFINE(HalpPCIReadUlongType1); -TYPE2_DEFINE(HalpPCIReadUcharType2); -TYPE2_DEFINE(HalpPCIReadUshortType2); -TYPE2_DEFINE(HalpPCIReadUlongType2); -TYPE1_DEFINE(HalpPCIWriteUcharType1); -TYPE1_DEFINE(HalpPCIWriteUshortType1); -TYPE1_DEFINE(HalpPCIWriteUlongType1); -TYPE2_DEFINE(HalpPCIWriteUcharType2); -TYPE2_DEFINE(HalpPCIWriteUshortType2); -TYPE2_DEFINE(HalpPCIWriteUlongType2); - -BOOLEAN -NTAPI -HalpValidPCISlot( - IN PBUS_HANDLER BusHandler, - IN PCI_SLOT_NUMBER Slot -); - -VOID -NTAPI -HalpReadPCIConfig( - IN PBUS_HANDLER BusHandler, - IN PCI_SLOT_NUMBER Slot, - IN PVOID Buffer, - IN ULONG Offset, - IN ULONG Length -); - -VOID -NTAPI -HalpWritePCIConfig( - IN PBUS_HANDLER BusHandler, - IN PCI_SLOT_NUMBER Slot, - IN PVOID Buffer, - IN ULONG Offset, - IN ULONG Length -); - -ULONG -NTAPI -HalpGetSystemInterruptVector( - ULONG BusNumber, - ULONG BusInterruptLevel, - ULONG BusInterruptVector, - PKIRQL Irql, - PKAFFINITY Affinity -); - -ULONG -NTAPI -HalpGetCmosData( - IN ULONG BusNumber, - IN ULONG SlotNumber, - IN PVOID Buffer, - IN ULONG Length -); - -ULONG -NTAPI -HalpSetCmosData( - IN ULONG BusNumber, - IN ULONG SlotNumber, - IN PVOID Buffer, - IN ULONG Length -); - -ULONG -NTAPI -HalpGetPCIData( - IN PBUS_HANDLER BusHandler, - IN PBUS_HANDLER RootBusHandler, - IN PCI_SLOT_NUMBER SlotNumber, - IN PUCHAR Buffer, - IN ULONG Offset, - IN ULONG Length -); - -ULONG -NTAPI -HalpSetPCIData( - IN PBUS_HANDLER BusHandler, - IN PBUS_HANDLER RootBusHandler, - IN PCI_SLOT_NUMBER SlotNumber, - IN PUCHAR Buffer, - IN ULONG Offset, - IN ULONG Length -); - -NTSTATUS -NTAPI -HalpAssignPCISlotResources( - IN PBUS_HANDLER BusHandler, - IN PBUS_HANDLER RootHandler, - IN PUNICODE_STRING RegistryPath, - IN PUNICODE_STRING DriverClassName OPTIONAL, - IN PDRIVER_OBJECT DriverObject, - IN PDEVICE_OBJECT DeviceObject OPTIONAL, - IN ULONG Slot, - IN OUT PCM_RESOURCE_LIST *pAllocatedResources -); - -VOID -NTAPI -HalpInitializePciBus( - VOID -); - -extern ULONG HalpBusType; -extern BOOLEAN HalpPCIConfigInitialized; -extern BUS_HANDLER HalpFakePciBusHandler; -extern ULONG HalpMinPciBus, HalpMaxPciBus; - -#endif /* __INTERNAL_HAL_BUS_H */ - -/* EOF */ - - diff --git a/reactos/hal/halamd64/include/hal.h b/reactos/hal/halamd64/include/hal.h deleted file mode 100644 index c793782d06a..00000000000 --- a/reactos/hal/halamd64/include/hal.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS Hardware Abstraction Layer - * FILE: hal/halx86/include/hal.h - * PURPOSE: HAL Header - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - */ - -/* INCLUDES ******************************************************************/ - -/* C Headers */ -#include - -/* WDK HAL Compilation hack */ -#ifdef _MSC_VER -#include -#include -#undef _NTHAL_ -#undef DECLSPEC_IMPORT -#define DECLSPEC_IMPORT -#define __declspec(dllimport) -#endif - -/* IFS/DDK/NDK Headers */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* Internal kernel headers */ -#include "internal/pci.h" -#include "internal/i386/intrin_i.h" - -/* Internal HAL Headers */ -//#include "apic.h" -#include "bus.h" -//#include "halirq.h" -//#include "haldma.h" -#include "halp.h" -//#include "mps.h" -//#include "ioapic.h" - -/* Helper Header */ -#include - -/* EOF */ diff --git a/reactos/hal/halamd64/include/halp.h b/reactos/hal/halamd64/include/halp.h deleted file mode 100644 index 4004a857dfe..00000000000 --- a/reactos/hal/halamd64/include/halp.h +++ /dev/null @@ -1,176 +0,0 @@ -/* - * - */ - -#ifndef __INTERNAL_HAL_HAL_H -#define __INTERNAL_HAL_HAL_H - -#define HAL_APC_REQUEST 0 -#define HAL_DPC_REQUEST 1 - -/* CMOS Registers and Ports */ -#define CMOS_CONTROL_PORT (PUCHAR)0x70 -#define CMOS_DATA_PORT (PUCHAR)0x71 -#define RTC_REGISTER_A 0x0A -#define RTC_REGISTER_B 0x0B -#define RTC_REG_A_UIP 0x80 -#define RTC_REGISTER_CENTURY 0x32 - -/* Timer Registers and Ports */ -#define TIMER_CONTROL_PORT 0x43 -#define TIMER_DATA_PORT0 0x40 -#define TIMER_SC0 0 -#define TIMER_BOTH 0x30 -#define TIMER_MD2 0x4 - -/* Conversion functions */ -#define BCD_INT(bcd) \ - (((bcd & 0xF0) >> 4) * 10 + (bcd & 0x0F)) -#define INT_BCD(int) \ - (UCHAR)(((int / 10) << 4) + (int % 10)) - -/* adapter.c */ -PADAPTER_OBJECT NTAPI HalpAllocateAdapterEx(ULONG NumberOfMapRegisters,BOOLEAN IsMaster, BOOLEAN Dma32BitAddresses); - -/* bus.c */ -VOID NTAPI HalpInitNonBusHandler (VOID); - -/* irql.c */ -VOID NTAPI HalpInitPICs(VOID); - -/* udelay.c */ -VOID NTAPI HalpInitializeClock(VOID); - -/* pci.c */ -VOID HalpInitPciBus (VOID); - -/* dma.c */ -VOID HalpInitDma (VOID); - -/* Non-generic initialization */ -VOID HalpInitPhase0 (PLOADER_PARAMETER_BLOCK LoaderBlock); -VOID HalpInitPhase1(VOID); -VOID NTAPI HalpClockInterrupt(VOID); - -// -// KD Support -// -VOID -NTAPI -HalpCheckPowerButton( - VOID -); - -VOID -NTAPI -HalpRegisterKdSupportFunctions( - VOID -); - -NTSTATUS -NTAPI -HalpSetupPciDeviceForDebugging( - IN PVOID LoaderBlock, - IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice -); - -NTSTATUS -NTAPI -HalpReleasePciDeviceForDebugging( - IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice -); - -// -// Memory routines -// -PVOID -NTAPI -HalpMapPhysicalMemory64( - IN PHYSICAL_ADDRESS PhysicalAddress, - IN ULONG NumberPage -); - -VOID -NTAPI -HalpUnmapVirtualAddress( - IN PVOID VirtualAddress, - IN ULONG NumberPages -); - -/* sysinfo.c */ -NTSTATUS -NTAPI -HaliQuerySystemInformation( - IN HAL_QUERY_INFORMATION_CLASS InformationClass, - IN ULONG BufferSize, - IN OUT PVOID Buffer, - OUT PULONG ReturnedLength -); - -NTSTATUS -NTAPI -HaliSetSystemInformation( - IN HAL_SET_INFORMATION_CLASS InformationClass, - IN ULONG BufferSize, - IN OUT PVOID Buffer -); - -// -// BIOS Routines -// -BOOLEAN -NTAPI -HalpBiosDisplayReset( - VOID -); - -ULONG -NTAPI -HalpBorrowTss( - VOID -); - -ULONG -NTAPI -HalpReturnTss( - ULONG SavedTss -); - -VOID -NTAPI -HalpBiosCall( - VOID -); - -VOID -NTAPI -HalpTrap0D( - VOID -); - -VOID -NTAPI -HalpTrap06( - VOID -); - -PDMA_ADAPTER -NTAPI -HalpGetDmaAdapter( - IN PVOID Context, - IN PDEVICE_DESCRIPTION DeviceDescription, - OUT PULONG NumberOfMapRegisters); - -VOID HaliInitBSP(VOID); -VOID HaliStartApplicationProcessor(ULONG Cpu, ULONG Stack); - -VOID NTAPI HalpInitIdtEntry(PKIDTENTRY64 Idt, PVOID Address); -VOID NTAPI HalpSetInterruptGate(ULONG Index, PVOID Address); -VOID NTAPI HalpInitCpuInterruptHandling(ULONG Cpu); - -extern PVOID HalpRealModeStart; -extern PVOID HalpRealModeEnd; - -extern KSPIN_LOCK HalpSystemHardwareLock; - -#endif /* __INTERNAL_HAL_HAL_H */ diff --git a/reactos/hal/halamd64/generic/halinit.c b/reactos/hal/halx86/generic/amd64/halinit.c similarity index 100% rename from reactos/hal/halamd64/generic/halinit.c rename to reactos/hal/halx86/generic/amd64/halinit.c diff --git a/reactos/hal/halamd64/generic/misc.c b/reactos/hal/halx86/generic/amd64/misc.c similarity index 100% rename from reactos/hal/halamd64/generic/misc.c rename to reactos/hal/halx86/generic/amd64/misc.c diff --git a/reactos/hal/halamd64/generic/pic.c b/reactos/hal/halx86/generic/amd64/pic.c similarity index 100% rename from reactos/hal/halamd64/generic/pic.c rename to reactos/hal/halx86/generic/amd64/pic.c diff --git a/reactos/hal/halamd64/generic/usage.c b/reactos/hal/halx86/generic/amd64/usage.c similarity index 100% rename from reactos/hal/halamd64/generic/usage.c rename to reactos/hal/halx86/generic/amd64/usage.c diff --git a/reactos/hal/halx86/hal_generic.rbuild b/reactos/hal/halx86/hal_generic.rbuild index 3b465cc819e..b2acc9bc052 100644 --- a/reactos/hal/halx86/hal_generic.rbuild +++ b/reactos/hal/halx86/hal_generic.rbuild @@ -38,8 +38,12 @@ + halinit.c irq.s + misc.c + pic.c systimer.S + usage.c diff --git a/reactos/hal/halx86/halamd64.rbuild b/reactos/hal/halx86/halamd64.rbuild index 43126c4a08a..2db1ca91afd 100644 --- a/reactos/hal/halx86/halamd64.rbuild +++ b/reactos/hal/halx86/halamd64.rbuild @@ -7,7 +7,6 @@ include - hal_generic_amd64 hal_generic hal_generic_up ntoskrnl @@ -17,7 +16,9 @@ halup.rc - + + + mps.S + + diff --git a/reactos/hal/halx86/halmps.rbuild b/reactos/hal/halx86/halmps.rbuild index 7aededdb93e..35c2556ba2e 100644 --- a/reactos/hal/halx86/halmps.rbuild +++ b/reactos/hal/halx86/halmps.rbuild @@ -16,12 +16,14 @@ ioapic.c ipi_mp.c mpconfig.c - mps.S - mpsboot.asm mpsirql.c processor_mp.c - spinlock.c halmp.rc + + mps.S + mpsboot.asm + spinlock.c + diff --git a/reactos/hal/halamd64/generic/mps.S b/reactos/hal/halx86/mp/amd64/mps.S similarity index 100% rename from reactos/hal/halamd64/generic/mps.S rename to reactos/hal/halx86/mp/amd64/mps.S diff --git a/reactos/hal/halx86/mp/mps.S b/reactos/hal/halx86/mp/i386/mps.S similarity index 100% rename from reactos/hal/halx86/mp/mps.S rename to reactos/hal/halx86/mp/i386/mps.S diff --git a/reactos/hal/halx86/mp/mpsboot.asm b/reactos/hal/halx86/mp/i386/mpsboot.asm similarity index 100% rename from reactos/hal/halx86/mp/mpsboot.asm rename to reactos/hal/halx86/mp/i386/mpsboot.asm diff --git a/reactos/hal/halx86/mp/spinlock.c b/reactos/hal/halx86/mp/i386/spinlock.c similarity index 100% rename from reactos/hal/halx86/mp/spinlock.c rename to reactos/hal/halx86/mp/i386/spinlock.c