History log of /reactos/boot/freeldr/freeldr/miscboot.c (Results 1 – 17 of 17)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 5f3554a4 05-Apr-2024 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Merge boot-drive and partition functionalities together (#6760)

And deprecate corresponding boot types "Drive" and "Partition".
These are replaced by the more general "BootSector" boot typ

[FREELDR] Merge boot-drive and partition functionalities together (#6760)

And deprecate corresponding boot types "Drive" and "Partition".
These are replaced by the more general "BootSector" boot type.

Finish the unification of the code, started in commit ff85aa0c3,
that loads and boots disk MBR, partition VBR or boot sector in file.

A "WarnDeprecated()" helper is added to warn the user about the
deprecated features, and to inform them to adjust their FREELDR.INI
file in accordance.

In addition, bump FreeLoader version to 3.2 (at last!): a lot of
features have been added or deprecated since its last release.

show more ...


# 150f7212 19-Mar-2023 Justin Miller <justinmiller100@gmail.com>

[FREELDR] Support compiling freeldr as a UEFI loader + Implement UI functions (#5171)

First batch of changes to implement a UEFI version of freeldr:
- Compile freeldr as EFI binary on top of the ex

[FREELDR] Support compiling freeldr as a UEFI loader + Implement UI functions (#5171)

First batch of changes to implement a UEFI version of freeldr:
- Compile freeldr as EFI binary on top of the existing loader.
- Stub out various functions so we can create a UEFI machine-type in freeldr.
- Implement all of the video output functions so we can display a pretty freeldr BSoD :)

show more ...


Revision tags: 0.4.14-release, 0.4.15-dev, 0.4.14-RC, 0.4.13-release
# c14cc22b 10-Nov-2019 Dmitry Borisov <di.sean@protonmail.com>

[FREELDR] Add ARC-emulation support for NEC PC-98 series

- Add ARC-emulation support for NEC PC-98 series
- Add global definition for PC-98 port into CMakeLists.txt
- Add floppy verison of freeldr.i

[FREELDR] Add ARC-emulation support for NEC PC-98 series

- Add ARC-emulation support for NEC PC-98 series
- Add global definition for PC-98 port into CMakeLists.txt
- Add floppy verison of freeldr.ini for PC-98 CD boot

show more ...


# 63e22b82 06-Oct-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Add support for loading Linux in x64 FreeLdr. Part 2/2: C code.

- Re-enable custom and Linux boot menu entries.
- Fix compilation and add address limit checks for x64 build of linux loader.


Revision tags: 0.4.14-dev, 0.4.13-RC, 0.4.12-release
# ff85aa0c 17-Sep-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Other enhancements.

- Modify DiskReportError() to use an internal "display counter", so that
imbricated DiskReportError(FALSE) ... DiskReportError(TRUE) can behave
as expected.
- Merge

[FREELDR] Other enhancements.

- Modify DiskReportError() to use an internal "display counter", so that
imbricated DiskReportError(FALSE) ... DiskReportError(TRUE) can behave
as expected.
- Merge LoadAndBootDrive(), LoadAndBootPartition(),
LoadAndBootBootSector() into one LoadAndBootDevice() function + its
helpers (in progress...).

show more ...


# eeff926e 13-Sep-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Limit the usage of DiskStopFloppyMotor() in hardware/platform-specific code.

- Move DiskStopFloppyMotor() calls into the implementations of
Boot(New)LinuxKernel() and Reboot() HW functio

[FREELDR] Limit the usage of DiskStopFloppyMotor() in hardware/platform-specific code.

- Move DiskStopFloppyMotor() calls into the implementations of
Boot(New)LinuxKernel() and Reboot() HW functions, and the explanation
comments in ChainLoadBiosBootSectorCode().

- Remove unneeded DiskStopFloppyMotor() dummies in ARM and PPC code.

- Use more adequate bitmask value to be sent to floppy's Digital Output
Register for shutting down its motor (based on OSDev & our floppy
controller driver).

show more ...


# 4843c1a9 13-Sep-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Other enhancements.

- Add optional arguments BootDrive and BootPartition to
ChainLoadBiosBootSectorCode() so as not to modify explicitly the
FrldrBootDrive and FrldrBootPartition varia

[FREELDR] Other enhancements.

- Add optional arguments BootDrive and BootPartition to
ChainLoadBiosBootSectorCode() so as not to modify explicitly the
FrldrBootDrive and FrldrBootPartition variables, that should remain
purely internal.

- Implement ChainLoadBiosBootSectorCode() for x64.

- Get rid of the machine-specific DiskGetBootPath(), and instead do its
job only once in the machine-specific InitializeBootDevices() (or in
MachInit() for PPC).
Cache the result of this operation into the globally-accessible
FrldrBootPath buffer. This avoids the unneeded calls to (Mach)DiskGetBootPath()
we used to do before.
Also remove the separate distinction between the PC and XBOX versions
of this functionality.

- Move the PC-specific DiskIsDriveRemovable() and DiskGetBootPath()
as well as the disk-IO-error functionality, back into the
corresponding PC-arch files.

- Simplify IniFileInitialize(), getting rid of IniOpenIniFile().

show more ...


# bd451f24 30-Aug-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Code fixes and enhancements.
CORE-9023

FIXES:
======

- Fix parsing of the multiboot options string.
NOTE: They are not yet treated in a case-insensitive manner!

- Fix a bug in ArcOpen(

[FREELDR] Code fixes and enhancements.
CORE-9023

FIXES:
======

- Fix parsing of the multiboot options string.
NOTE: They are not yet treated in a case-insensitive manner!

- Fix a bug in ArcOpen() so that it correctly skips the first path
separator (after the adapter-controller-peripheral ARC descriptors).
The path separator can be either a backslash or a slash (both are
allowed according to the specs); they were also already handled
correctly in other parts of the code.

- Fix DissectArcPath() so as to:
* **OPTIONALLY** (and not mandatorily!) return the path part that follows
the ARC adapter-controller-peripheral elements in the ARC path;

* make it correctly handle the (yes, optional!!) partition() part in the
ARC path, for the multi(x)disk(y)rdisk(z) cases.

ENHANCEMENTS:
=============

- Directly retrieve the default OS entry as we enumerate them and
build their list (i.e. merge the GetDefaultOperatingSystem() helper
within InitOperatingSystemList()).

- Directly use the opened 'FreeLoader' INI section via its ID in the
different functions that need it.

- Make the custom-boot and linux loaders honour the boot options they are
supposed to support (see FREELDR.INI documentation / template).
This includes the 'BootDrive' and 'BootPartition' (alternatively the ARC
'BootPath').
This also allows them to take into account the user-specified choices in the
FreeLdr custom-boot editors.

- Modify the FreeLdr custom-boot editors so as to correctly honour
the priorities of the boot options as specified in the FREELDR.INI
documentation / template.

- Use stack trick (union of structs) to reduce stack usage in the
FreeLdr custom-boot editors, because there are strings buffers that are
used in an alternate manner.

- Extract out from the editors the LoadOperatingSystem() calls, and
move it back into OptionMenuCustomBoot(), so that when this latter
function is called there is no risk of having a stack almost full.

- When building the ARC-compatible argument vector for the loaders, add
the mandatory "SystemPartition" path. This allows the loaders to NOT
call the machine-specific MachDiskGetBootPath() later on (this data is
indeed passed to them by the boot manager part of FreeLdr).

- Improve the FsOpenFile() helper so as to make it:
* return an adequate ARC_STATUS instead of a mere uninformative BOOLEAN;
* take open options, as well as a default path (optional) that would be
prepended to the file name in case the latter is a relative one.

- Make RamDiskLoadVirtualFile() return an actual descriptive ARC_STATUS
value, and make it take an optional default path (same usage as the one
in FsOpenFile() ).
+ Remove useless NTAPI .

- UiInitialize() and TuiTextToColor(), TuiTextToFillStyle(): load or
convert named settings into corresponding values using setting table and
a tight for-loop, instead of duplicating 10x the same parameter reading
logic.

- UiInitialize(): Open the "Display" INI section just once. Remove usage
of DisplayModeText[] buffer.

- UiShowMessageBoxesInSection() and UiShowMessageBoxesInArgv(): reduce
code indentation level.

ENHANCEMENTS for NT OS loader:
==============================

- Don't use MachDiskGetBootPath() but use instead the "SystemPartition"
value passed via the ARC argument vector by the boot manager
(+ validation checks). Use it as the "default path" when calling
FsOpenFile() or loading the ramdisk.

- Honour the FreeLdr-specific "Hal=" and "Kernel=" options by converting
them into NT standard "/HAL=" and "/KERNEL=" options in the boot
command line.

Note that if the latter ones are already present on the standard "Options="
option line, they would take precedence over those passed via the separate
"Hal=" and "Kernel=" FreeLdr-specific options.

Also add some documentation links to Geoff Chappell's website about
how the default HAL and KERNEL names are chosen depending on the
detected underlying platform on which the NT OS loader is running.

show more ...


# 423d1e2e 14-Aug-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Minor fixes.

- Add some forgotten, or move some misplaced ArcClose() calls so as
to avoid leakages in failure paths. (Thanks to Serge Gautherie for
having caught some of them.)

- Simp

[FREELDR] Minor fixes.

- Add some forgotten, or move some misplaced ArcClose() calls so as
to avoid leakages in failure paths. (Thanks to Serge Gautherie for
having caught some of them.)

- Simplify some code; remove unneeded casts; use string-safe functions.

show more ...


# 85d44fca 13-Aug-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Minor enhancements for disk/partition boot and UI.

- Factor out disk & partition opening in LoadAndBootPartition() and
LoadAndBootDrive() into a LoadAndBootPartitionOrDrive() helper.

-

[FREELDR] Minor enhancements for disk/partition boot and UI.

- Factor out disk & partition opening in LoadAndBootPartition() and
LoadAndBootDrive() into a LoadAndBootPartitionOrDrive() helper.

- Use ARC paths and ArcOpen()/ArcRead() instead of calling the
machine-specific BIOS-oriented DiskGetPartitionEntry() and
MachDiskReadLogicalSectors() functions to open the disk/partition
and read their boot sectors.

- Don't forget to close the opened boot sector file in LoadAndBootBootSector().

- Add assertions for DiskReadBufferSize in PcMemFinalizeMemoryMap()
and EnumerateHarddisks().

- x86/amd64 only:
* Add a DisableA20 helper for disabling the A20 line, before rebooting
back, or chain-load a boot sector, into 16-bit world.
Also pulse the output port of the keyboard controller to clear out
its state after having set the state of the A20 line.

* In addition to disabling the A20 line when rebooting or chain-loading
a boot sector, reset the video back to 80x25 text mode.

- Reset the cursor position back to the origin when initializing or
terminating the TUI.

show more ...


# 8d94b2a6 10-Aug-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Diverse enhancements.

- Get rid of the FsCloseFile(), FsReadFile(), FsGetFileInformation(),
FsGetFileSize() and FsSetFilePointer() wrappers and use the ARC
functions directly instead.

[FREELDR] Diverse enhancements.

- Get rid of the FsCloseFile(), FsReadFile(), FsGetFileInformation(),
FsGetFileSize() and FsSetFilePointer() wrappers and use the ARC
functions directly instead. Make FsOpenFile() return an ARC file
descriptor ID of the correct type. Get rid of unused FS_* defines.

- Use TRACEs in the ***Mount() filesystem functions for diagnostics
purposes.

- Remove a leak in FatGetFatEntry(). Assign stuff via QuadPart where
possible in FatMount(). Remove an unused member in FAT_FILE_INFO.

- Reduce code indentation in BtrFsMount() and remove a leak there.

- Disable reading the "BootPath" parameter in the linux loader since
we don't use this parameter (yet??)

show more ...


# d05be0da 06-Aug-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[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 le

[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).

show more ...


# e79e7bf5 30-Jul-2019 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[FREELDR] Unload freeldr.ini file before booting.


Revision tags: 0.4.12-RC, 0.4.13-dev, 0.4.11-release, 0.4.11-RC, 0.4.12-dev, 0.4.10-release, 0.4.11-dev, 0.4.10-RC, 0.4.9-release, 0.4.10-dev, 0.4.9-RC, 0.4.8-release, 0.4.8-RC, 0.4.9-dev, 0.4.7-release, v0.4.7, 0.4.8-dev, 0.4.7-rc1
# c2c66aff 03-Oct-2017 Colin Finck <colin@reactos.org>

Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.


Revision tags: backups/GSoC_2017/rapps@75905, ReactOS-0.4.6, backups/ros-branch-0_4_6@75728, 0.4.7-dev, ReactOS-0.4.5, backups/ros-branch-0_4_5@74569, ReactOS-0.4.4-CLT2017, backups/ReactOS-0.4.4-CLT2017@74182, ReactOS-0.4.4, backups/ros-branch-0_4_4@74002, ReactOS-0.4.4-FOSDEM2017, backups/ReactOS-0.4.4-FOSDEM2017@73667, ReactOS-0.4.3, backups/ros-branch-0_4_3@73437, backups/sndblst@72664, ReactOS-0.4.2, backups/ros-branch-0_4_2@73087, ReactOS-0.4.1, backups/ros-branch-0_4_1@71718
# 321bcc05 24-Apr-2016 Pierre Schweitzer <pierre@reactos.org>

Create the AHCI branch for Aman's work

svn path=/branches/GSoC_2016/AHCI/; revision=71203


Revision tags: ReactOS-0.4.0-CLT2016, backups/ReactOS-0.4.0-CLT2016@71719, ReactOS-0.4.0-FOSDEM2016, backups/ReactOS-0.4.0-FOSDEM2016@70667, ReactOS-0.4.0, backups/ros-branch-0_4_0@70757, backups/colins-printing-for-freedom@73041, ReactOS-0.3.17-CLT2015, backups/ReactOS-0.3.17-CLT2015@66843, ReactOS-0.3.17, ReactOS-0.3.17-FOSDEM2015, backups/ReactOS-0.3.17-FOSDEM2015@66122, backups/shell-experiments@75904, backups/tcpip_revolution@71025, backups/0.3.17@66124, backups/ros-branch-0_3_16-clt2014@63729, ReactOS-0.3.16-CLT2014, ReactOS-0.3.16, backups/ReactOS-0.3.16@62476, backups/vs_jc@60583, backups/vs_jc@59301, ReactOS-0.3.15-LT2013, backups/ros-branch-0_3_15-lt2013@59304, ReactOS-0.3.15, backups/ReactOS-0.3.15@59303, backups/ros-csrss@60644, backups/ros-csrss@57560, ReactOS-0.3.14-CLT2012, backups/ros-branch-0_3_14-clt2012@56146, backups/c++-bringup@56084, backups/c++-bringup@60583, backups/usb-bringup-trunk@60667, ReactOS-0.3.14, backups/ros-branch-0_3_14@55492, backups/wlan-bringup@60693, backups/usb-bringup@55523, backups/iut-netsh@54410, backups/icu4ros-bringup@60647, backups/shell32_new-bringup@60646, backups/reactx@60648, backups/GSoC_2011/KMTestSuite@60644, backups/GSoC_2011/TcpIpDriver@60644, backups/cmake-bringup@60644, backups/ros-amd64-bringup@60669, backups/nyadav-audio-branch@60647, backups/GSoC_2011/GSoC_Network@51549, backups/GSoC_2011/GSoC_TcpIpDriver@51551, backups/GSoC_Network@51547, backups/audio-bringup@61036, backups/nyadav-audio-branch@51231, ReactOS-0.3.13-CLT2011, backups/ros-branch-0_3_13-clt2011@51081, ReactOS-0.3.13, backups/ros-branch-0_3_13@51071, backups/GSoC_2011/GSoC_Themes@51550, backups/GSoC_Themes@51548, backups/ros-branch-0_3_13@51035, backups/baikalnet@57446, backups/tcp-rewrite-branch@60668, backups/reactos-yarotows@57446, ReactOS-0.3.12, backups/ros-branch-0_3_12@49215, backups/reactx@49912, backups/Ash_Shell@57446, backups/Ash_Shell@48412, backups/header-work@57446, backups/arty-newcc@50856, ReactOS-0.3.11-CLT2010, backups/ros-branch-0_3_11-clt2010@46228, backups/jcatena-branch@60647, backups/aicom-network-stable@46924, ReactOS-0.3.11, backups/ros-branch-0_3_11@44688, backups/pierre-fsd@68837, ReactOS-0.3.10, backups/ros-branch-0_3_10@41757, ReactOS-0.3.9, backups/ros-branch-0_3_9@40702, backups/danny-web@40415, backups/aicom-network-fixes@46924, ReactOS-0.3.8, backups/ros-branch-0_3_8-fosdem@40472, backups/ros-branch-0_3_8@39330, backups/matthias-i18n@46924, backups/silverblade-audio@39727, backups/cache_manager_rewrite@57446, backups/the-real-msvc@60644, ReactOS-0.3.7, backups/ros-branch-0_3_7@37181
# c0fa4859 25-Oct-2008 KJK::Hyperion <hackbunny@reactos.org>

The real, definitive, Visual C++ support branch. Accept no substitutes

svn path=/branches/the-real-msvc/; revision=36960


Revision tags: backups/cis@40467, backups/unmaintained@36848, backups/ros-branch-0_3_7@37061, backups/nwin32@48372, backups/umode-network-branch@37897, ReactOS-0.3.6, backups/ros-branch-0_3_6@35137
# c501d811 01-Aug-2008 Art Yerkes <art.yerkes@gmail.com>

Create a branch for network fixes.

svn path=/branches/aicom-network-fixes/; revision=34994