[project] Lose the battle between tabs & spaces
I'm a tabs guy. I like tabs, it's an elegant way to represent indentation instead of brute-forcing it. But I have to admit that the world seems to be going towards spaces, and tooling tends not to play nice with tabs. So here we go, changing the whole repo to spaces since I'm getting tired of all the inconsistent formatting.
This commit is contained in:
committed by
Justin C. Miller
parent
d36b2d8057
commit
8f529046a9
@@ -22,56 +22,56 @@ void **fixup_pointers[64];
|
||||
void
|
||||
update_marked_addresses(uefi::event, void *context)
|
||||
{
|
||||
uefi::runtime_services *rs =
|
||||
reinterpret_cast<uefi::runtime_services*>(context);
|
||||
uefi::runtime_services *rs =
|
||||
reinterpret_cast<uefi::runtime_services*>(context);
|
||||
|
||||
for (size_t i = 0; i < fixup_pointer_index; ++i) {
|
||||
if (fixup_pointers[i])
|
||||
rs->convert_pointer(0, fixup_pointers[i]);
|
||||
}
|
||||
for (size_t i = 0; i < fixup_pointer_index; ++i) {
|
||||
if (fixup_pointers[i])
|
||||
rs->convert_pointer(0, fixup_pointers[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
init_pointer_fixup(uefi::boot_services *bs, uefi::runtime_services *rs)
|
||||
{
|
||||
status_line status(L"Initializing pointer virtualization event");
|
||||
status_line status(L"Initializing pointer virtualization event");
|
||||
|
||||
uefi::event event;
|
||||
bs->set_mem(&fixup_pointers, sizeof(fixup_pointers), 0);
|
||||
fixup_pointer_index = 0;
|
||||
uefi::event event;
|
||||
bs->set_mem(&fixup_pointers, sizeof(fixup_pointers), 0);
|
||||
fixup_pointer_index = 0;
|
||||
|
||||
try_or_raise(
|
||||
bs->create_event(
|
||||
uefi::evt::signal_virtual_address_change,
|
||||
uefi::tpl::callback,
|
||||
(uefi::event_notify)&update_marked_addresses,
|
||||
rs,
|
||||
&event),
|
||||
L"Error creating memory virtualization event");
|
||||
try_or_raise(
|
||||
bs->create_event(
|
||||
uefi::evt::signal_virtual_address_change,
|
||||
uefi::tpl::callback,
|
||||
(uefi::event_notify)&update_marked_addresses,
|
||||
rs,
|
||||
&event),
|
||||
L"Error creating memory virtualization event");
|
||||
}
|
||||
|
||||
void
|
||||
mark_pointer_fixup(void **p)
|
||||
{
|
||||
fixup_pointers[fixup_pointer_index++] = p;
|
||||
fixup_pointers[fixup_pointer_index++] = p;
|
||||
}
|
||||
|
||||
void
|
||||
virtualize(void *pml4, efi_mem_map &map, uefi::runtime_services *rs)
|
||||
{
|
||||
paging::add_current_mappings(reinterpret_cast<paging::page_table*>(pml4));
|
||||
paging::add_current_mappings(reinterpret_cast<paging::page_table*>(pml4));
|
||||
|
||||
for (auto &desc : map)
|
||||
desc.virtual_start = desc.physical_start + ::memory::page_offset;
|
||||
for (auto &desc : map)
|
||||
desc.virtual_start = desc.physical_start + ::memory::page_offset;
|
||||
|
||||
// Write our new PML4 pointer to CR3
|
||||
asm volatile ( "mov %0, %%cr3" :: "r" (pml4) );
|
||||
__sync_synchronize();
|
||||
// Write our new PML4 pointer to CR3
|
||||
asm volatile ( "mov %0, %%cr3" :: "r" (pml4) );
|
||||
__sync_synchronize();
|
||||
|
||||
try_or_raise(
|
||||
rs->set_virtual_address_map(
|
||||
map.length, map.size, map.version, map.entries),
|
||||
L"Error setting virtual address map");
|
||||
try_or_raise(
|
||||
rs->set_virtual_address_map(
|
||||
map.length, map.size, map.version, map.entries),
|
||||
L"Error setting virtual address map");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user