syscall: add task_self, task_get_address_space, and vm_region_kill

This commit is contained in:
2026-02-23 18:43:49 +00:00
parent fd1bc0ad5f
commit 5f0654430d
8 changed files with 533 additions and 28 deletions

View File

@@ -56,8 +56,10 @@
.endm
SYSCALL_GATE task_exit SYS_TASK_EXIT 1
SYSCALL_GATE task_self SYS_TASK_SELF 0
SYSCALL_GATE task_create SYS_TASK_CREATE 5
SYSCALL_GATE task_create_thread SYS_TASK_CREATE_THREAD 6
SYSCALL_GATE task_get_address_space SYS_TASK_GET_ADDRESS_SPACE 1
SYSCALL_GATE thread_start SYS_THREAD_START 1
@@ -67,6 +69,7 @@ SYSCALL_GATE vm_object_write SYS_VM_OBJECT_WRITE 5
SYSCALL_GATE vm_object_copy SYS_VM_OBJECT_COPY 6
SYSCALL_GATE vm_region_create SYS_VM_REGION_CREATE 8
SYSCALL_GATE vm_region_kill SYS_VM_REGION_KILL 1
SYSCALL_GATE vm_region_read SYS_VM_REGION_READ 5
SYSCALL_GATE vm_region_write SYS_VM_REGION_WRITE 5
SYSCALL_GATE vm_region_map_absolute SYS_VM_REGION_MAP_ABSOLUTE 7

View File

@@ -5,6 +5,7 @@
#include <mango/types.h>
extern kern_status_t task_exit(int status);
extern kern_status_t task_self(kern_handle_t *out);
extern kern_status_t task_create(
kern_handle_t parent,
@@ -19,6 +20,9 @@ extern kern_status_t task_create_thread(
uintptr_t *args,
size_t nr_args,
kern_handle_t *out_thread);
extern kern_status_t task_get_address_space(
kern_handle_t task,
kern_handle_t *out);
extern kern_status_t thread_start(kern_handle_t thread);

View File

@@ -39,6 +39,7 @@ extern kern_status_t vm_region_create(
vm_prot_t prot,
kern_handle_t *out,
virt_addr_t *out_base_address);
extern kern_status_t vm_region_kill(kern_handle_t region);
extern kern_status_t vm_region_read(
kern_handle_t region,
void *dst,

View File

@@ -2,14 +2,17 @@
#define MANGO_SYSCALL_H_
#define SYS_TASK_EXIT 1
#define SYS_TASK_SELF 31
#define SYS_TASK_CREATE 2
#define SYS_TASK_CREATE_THREAD 3
#define SYS_TASK_GET_ADDRESS_SPACE 33
#define SYS_THREAD_START 30
#define SYS_VM_OBJECT_CREATE 4
#define SYS_VM_OBJECT_READ 5
#define SYS_VM_OBJECT_WRITE 6
#define SYS_VM_OBJECT_COPY 29
#define SYS_VM_REGION_CREATE 7
#define SYS_VM_REGION_KILL 34
#define SYS_VM_REGION_READ 8
#define SYS_VM_REGION_WRITE 9
#define SYS_VM_REGION_MAP_ABSOLUTE 10