#pragma once
#include "memory/Paging.h"

struct AddressSpace
{
    static AddressSpace create();

    void destroy();

    void detach();

    AddressSpace clone();

    PageTable* get_pml4()
    {
        return m_pml4;
    }

    bool is_cloned()
    {
        return m_cloned;
    }

  private:
    PageTable* m_pml4;
    bool m_cloned;
};