libmango: add syscalls to handle cow-attached vm-objects
This commit is contained in:
@@ -102,6 +102,8 @@ SYSCALL_GATE vm_controller_create SYS_VM_CONTROLLER_CREATE 1
|
||||
SYSCALL_GATE vm_controller_recv SYS_VM_CONTROLLER_RECV 2
|
||||
SYSCALL_GATE vm_controller_recv_async SYS_VM_CONTROLLER_RECV_ASYNC 3
|
||||
SYSCALL_GATE vm_controller_create_object SYS_VM_CONTROLLER_CREATE_OBJECT 7
|
||||
SYSCALL_GATE vm_controller_prepare_attach SYS_VM_CONTROLLER_PREPARE_ATTACH 3
|
||||
SYSCALL_GATE vm_controller_finish_attach SYS_VM_CONTROLLER_FINISH_ATTACH 3
|
||||
SYSCALL_GATE vm_controller_detach_object SYS_VM_CONTROLLER_DETACH_OBJECT 2
|
||||
SYSCALL_GATE vm_controller_supply_pages SYS_VM_CONTROLLER_SUPPLY_PAGES 6
|
||||
|
||||
|
||||
@@ -80,6 +80,14 @@ extern kern_status_t vm_controller_create_object(
|
||||
size_t data_len,
|
||||
vm_prot_t prot,
|
||||
kern_handle_t *out);
|
||||
extern kern_status_t vm_controller_prepare_attach(
|
||||
kern_handle_t ctrl,
|
||||
uint64_t req_id,
|
||||
kern_handle_t *out_vmo);
|
||||
extern kern_status_t vm_controller_finish_attach(
|
||||
kern_handle_t ctrl,
|
||||
uint64_t req_id,
|
||||
equeue_key_t new_key);
|
||||
extern kern_status_t vm_controller_detach_object(
|
||||
kern_handle_t ctrl,
|
||||
kern_handle_t vmo);
|
||||
|
||||
@@ -1,56 +1,58 @@
|
||||
#ifndef MANGO_SYSCALL_H_
|
||||
#define MANGO_SYSCALL_H_
|
||||
|
||||
#define SYS_KERN_LOG 1
|
||||
#define SYS_KERN_HANDLE_CLOSE 2
|
||||
#define SYS_KERN_HANDLE_TRANSFER 3
|
||||
#define SYS_KERN_CONFIG_GET 4
|
||||
#define SYS_KERN_CONFIG_SET 5
|
||||
#define SYS_KERN_OBJECT_WAIT 6
|
||||
#define SYS_KERN_OBJECT_WAIT_ASYNC 7
|
||||
#define SYS_TASK_EXIT 8
|
||||
#define SYS_TASK_SELF 9
|
||||
#define SYS_TASK_CREATE 10
|
||||
#define SYS_TASK_CREATE_THREAD 11
|
||||
#define SYS_TASK_GET_ADDRESS_SPACE 12
|
||||
#define SYS_TASK_CONFIG_GET 13
|
||||
#define SYS_TASK_CONFIG_SET 14
|
||||
#define SYS_THREAD_SELF 15
|
||||
#define SYS_THREAD_START 16
|
||||
#define SYS_THREAD_EXIT 17
|
||||
#define SYS_THREAD_CONFIG_GET 18
|
||||
#define SYS_THREAD_CONFIG_SET 19
|
||||
#define SYS_VM_OBJECT_CREATE 20
|
||||
#define SYS_VM_OBJECT_READ 21
|
||||
#define SYS_VM_OBJECT_WRITE 22
|
||||
#define SYS_VM_OBJECT_COPY 23
|
||||
#define SYS_ADDRESS_SPACE_READ 24
|
||||
#define SYS_ADDRESS_SPACE_WRITE 25
|
||||
#define SYS_ADDRESS_SPACE_MAP 26
|
||||
#define SYS_ADDRESS_SPACE_UNMAP 27
|
||||
#define SYS_ADDRESS_SPACE_RESERVE 28
|
||||
#define SYS_ADDRESS_SPACE_RELEASE 29
|
||||
#define SYS_MSG_SEND 30
|
||||
#define SYS_MSG_RECV 31
|
||||
#define SYS_MSG_REPLY 32
|
||||
#define SYS_MSG_READ 33
|
||||
#define SYS_MSG_WRITE 34
|
||||
#define SYS_CHANNEL_CREATE 35
|
||||
#define SYS_PORT_CREATE 36
|
||||
#define SYS_PORT_CONNECT 37
|
||||
#define SYS_PORT_DISCONNECT 38
|
||||
#define SYS_EQUEUE_CREATE 39
|
||||
#define SYS_EQUEUE_DEQUEUE 40
|
||||
#define SYS_VM_CONTROLLER_CREATE 41
|
||||
#define SYS_VM_CONTROLLER_RECV 42
|
||||
#define SYS_VM_CONTROLLER_RECV_ASYNC 43
|
||||
#define SYS_VM_CONTROLLER_CREATE_OBJECT 44
|
||||
#define SYS_VM_CONTROLLER_DETACH_OBJECT 45
|
||||
#define SYS_VM_CONTROLLER_SUPPLY_PAGES 46
|
||||
#define SYS_FUTEX_WAIT 47
|
||||
#define SYS_FUTEX_WAKE 48
|
||||
#define SYS_KERN_OBJECT_QUERY 49
|
||||
#define SYS_TASK_DUPLICATE 50
|
||||
#define SYS_KERN_HANDLE_CONTROL 51
|
||||
#define SYS_KERN_LOG 1
|
||||
#define SYS_KERN_HANDLE_CLOSE 2
|
||||
#define SYS_KERN_HANDLE_TRANSFER 3
|
||||
#define SYS_KERN_HANDLE_CONTROL 4
|
||||
#define SYS_KERN_CONFIG_GET 5
|
||||
#define SYS_KERN_CONFIG_SET 6
|
||||
#define SYS_KERN_OBJECT_WAIT 7
|
||||
#define SYS_KERN_OBJECT_WAIT_ASYNC 8
|
||||
#define SYS_TASK_EXIT 9
|
||||
#define SYS_TASK_SELF 10
|
||||
#define SYS_TASK_CREATE 11
|
||||
#define SYS_TASK_CREATE_THREAD 12
|
||||
#define SYS_TASK_GET_ADDRESS_SPACE 13
|
||||
#define SYS_TASK_CONFIG_GET 14
|
||||
#define SYS_TASK_CONFIG_SET 15
|
||||
#define SYS_TASK_DUPLICATE 16
|
||||
#define SYS_THREAD_SELF 17
|
||||
#define SYS_THREAD_START 18
|
||||
#define SYS_THREAD_EXIT 19
|
||||
#define SYS_THREAD_CONFIG_GET 20
|
||||
#define SYS_THREAD_CONFIG_SET 21
|
||||
#define SYS_VM_OBJECT_CREATE 22
|
||||
#define SYS_VM_OBJECT_READ 23
|
||||
#define SYS_VM_OBJECT_WRITE 24
|
||||
#define SYS_VM_OBJECT_COPY 25
|
||||
#define SYS_ADDRESS_SPACE_READ 26
|
||||
#define SYS_ADDRESS_SPACE_WRITE 27
|
||||
#define SYS_ADDRESS_SPACE_MAP 28
|
||||
#define SYS_ADDRESS_SPACE_UNMAP 29
|
||||
#define SYS_ADDRESS_SPACE_RESERVE 30
|
||||
#define SYS_ADDRESS_SPACE_RELEASE 31
|
||||
#define SYS_MSG_SEND 32
|
||||
#define SYS_MSG_RECV 33
|
||||
#define SYS_MSG_REPLY 34
|
||||
#define SYS_MSG_READ 35
|
||||
#define SYS_MSG_WRITE 36
|
||||
#define SYS_CHANNEL_CREATE 37
|
||||
#define SYS_PORT_CREATE 38
|
||||
#define SYS_PORT_CONNECT 39
|
||||
#define SYS_PORT_DISCONNECT 40
|
||||
#define SYS_EQUEUE_CREATE 41
|
||||
#define SYS_EQUEUE_DEQUEUE 42
|
||||
#define SYS_VM_CONTROLLER_CREATE 43
|
||||
#define SYS_VM_CONTROLLER_RECV 44
|
||||
#define SYS_VM_CONTROLLER_RECV_ASYNC 45
|
||||
#define SYS_VM_CONTROLLER_CREATE_OBJECT 46
|
||||
#define SYS_VM_CONTROLLER_PREPARE_ATTACH 47
|
||||
#define SYS_VM_CONTROLLER_FINISH_ATTACH 48
|
||||
#define SYS_VM_CONTROLLER_DETACH_OBJECT 49
|
||||
#define SYS_VM_CONTROLLER_SUPPLY_PAGES 50
|
||||
#define SYS_FUTEX_WAIT 51
|
||||
#define SYS_FUTEX_WAKE 52
|
||||
#define SYS_KERN_OBJECT_QUERY 53
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user