This fixes the recursion when pci.sys attempts to get PCI bridge children
devices, which in fact are non-existing.
Note that the problem in pci.sys itself also deserves a separate fix.
CORE-16319 CORE-16216
We can already restart reading the whole file if seeking backward,
and there is currently no more use case of backward seek.
By doing so, we gain 1MB of memory when using PXE.
at runtime from the boot selection menu or from FREELDR.INI.
CORE-17350, CORE-9023
For a proper override of the options by new user options, specify the
/SIFOPTIONSOVERRIDE switch in addition. Otherwise, user options are
merged with those retrieved from TXTSETUP.SIF, with priority given to
the former ones.
- Update the documentation for the 'ReactOSSetup' OS type in the
FREELDR.INI file template.
- Use a different prompt in the custom boot options editor for the
'ReactOSSetup' OS type, with adequate explanation.
- Get rid of the ReactOS-specific TXTSETUP.SIF 'DbgOsLoadOptions' value,
and use instead the Windows-compatible 'SetupDebugOptions' value that
is added to the other load options when debugging is to be enabled.
- Introduce a set of NtLdrGet(Next)Option(Ex) helpers that allow
retrieving respectively, the "next" option in an options string,
and retrieving a given named option in such an options string,
by correctly parsing that string.
Valid syntaxes:
/OPTION1 /OPTION2/OPTION3 OPTION4 /OPTION5(=...) ...
Options separators are slashes, or whitespace (space, tab), mandatory
if no slash is used, and otherwise optional.
- Use these functions wherever NT load options are being parsed.
- Simplify the parsing of /DEBUGPORT=... using these functions.
- When parsing the /HAL=... or /KERNEL=... options, only the first
encountered one is taken into account, any other ones are discarded.
- When parsing the other load options, only their first occurrences are
taken into account, any other repetitions are discarded.
* The NOPAE option overrides any previous PAE option.
* Any NOEXECUTE(=) option should override any previous
NOEXECUTE=ALWAYSOFF (or equivalently, EXECUTE) option.
This parameter is not needed since it's possible to determine, from
within this function, whether or not we are in Setup mode, by just
looking for the presence of a non NULL LoaderBlock->SetupLdrBlock.
At line 263 a 'pop es' is missing before 'ret' in ReadCHS() function,
just like in the ReadLBA() function. CORE-17178
Co-authored-by: Dmitry Borisov <di.sean@protonmail.com>
Also turn off debug messages to screen before setting up the CPU (To print a character to the screen on some ports the MMIO access should be executed, so it throws an exception).
CORE-16216
This prevents ReactOS asserting when 'My computer'
is opened, while it tries to send commands to floppy drive.
Many thanks to patches author Doug Lyons.
The regression was introduced by 0.4.13-dev-1081-g
eeff926ede
patch was committed to 0.4.13rls and 0.4.14rls as well.
Today it was committed to master as well, as
the initially planned investigation for the root cause
did still not happen and we can not afford the time
to retest and workaround this over and over again.
Thank god that Oleg Dubinskiy was still around to retest
this again and confirmed it can still happen, because
unlike initially, personally I was not able to reproduce it
today anymore!
Since every release was work-arounded, we did never
expose the bug in any final release.
According to PC-9801 Bible p. 50, divisor for PIT will become unsupported in some cases after having removed the fractional part. Replace 19200 value with 9600 which is supported by both 10 MHz and 8 MHz machines.