mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:37:45 +00:00
Kernel: Widen PhysicalPage refcount to 32 bits
A 16-bit refcount is just begging for trouble right nowl. A 32-bit refcount will be begging for trouble later down the line, so we'll have to revisit this eventually. :^)
This commit is contained in:
parent
51628f64fa
commit
5507945306
2 changed files with 7 additions and 7 deletions
|
@ -42,14 +42,14 @@ public:
|
|||
|
||||
void ref()
|
||||
{
|
||||
ASSERT(m_retain_count);
|
||||
++m_retain_count;
|
||||
ASSERT(m_ref_count);
|
||||
++m_ref_count;
|
||||
}
|
||||
|
||||
void unref()
|
||||
{
|
||||
ASSERT(m_retain_count);
|
||||
if (!--m_retain_count) {
|
||||
ASSERT(m_ref_count);
|
||||
if (!--m_ref_count) {
|
||||
if (m_may_return_to_freelist)
|
||||
move(*this).return_to_freelist();
|
||||
delete this;
|
||||
|
@ -58,7 +58,7 @@ public:
|
|||
|
||||
static NonnullRefPtr<PhysicalPage> create(PhysicalAddress, bool supervisor, bool may_return_to_freelist = true);
|
||||
|
||||
u16 ref_count() const { return m_retain_count; }
|
||||
u32 ref_count() const { return m_ref_count; }
|
||||
|
||||
bool is_shared_zero_page() const;
|
||||
|
||||
|
@ -68,7 +68,7 @@ private:
|
|||
|
||||
void return_to_freelist() &&;
|
||||
|
||||
u16 m_retain_count { 1 };
|
||||
u32 m_ref_count { 1 };
|
||||
bool m_may_return_to_freelist { true };
|
||||
bool m_supervisor { false };
|
||||
PhysicalAddress m_paddr;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue