Kernel: Use size_t to keep track of the number of pages in a region

We were previously using a 32-bit unsigned integer for this, which
caused us to start truncating region sizes when multiplied with
`PAGE_SIZE` on hardware with a lot of memory.
This commit is contained in:
Tim Schumacher 2022-12-07 03:03:38 +01:00 committed by Linus Groh
parent 4aa70a07ca
commit 1ca0898b1c
Notes: sideshowbarker 2024-07-17 03:22:02 +09:00
2 changed files with 4 additions and 4 deletions

View file

@ -63,7 +63,7 @@ void PhysicalRegion::initialize_zones()
make_zones(small_zone_size);
}
OwnPtr<PhysicalRegion> PhysicalRegion::try_take_pages_from_beginning(unsigned page_count)
OwnPtr<PhysicalRegion> PhysicalRegion::try_take_pages_from_beginning(size_t page_count)
{
VERIFY(page_count > 0);
VERIFY(page_count < m_pages);

View file

@ -28,10 +28,10 @@ public:
PhysicalAddress lower() const { return m_lower; }
PhysicalAddress upper() const { return m_upper; }
unsigned size() const { return m_pages; }
size_t size() const { return m_pages; }
bool contains(PhysicalAddress paddr) const { return paddr >= m_lower && paddr < m_upper; }
OwnPtr<PhysicalRegion> try_take_pages_from_beginning(unsigned);
OwnPtr<PhysicalRegion> try_take_pages_from_beginning(size_t);
RefPtr<PhysicalPage> take_free_page();
NonnullRefPtrVector<PhysicalPage> take_contiguous_free_pages(size_t count);
@ -52,7 +52,7 @@ private:
PhysicalAddress m_lower;
PhysicalAddress m_upper;
unsigned m_pages { 0 };
size_t m_pages { 0 };
};
}