diff options
| author | 2021-01-01 02:54:01 -0800 | |
|---|---|---|
| committer | 2021-01-01 02:54:01 -0800 | |
| commit | eb318ffffc5007c35c42826e23945a82c24900b1 (patch) | |
| tree | 95a401077534f48f0e6a92a269321ff9ad7aec45 /src/common/page_table.cpp | |
| parent | Merge pull request #5239 from FearlessTobi/enable-translation (diff) | |
| parent | core/memory: Read and write page table atomically (diff) | |
| download | yuzu-eb318ffffc5007c35c42826e23945a82c24900b1.tar.gz yuzu-eb318ffffc5007c35c42826e23945a82c24900b1.tar.xz yuzu-eb318ffffc5007c35c42826e23945a82c24900b1.zip | |
Merge pull request #5249 from ReinUsesLisp/lock-free-pages
core/memory: Read and write page table atomically
Diffstat (limited to 'src/common/page_table.cpp')
| -rw-r--r-- | src/common/page_table.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/common/page_table.cpp b/src/common/page_table.cpp index bccea0894..8fd8620fd 100644 --- a/src/common/page_table.cpp +++ b/src/common/page_table.cpp | |||
| @@ -10,16 +10,10 @@ PageTable::PageTable() = default; | |||
| 10 | 10 | ||
| 11 | PageTable::~PageTable() noexcept = default; | 11 | PageTable::~PageTable() noexcept = default; |
| 12 | 12 | ||
| 13 | void PageTable::Resize(std::size_t address_space_width_in_bits, std::size_t page_size_in_bits, | 13 | void PageTable::Resize(size_t address_space_width_in_bits, size_t page_size_in_bits) { |
| 14 | bool has_attribute) { | 14 | const size_t num_page_table_entries{1ULL << (address_space_width_in_bits - page_size_in_bits)}; |
| 15 | const std::size_t num_page_table_entries{1ULL | ||
| 16 | << (address_space_width_in_bits - page_size_in_bits)}; | ||
| 17 | pointers.resize(num_page_table_entries); | 15 | pointers.resize(num_page_table_entries); |
| 18 | backing_addr.resize(num_page_table_entries); | 16 | backing_addr.resize(num_page_table_entries); |
| 19 | |||
| 20 | if (has_attribute) { | ||
| 21 | attributes.resize(num_page_table_entries); | ||
| 22 | } | ||
| 23 | } | 17 | } |
| 24 | 18 | ||
| 25 | } // namespace Common | 19 | } // namespace Common |