Truly enable virtual memory.
Map is still identity-mapped. I think we need to sort and/or clean up the map before using a higher half address. In-kernel vga output not working yet, but do_the_set_registers() is getting called.
This commit is contained in:
@@ -18,3 +18,17 @@ const CHAR16 *util_error_message(EFI_STATUS status);
|
||||
while (1) __asm__("hlt"); \
|
||||
}
|
||||
|
||||
#define CHECK_EFI_STATUS_OR_ASSERT(s, d) \
|
||||
if (EFI_ERROR((s))) { \
|
||||
__asm__ __volatile__ ( \
|
||||
"movq %0, %%r8;" \
|
||||
"movq %1, %%r9;" \
|
||||
"movq %2, %%r10;" \
|
||||
"movq $0, %%rdx;" \
|
||||
"divq %%rdx;" \
|
||||
: \
|
||||
:"r"((uint64_t)s), "r"((uint64_t)d), "r"((uint64_t)__LINE__) \
|
||||
:"rax", "rdx", "r8", "r9", "r10" \
|
||||
); \
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user