From d9dd6117507d55e39d7cf5bb7eac13195f1826ec Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Fri, 2 Sep 2011 14:45:19 +0000 Subject: [PATCH] [HAL] - Flatten the directory structure - use static libraries in cmake builds as well to save build time svn path=/trunk/; revision=53529 --- reactos/hal/halx86/CMakeLists.txt | 107 +++++++++--------- .../hal/halx86/{generic => }/acpi/busemul.c | 0 .../hal/halx86/{generic => }/acpi/halacpi.c | 0 .../hal/halx86/{generic => }/acpi/halpnpdd.c | 0 reactos/hal/halx86/amd64/halinit.c | 36 ++++-- reactos/hal/halx86/generic/acpi/.gitignore | 0 reactos/hal/halx86/generic/halinit.c | 23 +--- reactos/hal/halx86/generic/legacy/.gitignore | 0 .../hal/halx86/generic/{i386 => }/portio.c | 0 .../hal/halx86/generic/{i386 => }/systimer.S | 0 reactos/hal/halx86/generic/{i386 => }/trap.S | 0 reactos/hal/halx86/hal_generic.rbuild | 8 +- reactos/hal/halx86/hal_generic_acpi.rbuild | 20 ++-- reactos/hal/halx86/hal_generic_pcat.rbuild | 26 ++--- reactos/hal/halx86/hal_mini.rbuild | 24 ++-- .../{generic => }/legacy/bus/bushndlr.c | 0 .../halx86/{generic => }/legacy/bus/cmosbus.c | 0 .../halx86/{generic => }/legacy/bus/isabus.c | 0 .../{generic => }/legacy/bus/libpcidata.a | Bin .../halx86/{generic => }/legacy/bus/pcibus.c | 0 .../halx86/{generic => }/legacy/bus/pcidata.c | 0 .../halx86/{generic => }/legacy/bus/sysbus.c | 0 .../hal/halx86/{generic => }/legacy/bussupp.c | 0 .../hal/halx86/{generic => }/legacy/halpcat.c | 0 .../halx86/{generic => }/legacy/halpnpdd.c | 10 +- reactos/hal/halx86/mp/{i386 => }/mps.S | 0 reactos/hal/halx86/mp/{i386 => }/mpsboot.asm | 0 reactos/hal/halx86/mp/{i386 => }/mpsirql.c | 0 reactos/hal/halx86/up/halinit_up.c | 21 +++- 29 files changed, 143 insertions(+), 132 deletions(-) rename reactos/hal/halx86/{generic => }/acpi/busemul.c (100%) rename reactos/hal/halx86/{generic => }/acpi/halacpi.c (100%) rename reactos/hal/halx86/{generic => }/acpi/halpnpdd.c (100%) delete mode 100644 reactos/hal/halx86/generic/acpi/.gitignore delete mode 100644 reactos/hal/halx86/generic/legacy/.gitignore rename reactos/hal/halx86/generic/{i386 => }/portio.c (100%) rename reactos/hal/halx86/generic/{i386 => }/systimer.S (100%) rename reactos/hal/halx86/generic/{i386 => }/trap.S (100%) rename reactos/hal/halx86/{generic => }/legacy/bus/bushndlr.c (100%) rename reactos/hal/halx86/{generic => }/legacy/bus/cmosbus.c (100%) rename reactos/hal/halx86/{generic => }/legacy/bus/isabus.c (100%) rename reactos/hal/halx86/{generic => }/legacy/bus/libpcidata.a (100%) rename reactos/hal/halx86/{generic => }/legacy/bus/pcibus.c (100%) rename reactos/hal/halx86/{generic => }/legacy/bus/pcidata.c (100%) rename reactos/hal/halx86/{generic => }/legacy/bus/sysbus.c (100%) rename reactos/hal/halx86/{generic => }/legacy/bussupp.c (100%) rename reactos/hal/halx86/{generic => }/legacy/halpcat.c (100%) rename reactos/hal/halx86/{generic => }/legacy/halpnpdd.c (99%) rename reactos/hal/halx86/mp/{i386 => }/mps.S (100%) rename reactos/hal/halx86/mp/{i386 => }/mpsboot.asm (100%) rename reactos/hal/halx86/mp/{i386 => }/mpsirql.c (100%) diff --git a/reactos/hal/halx86/CMakeLists.txt b/reactos/hal/halx86/CMakeLists.txt index f5b97952542..b33fea9cb91 100644 --- a/reactos/hal/halx86/CMakeLists.txt +++ b/reactos/hal/halx86/CMakeLists.txt @@ -23,48 +23,54 @@ list(APPEND HAL_GENERIC_SOURCE if(ARCH MATCHES i386) list(APPEND HAL_GENERIC_SOURCE generic/bios.c - generic/halinit.c generic/timer.c - generic/i386/portio.c - generic/i386/systimer.S - generic/i386/trap.S) + generic/portio.c + generic/systimer.S + generic/trap.S) endif() -list(APPEND HAL_GENERIC_PCAT_SOURCE - generic/legacy/bus/bushndlr.c - generic/legacy/bus/cmosbus.c - generic/legacy/bus/isabus.c - generic/legacy/bus/pcibus.c - generic/legacy/bus/pcidata.c - generic/legacy/bus/sysbus.c - generic/legacy/bussupp.c - generic/legacy/halpnpdd.c - generic/legacy/halpcat.c) - -list(APPEND HAL_GENERIC_ACPI_SOURCE - generic/acpi/halacpi.c - generic/acpi/halpnpdd.c - generic/acpi/busemul.c - generic/legacy/bus/pcibus.c) +add_library(lib_hal_generic ${HAL_GENERIC_SOURCE}) +add_pch(lib_hal_generic include/hal.h) + +list(APPEND HAL_LEGACY_SOURCE + legacy/bus/bushndlr.c + legacy/bus/cmosbus.c + legacy/bus/isabus.c + legacy/bus/pcibus.c + legacy/bus/pcidata.c + legacy/bus/sysbus.c + legacy/bussupp.c + legacy/halpnpdd.c + legacy/halpcat.c) + +add_library(lib_hal_legacy ${HAL_LEGACY_SOURCE}) +add_pch(lib_hal_legacy include/hal.h) +target_link_libraries(lib_hal_legacy lib_hal_generic) + +list(APPEND HAL_ACPI_SOURCE + acpi/halacpi.c + acpi/halpnpdd.c + acpi/busemul.c + legacy/bus/pcibus.c) + +add_library(lib_hal_acpi ${HAL_ACPI_SOURCE}) +add_pch(lib_hal_acpi include/hal.h) +target_link_libraries(lib_hal_acpi lib_hal_generic) if(ARCH MATCHES i386) - list(APPEND HAL_GENERIC_ACPI_SOURCE - generic/halinit.c) - - list(APPEND HAL_GENERIC_UP_SOURCE - generic/spinlock.c + list(APPEND HAL_UP_SOURCE up/pic.c up/processor.c) list(APPEND MINI_HAL_SOURCE - generic/i386/portio.c - generic/i386/systimer.S - generic/legacy/bus/bushndlr.c - generic/legacy/bus/cmosbus.c - generic/legacy/bus/isabus.c - generic/legacy/bus/pcibus.c - generic/legacy/bus/sysbus.c - generic/legacy/bussupp.c + generic/portio.c + generic/systimer.S + legacy/bus/bushndlr.c + legacy/bus/cmosbus.c + legacy/bus/isabus.c + legacy/bus/pcibus.c + legacy/bus/sysbus.c + legacy/bussupp.c generic/beep.c generic/bios.c generic/cmos.c @@ -84,42 +90,38 @@ if(ARCH MATCHES i386) spec2def(hal.dll ../hal.spec) - list(APPEND HAL_SOURCE - ${HAL_GENERIC_SOURCE} - ${HAL_GENERIC_PCAT_SOURCE} - ${HAL_GENERIC_UP_SOURCE} + # hal + add_library(hal SHARED + ${HAL_UP_SOURCE} up/halinit_up.c up/halup.rc + generic/spinlock.c + generic/halinit.c ${CMAKE_CURRENT_BINARY_DIR}/hal.def) - - # hal - add_library(hal SHARED ${HAL_SOURCE}) + target_link_libraries(hal lib_hal_generic lib_hal_legacy libcntpr) + add_importlibs(hal ntoskrnl) add_pch(hal include/hal.h) add_dependencies(hal psdk bugcodes) - set_entrypoint(hal HalInitSystem 8) set_subsystem(hal native) set_image_base(hal 0x00010000) - add_importlibs(hal ntoskrnl) - target_link_libraries(hal libcntpr) - add_cd_file(TARGET hal DESTINATION reactos/system32 NO_CAB FOR all) # hal acpi spec2def(halacpi.dll ../hal.spec halacpi) add_library(halacpi SHARED - ${HAL_GENERIC_SOURCE} - ${HAL_GENERIC_ACPI_SOURCE} - ${HAL_GENERIC_UP_SOURCE} + ${HAL_UP_SOURCE} up/halinit_up.c up/halup.rc + generic/spinlock.c + generic/halinit.c ${CMAKE_CURRENT_BINARY_DIR}/halacpi.def) + target_link_libraries(halacpi lib_hal_generic lib_hal_acpi libcntpr) + add_importlibs(halacpi ntoskrnl) add_dependencies(halacpi psdk bugcodes) set_entrypoint(halacpi HalInitSystem@8) set_subsystem(halacpi native) set_image_base(halacpi 0x00010000) - add_importlibs(halacpi ntoskrnl) - target_link_libraries(halacpi libcntpr) set_property(TARGET halacpi PROPERTY COMPILE_DEFINITIONS CONFIG_ACPI) add_cd_file(TARGET halacpi DESTINATION reactos/system32 NO_CAB FOR all) @@ -134,11 +136,10 @@ elseif(ARCH MATCHES amd64) list(APPEND HAL_SOURCE ${HAL_GENERIC_SOURCE} - ${HAL_GENERIC_PCAT_SOURCE} - ${HAL_GENERIC_UP_SOURCE} - up/halinit_up.c - up/halup.rc + ${HAL_ACPI_SOURCE} + ${HAL_UP_SOURCE} generic/spinlock.c + generic/halinit.c amd64/x86bios.c amd64/halinit.c amd64/stubs.c diff --git a/reactos/hal/halx86/generic/acpi/busemul.c b/reactos/hal/halx86/acpi/busemul.c similarity index 100% rename from reactos/hal/halx86/generic/acpi/busemul.c rename to reactos/hal/halx86/acpi/busemul.c diff --git a/reactos/hal/halx86/generic/acpi/halacpi.c b/reactos/hal/halx86/acpi/halacpi.c similarity index 100% rename from reactos/hal/halx86/generic/acpi/halacpi.c rename to reactos/hal/halx86/acpi/halacpi.c diff --git a/reactos/hal/halx86/generic/acpi/halpnpdd.c b/reactos/hal/halx86/acpi/halpnpdd.c similarity index 100% rename from reactos/hal/halx86/generic/acpi/halpnpdd.c rename to reactos/hal/halx86/acpi/halpnpdd.c diff --git a/reactos/hal/halx86/amd64/halinit.c b/reactos/hal/halx86/amd64/halinit.c index 5d1a1f65db2..23c8746b345 100644 --- a/reactos/hal/halx86/amd64/halinit.c +++ b/reactos/hal/halx86/amd64/halinit.c @@ -3,7 +3,7 @@ * LICENSE: GPL - See COPYING in the top level directory * FILE: hal/halx86/amd64/halinit.c * PURPOSE: HAL Entrypoint and Initialization - * PROGRAMMERS: + * PROGRAMMERS: */ /* INCLUDES ******************************************************************/ @@ -20,14 +20,30 @@ BOOLEAN HalpPciLockSettings; /* FUNCTIONS *****************************************************************/ -/* - * @implemented - */ -BOOLEAN -NTAPI -HalInitSystem(IN ULONG BootPhase, - IN PLOADER_PARAMETER_BLOCK LoaderBlock) +VOID +HalpInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock) +{ + +} + +VOID +HalpInitPhase1(VOID) +{ + +} + +VOID +INIT_FUNCTION +HalpInitializeClock(VOID) +{ +} + +VOID +HalpCalibrateStallExecution() +{ +} + +VOID +HalpInitializePICs(IN BOOLEAN EnableInterrupts) { - UNIMPLEMENTED; - return FALSE; } diff --git a/reactos/hal/halx86/generic/acpi/.gitignore b/reactos/hal/halx86/generic/acpi/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/hal/halx86/generic/halinit.c b/reactos/hal/halx86/generic/halinit.c index f0011d71429..83eaad81bda 100644 --- a/reactos/hal/halx86/generic/halinit.c +++ b/reactos/hal/halx86/generic/halinit.c @@ -53,7 +53,7 @@ HalInitSystem(IN ULONG BootPhase, PKPRCB Prcb = KeGetCurrentPrcb(); /* Check the boot phase */ - if (!BootPhase) + if (BootPhase == 0) { /* Phase 0... save bus type */ HalpBusType = LoaderBlock->u.I386.MachineType & 0xFF; @@ -159,27 +159,6 @@ HalInitSystem(IN ULONG BootPhase, /* Initialize bus handlers */ HalpInitBusHandlers(); -#ifndef _MINIHAL_ - /* Enable IRQ 0 */ - HalpEnableInterruptHandler(IDT_DEVICE, - 0, - PRIMARY_VECTOR_BASE, - CLOCK2_LEVEL, - HalpClockInterrupt, - Latched); - - /* Enable IRQ 8 */ - HalpEnableInterruptHandler(IDT_DEVICE, - 0, - PRIMARY_VECTOR_BASE + 8, - PROFILE_LEVEL, - HalpProfileInterrupt, - Latched); - - /* Initialize DMA. NT does this in Phase 0 */ - HalpInitDma(); -#endif - /* Do some HAL-specific initialization */ HalpInitPhase1(); } diff --git a/reactos/hal/halx86/generic/legacy/.gitignore b/reactos/hal/halx86/generic/legacy/.gitignore deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/reactos/hal/halx86/generic/i386/portio.c b/reactos/hal/halx86/generic/portio.c similarity index 100% rename from reactos/hal/halx86/generic/i386/portio.c rename to reactos/hal/halx86/generic/portio.c diff --git a/reactos/hal/halx86/generic/i386/systimer.S b/reactos/hal/halx86/generic/systimer.S similarity index 100% rename from reactos/hal/halx86/generic/i386/systimer.S rename to reactos/hal/halx86/generic/systimer.S diff --git a/reactos/hal/halx86/generic/i386/trap.S b/reactos/hal/halx86/generic/trap.S similarity index 100% rename from reactos/hal/halx86/generic/i386/trap.S rename to reactos/hal/halx86/generic/trap.S diff --git a/reactos/hal/halx86/hal_generic.rbuild b/reactos/hal/halx86/hal_generic.rbuild index 9b697bbb094..4df6fa48866 100644 --- a/reactos/hal/halx86/hal_generic.rbuild +++ b/reactos/hal/halx86/hal_generic.rbuild @@ -21,11 +21,9 @@ usage.c bios.c - - portio.c - systimer.S - trap.S - + portio.c + systimer.S + trap.S diff --git a/reactos/hal/halx86/hal_generic_acpi.rbuild b/reactos/hal/halx86/hal_generic_acpi.rbuild index f2702f406fe..c4df1f5d9af 100644 --- a/reactos/hal/halx86/hal_generic_acpi.rbuild +++ b/reactos/hal/halx86/hal_generic_acpi.rbuild @@ -7,17 +7,17 @@ - - - halacpi.c - halpnpdd.c - busemul.c - - - - pcibus.c - + + halacpi.c + halpnpdd.c + busemul.c + + + + pcibus.c + + halinit.c diff --git a/reactos/hal/halx86/hal_generic_pcat.rbuild b/reactos/hal/halx86/hal_generic_pcat.rbuild index 539b3cfbc31..864c3ef999d 100644 --- a/reactos/hal/halx86/hal_generic_pcat.rbuild +++ b/reactos/hal/halx86/hal_generic_pcat.rbuild @@ -6,20 +6,20 @@ include - - - - bushndlr.c - cmosbus.c - isabus.c - pcibus.c - pcidata.c - sysbus.c - - bussupp.c - halpcat.c - halpnpdd.c + + + bushndlr.c + cmosbus.c + isabus.c + pcibus.c + pcidata.c + sysbus.c + bussupp.c + halpcat.c + halpnpdd.c + + halinit.c diff --git a/reactos/hal/halx86/hal_mini.rbuild b/reactos/hal/halx86/hal_mini.rbuild index b189e808190..41b76bb47a3 100644 --- a/reactos/hal/halx86/hal_mini.rbuild +++ b/reactos/hal/halx86/hal_mini.rbuild @@ -9,16 +9,6 @@ - - - bushndlr.c - cmosbus.c - isabus.c - pcibus.c - sysbus.c - - bussupp.c - beep.c bios.c cmos.c @@ -32,10 +22,18 @@ sysinfo.c timer.c usage.c - - portio.c - systimer.S + portio.c + systimer.S + + + + bushndlr.c + cmosbus.c + isabus.c + pcibus.c + sysbus.c + bussupp.c halinit_up.c diff --git a/reactos/hal/halx86/generic/legacy/bus/bushndlr.c b/reactos/hal/halx86/legacy/bus/bushndlr.c similarity index 100% rename from reactos/hal/halx86/generic/legacy/bus/bushndlr.c rename to reactos/hal/halx86/legacy/bus/bushndlr.c diff --git a/reactos/hal/halx86/generic/legacy/bus/cmosbus.c b/reactos/hal/halx86/legacy/bus/cmosbus.c similarity index 100% rename from reactos/hal/halx86/generic/legacy/bus/cmosbus.c rename to reactos/hal/halx86/legacy/bus/cmosbus.c diff --git a/reactos/hal/halx86/generic/legacy/bus/isabus.c b/reactos/hal/halx86/legacy/bus/isabus.c similarity index 100% rename from reactos/hal/halx86/generic/legacy/bus/isabus.c rename to reactos/hal/halx86/legacy/bus/isabus.c diff --git a/reactos/hal/halx86/generic/legacy/bus/libpcidata.a b/reactos/hal/halx86/legacy/bus/libpcidata.a similarity index 100% rename from reactos/hal/halx86/generic/legacy/bus/libpcidata.a rename to reactos/hal/halx86/legacy/bus/libpcidata.a diff --git a/reactos/hal/halx86/generic/legacy/bus/pcibus.c b/reactos/hal/halx86/legacy/bus/pcibus.c similarity index 100% rename from reactos/hal/halx86/generic/legacy/bus/pcibus.c rename to reactos/hal/halx86/legacy/bus/pcibus.c diff --git a/reactos/hal/halx86/generic/legacy/bus/pcidata.c b/reactos/hal/halx86/legacy/bus/pcidata.c similarity index 100% rename from reactos/hal/halx86/generic/legacy/bus/pcidata.c rename to reactos/hal/halx86/legacy/bus/pcidata.c diff --git a/reactos/hal/halx86/generic/legacy/bus/sysbus.c b/reactos/hal/halx86/legacy/bus/sysbus.c similarity index 100% rename from reactos/hal/halx86/generic/legacy/bus/sysbus.c rename to reactos/hal/halx86/legacy/bus/sysbus.c diff --git a/reactos/hal/halx86/generic/legacy/bussupp.c b/reactos/hal/halx86/legacy/bussupp.c similarity index 100% rename from reactos/hal/halx86/generic/legacy/bussupp.c rename to reactos/hal/halx86/legacy/bussupp.c diff --git a/reactos/hal/halx86/generic/legacy/halpcat.c b/reactos/hal/halx86/legacy/halpcat.c similarity index 100% rename from reactos/hal/halx86/generic/legacy/halpcat.c rename to reactos/hal/halx86/legacy/halpcat.c diff --git a/reactos/hal/halx86/generic/legacy/halpnpdd.c b/reactos/hal/halx86/legacy/halpnpdd.c similarity index 99% rename from reactos/hal/halx86/generic/legacy/halpnpdd.c rename to reactos/hal/halx86/legacy/halpnpdd.c index 51dcdd8128b..17ea59bf8e0 100644 --- a/reactos/hal/halx86/generic/legacy/halpnpdd.c +++ b/reactos/hal/halx86/legacy/halpnpdd.c @@ -750,7 +750,7 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject, break; case IRP_MN_QUERY_CAPABILITIES: - + /* Call the worker */ DPRINT("Querying the capabilities for the PDO\n"); Status = HalpQueryCapabilities(DeviceObject, @@ -773,7 +773,7 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject, break; case IRP_MN_QUERY_ID: - + /* Call the worker */ DPRINT("Query the ID for the PDO\n"); Status = HalpQueryIdPdo(DeviceObject, @@ -782,7 +782,7 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject, break; default: - + /* We don't handle anything else, so inherit the old state */ DPRINT("Illegal IRP: %lx\n", Minor); Status = Irp->IoStatus.Status; @@ -807,7 +807,7 @@ HalpDispatchWmi(IN PDEVICE_OBJECT DeviceObject, { DPRINT1("HAL: PnP Driver WMI!\n"); while (TRUE); - return STATUS_SUCCESS; + return STATUS_SUCCESS; } NTSTATUS @@ -816,7 +816,7 @@ HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { DPRINT1("HAL: PnP Driver Power!\n"); - return STATUS_SUCCESS; + return STATUS_SUCCESS; } NTSTATUS diff --git a/reactos/hal/halx86/mp/i386/mps.S b/reactos/hal/halx86/mp/mps.S similarity index 100% rename from reactos/hal/halx86/mp/i386/mps.S rename to reactos/hal/halx86/mp/mps.S diff --git a/reactos/hal/halx86/mp/i386/mpsboot.asm b/reactos/hal/halx86/mp/mpsboot.asm similarity index 100% rename from reactos/hal/halx86/mp/i386/mpsboot.asm rename to reactos/hal/halx86/mp/mpsboot.asm diff --git a/reactos/hal/halx86/mp/i386/mpsirql.c b/reactos/hal/halx86/mp/mpsirql.c similarity index 100% rename from reactos/hal/halx86/mp/i386/mpsirql.c rename to reactos/hal/halx86/mp/mpsirql.c diff --git a/reactos/hal/halx86/up/halinit_up.c b/reactos/hal/halx86/up/halinit_up.c index d63eec01ec3..8a5649cc7a7 100644 --- a/reactos/hal/halx86/up/halinit_up.c +++ b/reactos/hal/halx86/up/halinit_up.c @@ -26,7 +26,26 @@ HalpInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock) VOID HalpInitPhase1(VOID) { - +#ifndef _MINIHAL_ + /* Enable IRQ 0 */ + HalpEnableInterruptHandler(IDT_DEVICE, + 0, + PRIMARY_VECTOR_BASE, + CLOCK2_LEVEL, + HalpClockInterrupt, + Latched); + + /* Enable IRQ 8 */ + HalpEnableInterruptHandler(IDT_DEVICE, + 0, + PRIMARY_VECTOR_BASE + 8, + PROFILE_LEVEL, + HalpProfileInterrupt, + Latched); + + /* Initialize DMA. NT does this in Phase 0 */ + HalpInitDma(); +#endif } /* EOF */ -- 2.17.1