1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 23:37:36 +00:00

Revert "Kernel: Switch singletons to use new Singleton class"

This reverts commit f48feae0b2.
This commit is contained in:
Andreas Kling 2020-08-22 17:53:34 +02:00
parent 0addcb45b8
commit 2fd9e72264
44 changed files with 146 additions and 184 deletions

View file

@ -39,7 +39,6 @@
#include <Kernel/VM/PhysicalRegion.h>
#include <Kernel/VM/PurgeableVMObject.h>
#include <Kernel/VM/SharedInodeVMObject.h>
#include <Kernel/Singleton.h>
#include <Kernel/StdLib.h>
//#define MM_DEBUG
@ -51,7 +50,7 @@ extern FlatPtr end_of_kernel_bss;
namespace Kernel {
static auto s_the = make_singleton<MemoryManager>();
static MemoryManager* s_the;
RecursiveSpinLock s_mm_lock;
MemoryManager& MM
@ -61,8 +60,6 @@ MemoryManager& MM
MemoryManager::MemoryManager()
{
ASSERT(!s_the.is_initialized());
ScopedSpinLock lock(s_mm_lock);
m_kernel_page_directory = PageDirectory::create_kernel_page_directory();
parse_memory_map();
@ -220,7 +217,7 @@ void MemoryManager::initialize(u32 cpu)
Processor::current().set_mm_data(*mm_data);
if (cpu == 0)
s_the.ensure_instance();
s_the = new MemoryManager;
}
Region* MemoryManager::kernel_region_from_vaddr(VirtualAddress vaddr)

View file

@ -85,7 +85,6 @@ class MemoryManager {
friend Optional<KBuffer> procfs$memstat(InodeIdentifier);
public:
MemoryManager();
static MemoryManager& the();
static void initialize(u32 cpu);
@ -161,6 +160,7 @@ public:
PageDirectory& kernel_page_directory() { return *m_kernel_page_directory; }
private:
MemoryManager();
~MemoryManager();
enum class AccessSpace { Kernel,

View file

@ -27,7 +27,6 @@
#include <AK/Memory.h>
#include <Kernel/Process.h>
#include <Kernel/Random.h>
#include <Kernel/Singleton.h>
#include <Kernel/Thread.h>
#include <Kernel/VM/MemoryManager.h>
#include <Kernel/VM/PageDirectory.h>
@ -38,12 +37,13 @@ static const FlatPtr userspace_range_base = 0x00800000;
static const FlatPtr userspace_range_ceiling = 0xbe000000;
static const FlatPtr kernelspace_range_base = 0xc0800000;
static auto s_cr3_map = make_singleton<HashMap<u32, PageDirectory*>>();
static HashMap<u32, PageDirectory*>& cr3_map()
{
ASSERT_INTERRUPTS_DISABLED();
return *s_cr3_map;
static HashMap<u32, PageDirectory*>* map;
if (!map)
map = new HashMap<u32, PageDirectory*>;
return *map;
}
RefPtr<PageDirectory> PageDirectory::find_by_cr3(u32 cr3)