kernel: replace kern_handle_duplicate with the more powerful kern_handle_transfer

this syscall can move and copy handles within the current task, or from/to
other tasks
This commit is contained in:
2026-03-29 11:48:59 +01:00
parent 9001f8e064
commit 62770f4ab2
6 changed files with 128 additions and 20 deletions
+1 -1
View File
@@ -83,7 +83,7 @@ SYSCALL_GATE address_space_release SYS_ADDRESS_SPACE_RELEASE 3
SYSCALL_GATE kern_log SYS_KERN_LOG 1
SYSCALL_GATE kern_handle_close SYS_KERN_HANDLE_CLOSE 1
SYSCALL_GATE kern_handle_duplicate SYS_KERN_HANDLE_DUPLICATE 2
SYSCALL_GATE kern_handle_transfer SYS_KERN_HANDLE_TRANSFER 6
SYSCALL_GATE kern_config_get SYS_KERN_CONFIG_GET 3
SYSCALL_GATE kern_config_set SYS_KERN_CONFIG_SET 3
+7 -3
View File
@@ -5,8 +5,12 @@
#include <mango/types.h>
extern kern_status_t kern_handle_close(kern_handle_t handle);
extern kern_status_t kern_handle_duplicate(
kern_handle_t handle,
kern_handle_t *out);
extern kern_status_t kern_handle_transfer(
kern_handle_t src_task,
kern_handle_t src_handle,
kern_handle_t dest_task,
kern_handle_t dest_handle,
unsigned int mode,
kern_handle_t *out_handle);
#endif
+1 -1
View File
@@ -3,7 +3,7 @@
#define SYS_KERN_LOG 1
#define SYS_KERN_HANDLE_CLOSE 2
#define SYS_KERN_HANDLE_DUPLICATE 3
#define SYS_KERN_HANDLE_TRANSFER 3
#define SYS_KERN_CONFIG_GET 4
#define SYS_KERN_CONFIG_SET 5
#define SYS_KERN_OBJECT_WAIT 6