Kernel: Implement very simple kernel module loading

It's now possible to load a .o file into the kernel via a syscall.
The kernel will perform all the necessary ELF relocations, and then
call the "module_init" symbol in the loaded module.
This commit is contained in:
Andreas Kling 2019-11-28 20:59:11 +01:00
commit 6b150c794a
Notes: sideshowbarker 2024-07-19 11:02:28 +09:00
11 changed files with 198 additions and 3 deletions

View file

@ -0,0 +1,19 @@
#include <Kernel/Syscall.h>
#include <errno.h>
#include <serenity.h>
extern "C" {
int module_load(const char* path, size_t path_length)
{
int rc = syscall(SC_module_load, path, path_length);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int module_unload(const char* name, size_t name_length)
{
int rc = syscall(SC_module_unload, name, name_length);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
}