-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FREELDR] Split freeldr into 1st and 2nd stage #7488
Open
tkreuzer
wants to merge
10
commits into
reactos:master
Choose a base branch
from
tkreuzer:boot/freeldr-split
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+662
−225
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ith functions This allows to easily import them from a 2nd stage loader without having to bother about _declspec(dllimport)
This removes a dependency of UI code to boot options code by getting rid of a call to DisplayBootTimeOptions() from within the menu code. Instead this is now handled by MainBootMenuKeyPressFilter.
tkreuzer
added
enhancement
For PRs with an enhancement/new feature.
refactoring
For refactoring changes.
freeldr
Freeloader changes
labels
Nov 3, 2024
tkreuzer
requested review from
binarymaster,
HBelusca,
cbialorucki,
DarkFire01,
oleg-dubinskiy,
hpoussin,
GeoB99 and
TAN-Gaming
November 3, 2024 12:58
This is required, so that the definition is available when preprocessing asm files on MSVC builds. Otherwise systimer.s will contain KeStallExecutionProcessor, which must not be used in freeldr.
…essor The latter will only be available in rosload.exe.
tkreuzer
force-pushed
the
boot/freeldr-split
branch
from
November 3, 2024 15:02
034aa28
to
9b5c887
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
enhancement
For PRs with an enhancement/new feature.
freeldr
Freeloader changes
kernel&hal
Code changes to the ntoskrnl and HAL
refactoring
For refactoring changes.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
This PR splits freeldr into 2 modules: freeldr.sys, which acts as the 1st stage loader and rosload.exe, which contains the NT loader code and a few other things and is loaded by freeldr.sys. This allows to add more code, especially on x64, where the code size was already at an absolute maximum to fit into the free low memory range and registry healing had to be disabled.
I understand that some people might find that from a philosophical viewpoint, some things are not in the right module, but the split was done on a pragmatical basis, i.e. "make it work", rather than wasting time with hypothetical/philospohical ideas, that provide no practical benefit.
Size changes for freeldr.sys (DEBUG):
JIRA issue: CORE-XXXX
Proposed changes
Tests