mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-11 06:54:18 +00:00
parent
264e64d3ec
commit
b8cd58e6a5
@ -515,6 +515,7 @@ class Hw::Pml4_table
|
||||
|
||||
static constexpr size_t PAGE_SIZE_LOG2 = SIZE_LOG2_512GB;
|
||||
static constexpr size_t SIZE_LOG2 = SIZE_LOG2_256TB;
|
||||
static constexpr size_t SIZE_MASK = (1UL << SIZE_LOG2) - 1;
|
||||
static constexpr size_t MAX_ENTRIES = 512;
|
||||
static constexpr size_t PAGE_SIZE = 1UL << PAGE_SIZE_LOG2;
|
||||
static constexpr size_t PAGE_MASK = ~((1UL << PAGE_SIZE_LOG2) - 1);
|
||||
@ -593,8 +594,8 @@ class Hw::Pml4_table
|
||||
template <typename FUNC>
|
||||
void _range_op(addr_t vo, addr_t pa, size_t size, FUNC &&func)
|
||||
{
|
||||
for (size_t i = vo >> PAGE_SIZE_LOG2; size > 0;
|
||||
i = vo >> PAGE_SIZE_LOG2) {
|
||||
for (size_t i = (vo & SIZE_MASK) >> PAGE_SIZE_LOG2; size > 0;
|
||||
i = (vo & SIZE_MASK) >> PAGE_SIZE_LOG2) {
|
||||
assert (i < MAX_ENTRIES);
|
||||
addr_t end = (vo + PAGE_SIZE) & PAGE_MASK;
|
||||
size_t sz = Genode::min(size, end-vo);
|
||||
|
Loading…
x
Reference in New Issue
Block a user