Kernel/LibC: Add bareboness signals

You can now call raise() to raise a signal. Signal handlers are
not yet supported, but the handling works :)
This commit is contained in:
Bananymous
2023-07-21 15:45:02 +03:00
parent a1db032ba9
commit c2cf98e32f
14 changed files with 126 additions and 3 deletions

View File

@@ -11,6 +11,9 @@ extern uint8_t g_kernel_end[];
extern uint8_t g_kernel_execute_start[];
extern uint8_t g_kernel_execute_end[];
extern uint8_t g_userspace_start[];
extern uint8_t g_userspace_end[];
namespace Kernel
{
@@ -120,6 +123,14 @@ namespace Kernel
g_kernel_execute_end - g_kernel_execute_start,
Flags::Execute | Flags::Present
);
// Map userspace memory
map_range_at(
V2P(g_userspace_start),
(vaddr_t)g_userspace_start,
g_userspace_end - g_userspace_start,
Flags::Execute | Flags::UserSupervisor | Flags::Present
);
}
BAN::ErrorOr<PageTable*> PageTable::create_userspace()