summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorAndrew Kaster <andrewdkaster@gmail.com>2021-05-23 19:33:40 -0600
committerAndreas Kling <kling@serenityos.org>2021-05-27 15:18:03 +0200
commit505f84daae62ff6b0c94eb2551fd69e87e56823f (patch)
tree787b7d912e6b3f914aa44c3bc261e641751ca20f /Kernel
parenta223ef3c4fa01da1deb8a453e3aa9c9021bcc939 (diff)
downloadserenity-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.cpp6
-rw-r--r--Kernel/UBSanitizer.cpp6
-rw-r--r--Kernel/UBSanitizer.h120
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;
-};
-
-}