summaryrefslogtreecommitdiff
path: root/src/common/page_table.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/page_table.cpp')
-rw-r--r--src/common/page_table.cpp28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/common/page_table.cpp b/src/common/page_table.cpp
index 75897eeae..4817b09f9 100644
--- a/src/common/page_table.cpp
+++ b/src/common/page_table.cpp
@@ -10,12 +10,12 @@ PageTable::PageTable() = default;
10 10
11PageTable::~PageTable() noexcept = default; 11PageTable::~PageTable() noexcept = default;
12 12
13bool PageTable::BeginTraversal(TraversalEntry* out_entry, TraversalContext* out_context, 13bool PageTable::BeginTraversal(TraversalEntry& out_entry, TraversalContext& out_context,
14 u64 address) const { 14 u64 address) const {
15 // Setup invalid defaults. 15 // Setup invalid defaults.
16 out_entry->phys_addr = 0; 16 out_entry.phys_addr = 0;
17 out_entry->block_size = page_size; 17 out_entry.block_size = page_size;
18 out_context->next_page = 0; 18 out_context.next_page = 0;
19 19
20 // Validate that we can read the actual entry. 20 // Validate that we can read the actual entry.
21 const auto page = address / page_size; 21 const auto page = address / page_size;
@@ -30,20 +30,20 @@ bool PageTable::BeginTraversal(TraversalEntry* out_entry, TraversalContext* out_
30 } 30 }
31 31
32 // Populate the results. 32 // Populate the results.
33 out_entry->phys_addr = phys_addr + address; 33 out_entry.phys_addr = phys_addr + address;
34 out_context->next_page = page + 1; 34 out_context.next_page = page + 1;
35 out_context->next_offset = address + page_size; 35 out_context.next_offset = address + page_size;
36 36
37 return true; 37 return true;
38} 38}
39 39
40bool PageTable::ContinueTraversal(TraversalEntry* out_entry, TraversalContext* context) const { 40bool PageTable::ContinueTraversal(TraversalEntry& out_entry, TraversalContext& context) const {
41 // Setup invalid defaults. 41 // Setup invalid defaults.
42 out_entry->phys_addr = 0; 42 out_entry.phys_addr = 0;
43 out_entry->block_size = page_size; 43 out_entry.block_size = page_size;
44 44
45 // Validate that we can read the actual entry. 45 // Validate that we can read the actual entry.
46 const auto page = context->next_page; 46 const auto page = context.next_page;
47 if (page >= backing_addr.size()) { 47 if (page >= backing_addr.size()) {
48 return false; 48 return false;
49 } 49 }
@@ -55,9 +55,9 @@ bool PageTable::ContinueTraversal(TraversalEntry* out_entry, TraversalContext* c
55 } 55 }
56 56
57 // Populate the results. 57 // Populate the results.
58 out_entry->phys_addr = phys_addr + context->next_offset; 58 out_entry.phys_addr = phys_addr + context.next_offset;
59 context->next_page = page + 1; 59 context.next_page = page + 1;
60 context->next_offset += page_size; 60 context.next_offset += page_size;
61 61
62 return true; 62 return true;
63} 63}