git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PCI 16x50 UART Controller, O2 Enablement (#39)
[lunaix-os.git]
/
lunaix-os
/
arch
/
x86
/
boot
/
x86_64
/
kremap64.c
diff --git
a/lunaix-os/arch/x86/boot/x86_64/kremap64.c
b/lunaix-os/arch/x86/boot/x86_64/kremap64.c
index ee9d298bac8e58951e029562a8509bb5ef0c016e..bf3bb33dd552ff80c73272c1c6bf256ff887854b 100644
(file)
--- a/
lunaix-os/arch/x86/boot/x86_64/kremap64.c
+++ b/
lunaix-os/arch/x86/boot/x86_64/kremap64.c
@@
-178,9
+178,12
@@
ptr_t boot_text
remap_kernel()
{
ptr_t kmap_pa = to_kphysical(&kpt);
remap_kernel()
{
ptr_t kmap_pa = to_kphysical(&kpt);
- for (size_t i = 0; i < sizeof(kpt); i++) {
- ((u8_t*)kmap_pa)[i] = 0;
- }
+
+ asm volatile("movq %1, %%rdi\n"
+ "rep stosb\n" ::"c"(sizeof(kpt)),
+ "r"(kmap_pa),
+ "a"(0)
+ : "rdi", "memory");
do_remap();
do_remap();