1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:47:44 +00:00

Kernel: Get rid of Kernel/types.h, separate LinearAddress/PhysicalAddress.

This commit is contained in:
Andreas Kling 2019-04-06 14:29:29 +02:00
parent 6306cf5c27
commit a58d7fd8bb
27 changed files with 119 additions and 121 deletions

25
Kernel/PhysicalAddress.h Normal file
View file

@ -0,0 +1,25 @@
#pragma once
class PhysicalAddress {
public:
PhysicalAddress() { }
explicit PhysicalAddress(dword address) : m_address(address) { }
PhysicalAddress offset(dword o) const { return PhysicalAddress(m_address + o); }
dword get() const { return m_address; }
void set(dword address) { m_address = address; }
void mask(dword m) { m_address &= m; }
bool is_null() const { return m_address == 0; }
byte* as_ptr() { return reinterpret_cast<byte*>(m_address); }
const byte* as_ptr() const { return reinterpret_cast<const byte*>(m_address); }
dword page_base() const { return m_address & 0xfffff000; }
bool operator==(const PhysicalAddress& other) const { return m_address == other.m_address; }
private:
dword m_address { 0 };
};