Actually, this is parts of the HKLM\SYSTEM\ControlSet00x\Enum tree that are 
subject to the remark I made about HKLM\HARDWARE in my previous mail, while the 
HARDWARE hive is actually volatile (thus regenerated each time at boot).

H.

> -----Message d'origine-----
> De : Ros-dev [mailto:ros-dev-boun...@reactos.org] De la part de Hermès
> BÉLUSCA-MAÏTO
> Envoyé : lundi 11 décembre 2017 02:03
> À : 'ReactOS Development List'
> Objet : Re: [ros-dev] Merging our x86 HALs
> 
> Also, there is (at least parts of) HKLM\HARDWARE tree that is built at
> installation time from info obtained from the HAL that is suitable for your
> platform, and that will be used for the rest of the life of your
> Windows/ReactOS/... installation. So if you then think that you'll be able to 
> use
> "the same ReactOS installation [...] on several different x86 computers" (to
> quote you), it'll be a bit more complicated than that!!!!
> 
> Besides this, I've a question about your observation that in the APIC hal (not
> ACPI) there's different implementation of HalpCalibrateStallExecution and
> HalpInitializePICs / HalpInitializeLegacyPIC . Isn't it precisely because 
> these
> stuff are completely different from the standard PICs used in platforms for
> which the standard HAL (and possibly the ACPI HAL) are used?
> 
> For your x2APIC question, if this shares a good stuff wrt. APIC, then either 
> it
> would be inside the same APIC HAL, otherwise there could be two HALs, APIC
> and the other one, but made from common "generic" code + different code
> that depend on the APIC vs. x2APIC.
> 
> > The user is also able to select a custom HAL during setup, even if it 
> > wouldn't
> work on the machine. We should give neither the user nor the setup the ability
> to decide. The HAL itself knows best at boot-up what features to enable and
> what not.
> 
> Actually we should, because the detection might not work (of course in our
> simple case "ACPI UP/MP" vs. "Standard", it's simple, but think about other
> platforms where there can be subtle differences), AND the fact that an
> advanced user may want to specify one's HAL. And normally it's not the setup
> that decides about the HAL, but the bootloader. The bootloader (ntldr / 
> winldr)
> also has the capability of detecting the HAL to use and load, unless being
> specified otherwise by a switch in the command-lines in boot.ini (ntldr) or
> somewhere in the BCD (bootmgr/winldr).
> 
> H.
> 
> > -----Message d'origine-----
> > De : Ros-dev [mailto:ros-dev-boun...@reactos.org] De la part de Hermès
> > BÉLUSCA-MAÏTO Envoyé : lundi 11 décembre 2017 01:18 À : 'ReactOS
> > Development List'
> > Objet : Re: [ros-dev] Merging our x86 HALs
> >
> > 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
> 
> 
> _______________________________________________
> 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

Reply via email to