From 304ba8b254c668a13ae0f4efd5f984b5effc70a6 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Wed, 1 Apr 2026 18:39:38 +0100 Subject: [PATCH] libmango: add task_duplicate syscall --- libmango/arch/x86_64/syscall.S | 1 + libmango/include-user/mango/task.h | 3 +++ libmango/include/mango/syscall.h | 1 + 3 files changed, 5 insertions(+) diff --git a/libmango/arch/x86_64/syscall.S b/libmango/arch/x86_64/syscall.S index c47d0c9..97f553f 100644 --- a/libmango/arch/x86_64/syscall.S +++ b/libmango/arch/x86_64/syscall.S @@ -58,6 +58,7 @@ SYSCALL_GATE task_exit SYS_TASK_EXIT 1 SYSCALL_GATE task_self SYS_TASK_SELF 1 SYSCALL_GATE task_create SYS_TASK_CREATE 5 +SYSCALL_GATE task_duplicate SYS_TASK_DUPLICATE 2 SYSCALL_GATE task_create_thread SYS_TASK_CREATE_THREAD 6 SYSCALL_GATE task_get_address_space SYS_TASK_GET_ADDRESS_SPACE 1 SYSCALL_GATE task_config_get SYS_TASK_CONFIG_GET 4 diff --git a/libmango/include-user/mango/task.h b/libmango/include-user/mango/task.h index b2136bc..c163fbe 100644 --- a/libmango/include-user/mango/task.h +++ b/libmango/include-user/mango/task.h @@ -33,6 +33,9 @@ extern kern_status_t task_config_set( kern_config_key_t key, const void *ptr, size_t len); +extern kern_status_t task_duplicate( + kern_handle_t *out_task, + kern_handle_t *out_address_space); extern kern_status_t thread_self(kern_handle_t *out); extern kern_status_t thread_start(kern_handle_t thread); diff --git a/libmango/include/mango/syscall.h b/libmango/include/mango/syscall.h index 394e2dd..f20a8cf 100644 --- a/libmango/include/mango/syscall.h +++ b/libmango/include/mango/syscall.h @@ -50,5 +50,6 @@ #define SYS_FUTEX_WAIT 47 #define SYS_FUTEX_WAKE 48 #define SYS_KERN_OBJECT_QUERY 49 +#define SYS_TASK_DUPLICATE 50 #endif