diff options
Diffstat (limited to 'Kernel/JailManagement.cpp')
-rw-r--r-- | Kernel/JailManagement.cpp | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/Kernel/JailManagement.cpp b/Kernel/JailManagement.cpp deleted file mode 100644 index df927ced6d..0000000000 --- a/Kernel/JailManagement.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il> - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#include <AK/Singleton.h> -#include <Kernel/JailManagement.h> -#include <Kernel/Process.h> -#include <Kernel/Sections.h> - -namespace Kernel { - -static Singleton<JailManagement> s_the; -static Atomic<u64> s_jail_id; - -UNMAP_AFTER_INIT JailManagement::JailManagement() = default; - -JailIndex JailManagement::generate_jail_id() -{ - return s_jail_id.fetch_add(1); -} - -JailManagement& JailManagement::the() -{ - return *s_the; -} - -LockRefPtr<Jail> JailManagement::find_jail_by_index(JailIndex index) -{ - return m_jails.with([&](auto& list) -> LockRefPtr<Jail> { - for (auto& jail : list) { - if (jail.index() == index) - return jail; - } - return {}; - }); -} - -ErrorOr<void> JailManagement::for_each_in_same_jail(Function<ErrorOr<void>(Jail&)> callback) -{ - return Process::current().jail().with([&](auto const& my_jail) -> ErrorOr<void> { - // Note: If we are in a jail, don't reveal anything about the outside world, - // not even the fact that we are in which jail... - if (my_jail) - return {}; - return m_jails.with([&](auto& list) -> ErrorOr<void> { - for (auto& jail : list) { - TRY(callback(jail)); - } - return {}; - }); - }); -} - -LockRefPtr<Jail> JailManagement::find_first_jail_by_name(StringView name) -{ - return m_jails.with([&](auto& list) -> LockRefPtr<Jail> { - for (auto& jail : list) { - if (jail.name() == name) - return jail; - } - return {}; - }); -} - -ErrorOr<NonnullLockRefPtr<Jail>> JailManagement::create_jail(NonnullOwnPtr<KString> name) -{ - return m_jails.with([&](auto& list) -> ErrorOr<NonnullLockRefPtr<Jail>> { - auto jail = TRY(Jail::create({}, move(name), generate_jail_id())); - list.append(jail); - return jail; - }); -} - -} |