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 c03e3fc5b4b..c3e6e779ee3 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 143798c1e5c..0eef3b692e6 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 876c2d538bd..6b6ae5c24b7 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 87559d70cfa..f622228c742 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 4a4c821d74e..d8962144a55 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