use core::arch::naked_asm;
use crate::arch::entry::kernel_entry;
const FLAG_LE: usize = 0b0;
const FLAG_PAGE_SIZE_4K: usize = 0b10;
const FLAG_ANY_MEM: usize = 0b1000;
#[unsafe(naked)]
#[unsafe(no_mangle)]
#[unsafe(link_section = ".head.text")]
pub unsafe extern "C" fn _head() -> ! {
naked_asm!(
"nop",
"bl {entry}",
".quad 0",
".quad __kernel_load_end - _head",
".quad {flags}",
".quad 0",
".quad 0",
".quad 0",
".ascii \"ARM\\x64\"",
".byte 0, 0, 0, 0",
flags = const FLAG_LE | FLAG_PAGE_SIZE_4K | FLAG_ANY_MEM,
entry = sym kernel_entry,
)
}