reactos/boot/freeldr/freeldr
Hermès Bélusca-Maïto d05be0da3f
[FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes.
CORE-9023

- During loading and initialization of the list of operating systems
  available in freeldr.ini, convert any legacy operating system entry
  encountered -- they are like those in NTLDR's boot.ini file, i.e.:

    ArcOsLoadPartition="LoadIdentifier" /List /of /Options

  into a new operating system INI entry, like those used by default in
  FreeLoader. This allows us to avoid treating this corner-case later in
  different parts of the code. Also, the "BootType" value is now
  determined there, only once.

- Convert the OS loaders entry-points to ARC-compatible ones, following
  the "Advanced RISC Computing Specification, Version 1.2" specification
  https://www.netbsd.org/docs/Hardware/Machines/ARC/riscspec.pdf

- Introduce helpers for retrieving options values from the argument vector
  in a simple way.

- Simplify LoadOperatingSystem(), since now the "BootType" value has
  been determined once while loading the list of OSes (see above) and
  is well-defined there. Use the BuildArgvForOsLoader() helper to build
  the ARC-compatible argument vector from the corresponding INI settings
  for the selected operating system entry, and use it when calling the
  corresponding OS loader.

- In the OS loaders, since we can now directly read the settings from
  the argument vector (instead of using INI settings), we can avoid
  using a bunch of fixed-size string buffers, and avoid potentially
  failing IniOpenSection() calls as well.

- Simplify code in the Linux loader (and the RemoveQuotes() function).

- Add UiShowMessageBoxesInArgv() that acts on the "MessageBox=" settings
  passed through the argument vector (equivalent to
  UiShowMessageBoxesInSection() ).

- Use string-safe functions where needed (copy/concatenation/printf on
  fixed-size buffers).
2019-08-06 23:40:05 +02:00
..
arch [FREELDR] Improve some *GetFileInformation() traces. 2019-07-30 00:57:22 +02:00
cache Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
disk [FREELDR] Improve some *GetFileInformation() traces. 2019-07-30 00:57:22 +02:00
include [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
lib [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
ntldr [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
ui [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
video Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
arcname.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
bootmgr.c [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
CHANGELOG Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
CMakeLists.txt [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
cmdline.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
custom.c [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
freeldr.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
freeldr.spec Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
freeldr_i386.lds [FREELDR] Introduce a MSVC "linker script" file that centralizes the commands for defining section-limit symbols, and the ordering and merging of PE sections, and the necessary CMake code to use it. (#1224) 2019-01-27 00:51:25 +01:00
freeldr_i386.msvc.lds [FREELDR] Re-integrate the ASM files (and corresponding C code) in MSVC builds, that were previously compiled just for GCC builds. (#1224) 2019-01-27 00:51:26 +01:00
linuxboot.c [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
machine.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
miscboot.c [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
options.c [FREELDR] Use NOGUIBOOT when booting in Safe-Mode. 2019-08-04 17:47:03 +02:00
oslist.c [FREELDR] Some ARC-spec compatibility refactoring + simplifications & fixes. 2019-08-06 23:40:05 +02:00
version.c [FREELDR] Minor code formatting; constify some non-mutable data. 2019-01-06 18:42:01 +01:00