diff options
author | Andrew Kaster <andrewdkaster@gmail.com> | 2021-05-23 19:33:40 -0600 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-05-27 15:18:03 +0200 |
commit | 505f84daae62ff6b0c94eb2551fd69e87e56823f (patch) | |
tree | 787b7d912e6b3f914aa44c3bc261e641751ca20f /Kernel | |
parent | a223ef3c4fa01da1deb8a453e3aa9c9021bcc939 (diff) | |
download | serenity-505f84daae62ff6b0c94eb2551fd69e87e56823f.zip |
Kernel+AK: Move UBSanitizer to AK, and to AK namespace
In preparation for copying UBSanitizer to userspace, move the header to
AK :^)
Diffstat (limited to 'Kernel')
-rw-r--r-- | Kernel/FileSystem/ProcFS.cpp | 6 | ||||
-rw-r--r-- | Kernel/UBSanitizer.cpp | 6 | ||||
-rw-r--r-- | Kernel/UBSanitizer.h | 120 |
3 files changed, 6 insertions, 126 deletions
diff --git a/Kernel/FileSystem/ProcFS.cpp b/Kernel/FileSystem/ProcFS.cpp index aff36ed954..73bb7daf1a 100644 --- a/Kernel/FileSystem/ProcFS.cpp +++ b/Kernel/FileSystem/ProcFS.cpp @@ -9,6 +9,7 @@ #include <AK/JsonObjectSerializer.h> #include <AK/JsonValue.h> #include <AK/ScopeGuard.h> +#include <AK/UBSanitizer.h> #include <Kernel/Arch/x86/CPU.h> #include <Kernel/Arch/x86/ProcessorInfo.h> #include <Kernel/CommandLine.h> @@ -38,7 +39,6 @@ #include <Kernel/Scheduler.h> #include <Kernel/StdLib.h> #include <Kernel/TTY/TTY.h> -#include <Kernel/UBSanitizer.h> #include <Kernel/VM/AnonymousVMObject.h> #include <Kernel/VM/MemoryManager.h> #include <LibC/errno_numbers.h> @@ -978,9 +978,9 @@ bool ProcFS::initialize() g_dump_kmalloc_stacks = kmalloc_stack_helper->resource(); }); ubsan_deadly_helper = new Lockable<bool>(); - ubsan_deadly_helper->resource() = UBSanitizer::g_ubsan_is_deadly; + ubsan_deadly_helper->resource() = AK::UBSanitizer::g_ubsan_is_deadly; ProcFS::add_sys_bool("ubsan_is_deadly", *ubsan_deadly_helper, [] { - UBSanitizer::g_ubsan_is_deadly = ubsan_deadly_helper->resource(); + AK::UBSanitizer::g_ubsan_is_deadly = ubsan_deadly_helper->resource(); }); caps_lock_to_ctrl_helper = new Lockable<bool>(); ProcFS::add_sys_bool("caps_lock_to_ctrl", *caps_lock_to_ctrl_helper, [] { diff --git a/Kernel/UBSanitizer.cpp b/Kernel/UBSanitizer.cpp index b05a737d39..b9e23df276 100644 --- a/Kernel/UBSanitizer.cpp +++ b/Kernel/UBSanitizer.cpp @@ -5,14 +5,14 @@ */ #include <AK/Format.h> +#include <AK/UBSanitizer.h> #include <Kernel/Arch/x86/CPU.h> #include <Kernel/KSyms.h> -#include <Kernel/UBSanitizer.h> using namespace Kernel; -using namespace Kernel::UBSanitizer; +using namespace AK::UBSanitizer; -bool Kernel::UBSanitizer::g_ubsan_is_deadly { true }; +bool AK::UBSanitizer::g_ubsan_is_deadly { true }; extern "C" { diff --git a/Kernel/UBSanitizer.h b/Kernel/UBSanitizer.h deleted file mode 100644 index a948a57d68..0000000000 --- a/Kernel/UBSanitizer.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2021, Andreas Kling <kling@serenityos.org> - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#pragma once - -#include <AK/Types.h> - -namespace Kernel::UBSanitizer { - -extern bool g_ubsan_is_deadly; - -typedef void* ValueHandle; - -class SourceLocation { -public: - const char* filename() const { return m_filename; } - u32 line() const { return m_line; } - u32 column() const { return m_column; } - -private: - const char* m_filename; - u32 m_line; - u32 m_column; -}; - -enum TypeKind : u16 { - Integer = 0, - Float = 1, - Unknown = 0xffff, -}; - -class TypeDescriptor { -public: - const char* name() const { return m_name; } - TypeKind kind() const { return (TypeKind)m_kind; } - bool is_integer() const { return kind() == TypeKind::Integer; } - bool is_signed() const { return m_info & 1; } - bool is_unsigned() const { return !is_signed(); } - size_t bit_width() const { return 1 << (m_info >> 1); } - -private: - u16 m_kind; - u16 m_info; - char m_name[1]; -}; - -struct InvalidValueData { - SourceLocation location; - const TypeDescriptor& type; -}; - -struct NonnullArgData { - SourceLocation location; - SourceLocation attribute_location; - int argument_index; -}; - -struct NonnullReturnData { - SourceLocation attribute_location; -}; - -struct OverflowData { - SourceLocation location; - const TypeDescriptor& type; -}; - -struct VLABoundData { - SourceLocation location; - const TypeDescriptor& type; -}; - -struct ShiftOutOfBoundsData { - SourceLocation location; - const TypeDescriptor& lhs_type; - const TypeDescriptor& rhs_type; -}; - -struct OutOfBoundsData { - SourceLocation location; - const TypeDescriptor& array_type; - const TypeDescriptor& index_type; -}; - -struct TypeMismatchData { - SourceLocation location; - const TypeDescriptor& type; - u8 log_alignment; - u8 type_check_kind; -}; - -struct AlignmentAssumptionData { - SourceLocation location; - SourceLocation assumption_location; - const TypeDescriptor& type; -}; - -struct UnreachableData { - SourceLocation location; -}; - -struct ImplicitConversionData { - SourceLocation location; - const TypeDescriptor& from_type; - const TypeDescriptor& to_type; - /* ImplicitConversionCheckKind */ unsigned char kind; -}; - -struct InvalidBuiltinData { - SourceLocation location; - unsigned char kind; -}; - -struct PointerOverflowData { - SourceLocation location; -}; - -} |