aboutsummaryrefslogtreecommitdiff
path: root/core/sys
diff options
context:
space:
mode:
authorBeau McCartney <mccartney.beausl@gmail.com>2024-10-05 11:20:25 -0600
committerBeau McCartney <mccartney.beausl@gmail.com>2024-10-06 22:08:23 -0600
commit80c390e851e9925384cc77f11c57c3eae02b3dfd (patch)
tree8418a33d6c259fd2277a49b6652059854fc9b4b5 /core/sys
parenta205bcd0da0ad8efe12f26cac15945a576c154e7 (diff)
add mach procedures and vm_page_size
- vm_allocate() - vm_deallocate() - vm_map() - mach_make_memory_entry()
Diffstat (limited to 'core/sys')
-rw-r--r--core/sys/darwin/mach_darwin.odin38
1 files changed, 38 insertions, 0 deletions
diff --git a/core/sys/darwin/mach_darwin.odin b/core/sys/darwin/mach_darwin.odin
index 902ac8b24..c91c85153 100644
--- a/core/sys/darwin/mach_darwin.odin
+++ b/core/sys/darwin/mach_darwin.odin
@@ -26,6 +26,44 @@ foreign mach {
semaphore_signal_thread :: proc(semaphore: semaphore_t, thread: thread_act_t) -> kern_return_t ---
semaphore_wait :: proc(semaphore: semaphore_t) -> kern_return_t ---
+
+ vm_allocate :: proc (
+ target_task : vm_map_t,
+ address : ^vm_address_t,
+ size : vm_size_t,
+ flags : vm_flags_t,
+ ) -> kern_return_t ---
+
+ vm_deallocate :: proc(
+ target_task: vm_map_t,
+ address : vm_address_t,
+ size : vm_size_t
+ ) -> kern_return_t---
+
+ vm_map :: proc (
+ target_task : vm_map_t,
+ address : ^vm_address_t,
+ size : vm_size_t,
+ mask : vm_address_t,
+ flags : vm_flags_t,
+ object : mem_entry_name_port_t,
+ offset : vm_offset_t,
+ copy : boolean_t,
+ cur_protection : vm_prot_t,
+ max_protection : vm_prot_t,
+ inheritance : vm_inherit_t
+ ) -> kern_return_t ---
+
+ mach_make_memory_entry :: proc (
+ target_task : vm_map_t,
+ size : ^vm_size_t,
+ offset : vm_offset_t,
+ permission : vm_prot_t,
+ object_handle : ^mem_entry_name_port_t,
+ parent_entry : mem_entry_name_port_t,
+ ) -> kern_return_t ---
+
+ vm_page_size : vm_size_t
}
// NOTE(beau): types for stuff in the mach APIS, recreated from the typedefs as