summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/page_table.cpp28
-rw-r--r--src/common/page_table.h4
2 files changed, 16 insertions, 16 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}
diff --git a/src/common/page_table.h b/src/common/page_table.h
index fe254d7ae..82d91e9f3 100644
--- a/src/common/page_table.h
+++ b/src/common/page_table.h
@@ -99,9 +99,9 @@ struct PageTable {
99 PageTable(PageTable&&) noexcept = default; 99 PageTable(PageTable&&) noexcept = default;
100 PageTable& operator=(PageTable&&) noexcept = default; 100 PageTable& operator=(PageTable&&) noexcept = default;
101 101
102 bool BeginTraversal(TraversalEntry* out_entry, TraversalContext* out_context, 102 bool BeginTraversal(TraversalEntry& out_entry, TraversalContext& out_context,
103 u64 address) const; 103 u64 address) const;
104 bool ContinueTraversal(TraversalEntry* out_entry, TraversalContext* context) const; 104 bool ContinueTraversal(TraversalEntry& out_entry, TraversalContext& context) const;
105 105
106 /** 106 /**
107 * Resizes the page table to be able to accommodate enough pages within 107 * Resizes the page table to be able to accommodate enough pages within