summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorPatrick Meyer <git@the-space.agency>2022-05-01 22:57:24 +0200
committerAndreas Kling <kling@serenityos.org>2022-05-02 12:44:34 +0200
commit0bd131ad0603f8163c4cc0d4abf59e86bb397709 (patch)
treede9b04912f39e47fa8c4f5d278538b4df4640c62 /Kernel
parente02579bdab93671c86e68a9bbb8223db020bd987 (diff)
downloadserenity-0bd131ad0603f8163c4cc0d4abf59e86bb397709.zip
Kernel: Stop requiring working malloc for syscall.h includes
Fixes #13869
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/API/Syscall.h16
-rw-r--r--Kernel/API/SyscallString.h32
2 files changed, 32 insertions, 16 deletions
diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h
index c4ce0cb7ca..a05f7be98d 100644
--- a/Kernel/API/Syscall.h
+++ b/Kernel/API/Syscall.h
@@ -6,7 +6,6 @@
#pragma once
-#include <AK/StringView.h>
#include <AK/Types.h>
#include <AK/Userspace.h>
@@ -201,21 +200,6 @@ enum Function {
__Count
};
-constexpr StringView to_string(Function function)
-{
- switch (function) {
-#undef __ENUMERATE_SYSCALL
-#define __ENUMERATE_SYSCALL(sys_call, needs_lock) \
- case SC_##sys_call: \
- return #sys_call##sv;
- ENUMERATE_SYSCALLS(__ENUMERATE_SYSCALL)
-#undef __ENUMERATE_SYSCALL
- default:
- break;
- }
- return "Unknown"sv;
-}
-
#ifdef __serenity__
struct StringArgument {
char const* characters;
diff --git a/Kernel/API/SyscallString.h b/Kernel/API/SyscallString.h
new file mode 100644
index 0000000000..6b9df75e78
--- /dev/null
+++ b/Kernel/API/SyscallString.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2018-2022, Andreas Kling <kling@serenityos.org>
+ * Copyright (c) 2022, Patrick Meyer <git@the-space.agency>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#pragma once
+
+#include <AK/StringView.h>
+#include <Kernel/API/Syscall.h>
+
+namespace Kernel::Syscall {
+
+// Separate header so syscall.h doesn't depend on malloc.
+// https://github.com/SerenityOS/serenity/issues/13869
+constexpr StringView to_string(Function function)
+{
+ switch (function) {
+#undef __ENUMERATE_SYSCALL
+#define __ENUMERATE_SYSCALL(sys_call, needs_lock) \
+ case SC_##sys_call: \
+ return #sys_call##sv;
+ ENUMERATE_SYSCALLS(__ENUMERATE_SYSCALL)
+#undef __ENUMERATE_SYSCALL
+ default:
+ break;
+ }
+ return "Unknown"sv;
+}
+
+}