summaryrefslogtreecommitdiff
path: root/Kernel/FileSystem
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2020-08-22 17:53:34 +0200
committerAndreas Kling <kling@serenityos.org>2020-08-22 18:01:59 +0200
commit2fd9e722647b0a9b90b0380b898c17787918b451 (patch)
tree812bea0de4c6d9ce8767ea3b7d0dc1a0a6eb331b /Kernel/FileSystem
parent0addcb45b83cc46382dc249619b0ae1f12c59dba (diff)
downloadserenity-2fd9e722647b0a9b90b0380b898c17787918b451.zip
Revert "Kernel: Switch singletons to use new Singleton class"
This reverts commit f48feae0b2a300992479abf0b2ded85e45ac6045.
Diffstat (limited to 'Kernel/FileSystem')
-rw-r--r--Kernel/FileSystem/DevPtsFS.cpp17
-rw-r--r--Kernel/FileSystem/FIFO.cpp6
-rw-r--r--Kernel/FileSystem/FileSystem.cpp5
-rw-r--r--Kernel/FileSystem/Inode.cpp7
-rw-r--r--Kernel/FileSystem/VirtualFileSystem.cpp10
-rw-r--r--Kernel/FileSystem/VirtualFileSystem.h1
6 files changed, 23 insertions, 23 deletions
diff --git a/Kernel/FileSystem/DevPtsFS.cpp b/Kernel/FileSystem/DevPtsFS.cpp
index b3db215c5d..ac060d026b 100644
--- a/Kernel/FileSystem/DevPtsFS.cpp
+++ b/Kernel/FileSystem/DevPtsFS.cpp
@@ -28,7 +28,6 @@
#include <AK/StringView.h>
#include <Kernel/FileSystem/DevPtsFS.h>
#include <Kernel/FileSystem/VirtualFileSystem.h>
-#include <Kernel/Singleton.h>
#include <Kernel/TTY/SlavePTY.h>
namespace Kernel {
@@ -46,10 +45,14 @@ DevPtsFS::~DevPtsFS()
{
}
-static auto s_ptys = make_singleton<HashTable<unsigned>>();
+static HashTable<unsigned>* ptys;
bool DevPtsFS::initialize()
{
+ if (ptys == nullptr) {
+ ptys = new HashTable<unsigned>();
+ }
+
m_root_inode = adopt(*new DevPtsFSInode(*this, 1));
m_root_inode->m_metadata.inode = { fsid(), 1 };
m_root_inode->m_metadata.mode = 0040555;
@@ -101,12 +104,12 @@ RefPtr<Inode> DevPtsFS::get_inode(InodeIdentifier inode_id) const
void DevPtsFS::register_slave_pty(SlavePTY& slave_pty)
{
- s_ptys->set(slave_pty.index());
+ ptys->set(slave_pty.index());
}
void DevPtsFS::unregister_slave_pty(SlavePTY& slave_pty)
{
- s_ptys->remove(slave_pty.index());
+ ptys->remove(slave_pty.index());
}
DevPtsFSInode::DevPtsFSInode(DevPtsFS& fs, unsigned index)
@@ -141,7 +144,7 @@ KResult DevPtsFSInode::traverse_as_directory(Function<bool(const FS::DirectoryEn
callback({ ".", identifier(), 0 });
callback({ "..", identifier(), 0 });
- for (unsigned pty_index : *s_ptys) {
+ for (unsigned pty_index : *ptys) {
String name = String::number(pty_index);
InodeIdentifier identifier = { fsid(), pty_index_to_inode_index(pty_index) };
callback({ name, identifier, 0 });
@@ -154,7 +157,7 @@ KResultOr<size_t> DevPtsFSInode::directory_entry_count() const
{
ASSERT(identifier().index() == 1);
- return 2 + s_ptys->size();
+ return 2 + ptys->size();
}
RefPtr<Inode> DevPtsFSInode::lookup(StringView name)
@@ -167,7 +170,7 @@ RefPtr<Inode> DevPtsFSInode::lookup(StringView name)
auto& fs = static_cast<DevPtsFS&>(this->fs());
auto pty_index = name.to_uint();
- if (pty_index.has_value() && s_ptys->contains(pty_index.value())) {
+ if (pty_index.has_value() && ptys->contains(pty_index.value())) {
return fs.get_inode({ fsid(), pty_index_to_inode_index(pty_index.value()) });
}
diff --git a/Kernel/FileSystem/FIFO.cpp b/Kernel/FileSystem/FIFO.cpp
index 670266cbce..9881b6916b 100644
--- a/Kernel/FileSystem/FIFO.cpp
+++ b/Kernel/FileSystem/FIFO.cpp
@@ -31,17 +31,17 @@
#include <Kernel/FileSystem/FileDescription.h>
#include <Kernel/Lock.h>
#include <Kernel/Process.h>
-#include <Kernel/Singleton.h>
#include <Kernel/Thread.h>
//#define FIFO_DEBUG
namespace Kernel {
-static auto s_table = make_singleton<Lockable<HashTable<FIFO*>>>();
-
static Lockable<HashTable<FIFO*>>& all_fifos()
{
+ static Lockable<HashTable<FIFO*>>* s_table;
+ if (!s_table)
+ s_table = new Lockable<HashTable<FIFO*>>;
return *s_table;
}
diff --git a/Kernel/FileSystem/FileSystem.cpp b/Kernel/FileSystem/FileSystem.cpp
index 450f401253..e4ed6fd98b 100644
--- a/Kernel/FileSystem/FileSystem.cpp
+++ b/Kernel/FileSystem/FileSystem.cpp
@@ -31,17 +31,18 @@
#include <Kernel/FileSystem/FileSystem.h>
#include <Kernel/FileSystem/Inode.h>
#include <Kernel/Net/LocalSocket.h>
-#include <Kernel/Singleton.h>
#include <Kernel/VM/MemoryManager.h>
#include <LibC/errno_numbers.h>
namespace Kernel {
static u32 s_lastFileSystemID;
-static auto s_fs_map = make_singleton<HashMap<u32, FS*>>();
+static HashMap<u32, FS*>* s_fs_map;
static HashMap<u32, FS*>& all_fses()
{
+ if (!s_fs_map)
+ s_fs_map = new HashMap<u32, FS*>();
return *s_fs_map;
}
diff --git a/Kernel/FileSystem/Inode.cpp b/Kernel/FileSystem/Inode.cpp
index c136ffc2a0..127ad174f6 100644
--- a/Kernel/FileSystem/Inode.cpp
+++ b/Kernel/FileSystem/Inode.cpp
@@ -33,19 +33,20 @@
#include <Kernel/FileSystem/VirtualFileSystem.h>
#include <Kernel/KBufferBuilder.h>
#include <Kernel/Net/LocalSocket.h>
-#include <Kernel/Singleton.h>
#include <Kernel/VM/SharedInodeVMObject.h>
namespace Kernel {
static SpinLock s_all_inodes_lock;
-static auto s_list = make_singleton<InlineLinkedList<Inode>>();
InlineLinkedList<Inode>& Inode::all_with_lock()
{
ASSERT(s_all_inodes_lock.is_locked());
- return *s_list;
+ static InlineLinkedList<Inode>* list;
+ if (!list)
+ list = new InlineLinkedList<Inode>;
+ return *list;
}
void Inode::sync()
diff --git a/Kernel/FileSystem/VirtualFileSystem.cpp b/Kernel/FileSystem/VirtualFileSystem.cpp
index cc0510a570..5febd7c5e6 100644
--- a/Kernel/FileSystem/VirtualFileSystem.cpp
+++ b/Kernel/FileSystem/VirtualFileSystem.cpp
@@ -34,24 +34,19 @@
#include <Kernel/FileSystem/VirtualFileSystem.h>
#include <Kernel/KSyms.h>
#include <Kernel/Process.h>
-#include <Kernel/Singleton.h>
#include <LibC/errno_numbers.h>
//#define VFS_DEBUG
namespace Kernel {
-static auto s_the = make_singleton<VFS>();
+static VFS* s_the;
static constexpr int symlink_recursion_limit { 5 }; // FIXME: increase?
static constexpr int root_mount_flags = MS_NODEV | MS_NOSUID | MS_RDONLY;
-void VFS::initialize()
-{
- s_the.ensure_instance();
-}
-
VFS& VFS::the()
{
+ ASSERT(s_the);
return *s_the;
}
@@ -60,6 +55,7 @@ VFS::VFS()
#ifdef VFS_DEBUG
klog() << "VFS: Constructing VFS";
#endif
+ s_the = this;
}
VFS::~VFS()
diff --git a/Kernel/FileSystem/VirtualFileSystem.h b/Kernel/FileSystem/VirtualFileSystem.h
index 1969327698..35b17e0da8 100644
--- a/Kernel/FileSystem/VirtualFileSystem.h
+++ b/Kernel/FileSystem/VirtualFileSystem.h
@@ -78,7 +78,6 @@ public:
int m_flags;
};
- static void initialize();
static VFS& the();
VFS();