From 6917c421404af45b9343560f1e5fd9b1eacb1c88 Mon Sep 17 00:00:00 2001 From: Robin Burchell Date: Thu, 23 May 2019 16:42:13 +0200 Subject: [PATCH] Kernel/AK: Move ELF loader to AK This is in preparation for eventually using it in userspace. LinearAddress.h has not been moved for the time being (as it seems to be only used by a very small part of the code). --- {Kernel => AK}/ELF/ELFImage.cpp | 0 {Kernel => AK}/ELF/ELFImage.h | 2 +- {Kernel => AK}/ELF/ELFLoader.cpp | 0 {Kernel => AK}/ELF/ELFLoader.h | 8 ++++++-- {Kernel => AK}/ELF/exec_elf.h | 0 Kernel/KSyms.cpp | 2 +- Kernel/Makefile | 6 +++--- Kernel/Process.cpp | 4 ++-- 8 files changed, 13 insertions(+), 9 deletions(-) rename {Kernel => AK}/ELF/ELFImage.cpp (100%) rename {Kernel => AK}/ELF/ELFImage.h (99%) rename {Kernel => AK}/ELF/ELFLoader.cpp (100%) rename {Kernel => AK}/ELF/ELFLoader.h (93%) rename {Kernel => AK}/ELF/exec_elf.h (100%) diff --git a/Kernel/ELF/ELFImage.cpp b/AK/ELF/ELFImage.cpp similarity index 100% rename from Kernel/ELF/ELFImage.cpp rename to AK/ELF/ELFImage.cpp diff --git a/Kernel/ELF/ELFImage.h b/AK/ELF/ELFImage.h similarity index 99% rename from Kernel/ELF/ELFImage.h rename to AK/ELF/ELFImage.h index c03e3fc5b4..c3e6e779ee 100644 --- a/Kernel/ELF/ELFImage.h +++ b/AK/ELF/ELFImage.h @@ -3,7 +3,7 @@ #include #include #include -#include +#include class ELFImage { public: diff --git a/Kernel/ELF/ELFLoader.cpp b/AK/ELF/ELFLoader.cpp similarity index 100% rename from Kernel/ELF/ELFLoader.cpp rename to AK/ELF/ELFLoader.cpp diff --git a/Kernel/ELF/ELFLoader.h b/AK/ELF/ELFLoader.h similarity index 93% rename from Kernel/ELF/ELFLoader.h rename to AK/ELF/ELFLoader.h index 143798c1e5..0eef3b692e 100644 --- a/Kernel/ELF/ELFLoader.h +++ b/AK/ELF/ELFLoader.h @@ -4,8 +4,10 @@ #include #include #include +#if defined(KERNEL) #include -#include +#endif +#include class ELFLoader { public: @@ -13,10 +15,12 @@ public: ~ELFLoader(); bool load(); +#if defined(KERNEL) Function alloc_section_hook; Function map_section_hook; - char* symbol_ptr(const char* name); LinearAddress entry() const { return m_image.entry(); } +#endif + char* symbol_ptr(const char* name); bool has_symbols() const { return m_image.symbol_count(); } diff --git a/Kernel/ELF/exec_elf.h b/AK/ELF/exec_elf.h similarity index 100% rename from Kernel/ELF/exec_elf.h rename to AK/ELF/exec_elf.h diff --git a/Kernel/KSyms.cpp b/Kernel/KSyms.cpp index 876c2d538b..6b6ae5c24b 100644 --- a/Kernel/KSyms.cpp +++ b/Kernel/KSyms.cpp @@ -2,7 +2,7 @@ #include "Process.h" #include "Scheduler.h" #include -#include +#include #include static KSym* s_ksyms; diff --git a/Kernel/Makefile b/Kernel/Makefile index 87559d70cf..f622228c74 100644 --- a/Kernel/Makefile +++ b/Kernel/Makefile @@ -31,8 +31,6 @@ KERNEL_OBJS = \ FileSystem/FIFO.o \ Scheduler.o \ DoubleBuffer.o \ - ELF/ELFImage.o \ - ELF/ELFLoader.o \ KSyms.o \ SharedMemory.o \ FileSystem/DevPtsFS.o \ @@ -78,7 +76,9 @@ AK_OBJS = \ ../AK/StringBuilder.o \ ../AK/StringView.o \ ../AK/FileSystemPath.o \ - ../AK/StdLibExtras.o + ../AK/StdLibExtras.o \ + ../AK/ELF/ELFImage.o \ + ../AK/ELF/ELFLoader.o CXX_OBJS = $(KERNEL_OBJS) $(VFS_OBJS) $(AK_OBJS) OBJS = $(CXX_OBJS) Boot/boot.ao diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 4a4c821d74..d8962144a5 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #include "i8253.h" #include "RTC.h" @@ -19,7 +18,8 @@ #include "KSyms.h" #include #include -#include +#include +#include #include #include #include