mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:18:11 +00:00
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:
parent
c10a5ac4ad
commit
6b150c794a
11 changed files with 198 additions and 3 deletions
19
Libraries/LibC/serenity.cpp
Normal file
19
Libraries/LibC/serenity.cpp
Normal 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);
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue