Browse Source

add mach procedures and vm_page_size

- vm_allocate()
- vm_deallocate()
- vm_map()
- mach_make_memory_entry()
Beau McCartney 11 months ago
parent
commit
80c390e851
1 changed files with 38 additions and 0 deletions
  1. 38 0
      core/sys/darwin/mach_darwin.odin

+ 38 - 0
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