Kernel: Stop requiring working malloc for syscall.h includes

Fixes #13869
This commit is contained in:
Patrick Meyer 2022-05-01 22:57:24 +02:00 committed by Andreas Kling
parent e02579bdab
commit 0bd131ad06
7 changed files with 37 additions and 16 deletions

View file

@ -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;

View file

@ -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;
}
}

View file

@ -9,6 +9,7 @@
#include <AK/String.h>
#include <AK/StringBuilder.h>
#include <AK/Vector.h>
#include <Kernel/API/SyscallString.h>
#include <errno.h>
#include <signal.h>
#include <stdio.h>

View file

@ -12,6 +12,7 @@
#include <AK/Debug.h>
#include <AK/FileStream.h>
#include <AK/Format.h>
#include <Kernel/API/SyscallString.h>
#include <alloca.h>
#include <fcntl.h>
#include <sched.h>

View file

@ -8,6 +8,7 @@
#include <AK/HashMap.h>
#include <AK/NonnullOwnPtr.h>
#include <AK/StringBuilder.h>
#include <Kernel/API/SyscallString.h>
#include <LibC/sys/arch/i386/regs.h>
#include <LibCore/ArgsParser.h>
#include <LibCore/File.h>

View file

@ -9,6 +9,7 @@
#include <AK/IPv4Address.h>
#include <AK/StdLibExtras.h>
#include <AK/Types.h>
#include <Kernel/API/SyscallString.h>
#include <LibC/sys/arch/i386/regs.h>
#include <LibCore/ArgsParser.h>
#include <LibCore/File.h>

View file

@ -9,6 +9,7 @@
#include <AK/Debug.h>
#include <AK/Iterator.h>
#include <AK/Vector.h>
#include <Kernel/API/SyscallString.h>
#include <LibCore/ArgsParser.h>
#include <LibMain/Main.h>
#include <errno_codes.h>