I personally think it's a bit "against" the philosophy of HALs, namely having a lightweight hardware abstraction layer code for different platforms. If you basically put all the HALs into one, then you obtain bloated stuff (which remains in memory for the whole life of the OS). Example: standard HAL is 1MB vs. ACPI HAL which is few kB. A bit more work and you could even get a monolithic kernel! Nah joking xD ... but not completely.
Note that if Windows nowadays has only one hal, it's because they now support basically only one "architecture"/platform, namely, ACPI multiprocessor (to put it simple). It has its pros, but also a lot of cons. To solve the original problem you have encountered in our code, just introduce common/generic .c files containing the code that is similar everywhere, even at the level of all the hals, or at the level of (let's say) a given CPU "type" (x86, x64...), then there are the other .c that implement the different flavours of the procedures that depend on the specific arch/platform. Like this: HALs +---- Generic code +---- HAL for a given arch #1 (e.g. x86) | +---- Generic code for this arch | +---- Code for standard (non-ACPI) HAL | +---- Code for ACPI HAL | +---- Code for a different HAL flavour (platform)? | +---- ... | +---- HAL for arch #2 | +---- Generic code | +---- Code for platform | +---- Code for second platform | +---- ... | +---- etc... This is very clear and maintainable. H. > -----Message d'origine----- > De : Ros-dev [mailto:ros-dev-boun...@reactos.org] De la part de Colin Finck > Envoyé : dimanche 10 décembre 2017 19:55 > À : ros-dev@reactos.org > Objet : Re: [ros-dev] Merging our x86 HALs > > Am 10.12.2017 um 19:38 schrieb David Quintana (gigaherz): > > Colin: Are we talking merge and decide which method to use at runtime > > Exactly! We don't even need boot flags: Just like the setup currently detects > an > ACPI-compliant computer, the HAL could do this at boot-up. > It's also not too hard to detect the presence of an APIC. > > I think a universal HAL for every x86 machine wouldn't be noticeably larger > than an ACPI+SMP HAL. > > > - Colin > > _______________________________________________ > Ros-dev mailing list > Ros-dev@reactos.org > http://www.reactos.org/mailman/listinfo/ros-dev _______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev