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:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user