pub unsafe extern "C" fn drop_to_protected_mode(
entry_point: u32,
boot_params: u32,
) -> !Expand description
Drop from 64-bit long mode to 32-bit protected mode
This is implemented in external assembly (trampoline32.asm) to properly handle the mode transition without compiler interference.
ONLY used for legacy kernels that don’t support EFI handover protocol. Modern kernels (2.6.30+) use EFI handover and stay in 64-bit mode.
When using this path, the bootloader MUST call ExitBootServices first.
§Safety
- Must only be called after ExitBootServices
- entry_point must be valid 32-bit kernel entry address
- boot_params must point to valid Linux boot_params struct
Does NOT return - jumps to kernel.