diff --git a/kernel/kernel/Memory/FileBackedRegion.cpp b/kernel/kernel/Memory/FileBackedRegion.cpp index cf8560fc..6c41a0a5 100644 --- a/kernel/kernel/Memory/FileBackedRegion.cpp +++ b/kernel/kernel/Memory/FileBackedRegion.cpp @@ -97,8 +97,8 @@ namespace Kernel return; uint8_t page_buffer[PAGE_SIZE]; - PageTable::with_fast_page(pages[page_index], [&] { - memcpy(page_buffer, PageTable::fast_page_as_ptr(), PAGE_SIZE); + PageTable::with_per_cpu_fast_page(pages[page_index], [&](void* addr) { + memcpy(page_buffer, addr, PAGE_SIZE); }); const size_t write_size = BAN::Math::min(PAGE_SIZE, inode->size() - page_index * PAGE_SIZE); @@ -162,8 +162,8 @@ namespace Kernel m_shared_data->pages[shared_page_index] = Heap::get().take_free_page(); if (m_shared_data->pages[shared_page_index] == 0) return BAN::Error::from_errno(ENOMEM); - PageTable::with_fast_page(m_shared_data->pages[shared_page_index], [&] { - memcpy(PageTable::fast_page_as_ptr(), page_buffer, PAGE_SIZE); + PageTable::with_per_cpu_fast_page(m_shared_data->pages[shared_page_index], [&](void* addr) { + memcpy(addr, page_buffer, PAGE_SIZE); }); shared_data_has_correct_page = true; } @@ -181,12 +181,12 @@ namespace Kernel return BAN::Error::from_errno(ENOMEM); if (!shared_data_has_correct_page) { - PageTable::with_fast_page(m_shared_data->pages[shared_page_index], [&] { - memcpy(page_buffer, PageTable::fast_page_as_ptr(), PAGE_SIZE); + PageTable::with_per_cpu_fast_page(m_shared_data->pages[shared_page_index], [&](void* addr) { + memcpy(page_buffer, addr, PAGE_SIZE); }); } - PageTable::with_fast_page(paddr, [&] { - memcpy(PageTable::fast_page_as_ptr(), page_buffer, PAGE_SIZE); + PageTable::with_per_cpu_fast_page(paddr, [&](void* addr) { + memcpy(addr, page_buffer, PAGE_SIZE); }); m_dirty_pages[local_page_index] = paddr; m_page_table.map_page_at(paddr, vaddr, m_flags); @@ -210,8 +210,8 @@ namespace Kernel return BAN::Error::from_errno(ENOMEM); ASSERT(&m_page_table == &PageTable::current()); - PageTable::with_fast_page(paddr, [vaddr] { - memcpy(PageTable::fast_page_as_ptr(), reinterpret_cast(vaddr), PAGE_SIZE); + PageTable::with_per_cpu_fast_page(paddr, [vaddr](void* addr) { + memcpy(addr, reinterpret_cast(vaddr), PAGE_SIZE); }); m_dirty_pages[local_page_index] = paddr; @@ -240,8 +240,8 @@ namespace Kernel return BAN::Error::from_errno(ENOMEM); ASSERT(&m_page_table == &PageTable::current() || &m_page_table == &PageTable::kernel()); - PageTable::with_fast_page(paddr, [&] { - memcpy(PageTable::fast_page_as_ptr(), reinterpret_cast(vaddr), PAGE_SIZE); + PageTable::with_per_cpu_fast_page(paddr, [&](void* addr) { + memcpy(addr, reinterpret_cast(vaddr), PAGE_SIZE); }); result->m_page_table.map_page_at(paddr, vaddr, m_flags); diff --git a/kernel/kernel/Memory/MemoryBackedRegion.cpp b/kernel/kernel/Memory/MemoryBackedRegion.cpp index 4b2bafd1..1f78e253 100644 --- a/kernel/kernel/Memory/MemoryBackedRegion.cpp +++ b/kernel/kernel/Memory/MemoryBackedRegion.cpp @@ -64,8 +64,8 @@ namespace Kernel return BAN::Error::from_errno(ENOMEM); m_page_table.map_page_at(paddr, vaddr, m_flags); - PageTable::with_fast_page(paddr, [] { - memset(PageTable::fast_page_as_ptr(), 0x00, PAGE_SIZE); + PageTable::with_per_cpu_fast_page(paddr, [](void* addr) { + memset(addr, 0x00, PAGE_SIZE); }); return true; @@ -93,8 +93,8 @@ namespace Kernel m_page_table.map_page_at(paddr, vaddr, m_flags); ASSERT(&m_page_table == &PageTable::current()); - PageTable::with_fast_page(physical_page->paddr, [vaddr] { - memcpy(reinterpret_cast(vaddr), PageTable::fast_page_as_ptr(), PAGE_SIZE); + PageTable::with_per_cpu_fast_page(physical_page->paddr, [vaddr](void* addr) { + memcpy(reinterpret_cast(vaddr), addr, PAGE_SIZE); }); if (--physical_page->ref_count == 0) @@ -164,9 +164,9 @@ namespace Kernel size_t written = 0; while (written < buffer_size) { - vaddr_t write_vaddr = m_vaddr + offset_into_region + written; - vaddr_t page_offset = write_vaddr % PAGE_SIZE; - size_t bytes = BAN::Math::min(buffer_size - written, PAGE_SIZE - page_offset); + const vaddr_t write_vaddr = m_vaddr + offset_into_region + written; + const vaddr_t page_offset = write_vaddr % PAGE_SIZE; + const size_t bytes = BAN::Math::min(buffer_size - written, PAGE_SIZE - page_offset); if (!(m_page_table.get_page_flags(write_vaddr & PAGE_ADDR_MASK) & PageTable::ReadWrite)) { @@ -180,8 +180,8 @@ namespace Kernel const paddr_t paddr = m_page_table.physical_address_of(write_vaddr & PAGE_ADDR_MASK); ASSERT(paddr); - PageTable::with_fast_page(paddr, [&] { - memcpy(PageTable::fast_page_as_ptr(page_offset), (void*)(buffer + written), bytes); + PageTable::with_per_cpu_fast_page(paddr, [&](void* addr) { + memcpy(static_cast(addr) + page_offset, (void*)(buffer + written), bytes); }); written += bytes;