kern_return_t :: s32; natural_t :: u32; boolean_t :: s32; vm_prot_t :: s32; vm_map_t :: mach_port_t; mach_port_t :: natural_t; mach_vm_address_t :: u64; mach_vm_size_t :: u64; host_t :: *void; VM_FLAGS_FIXED :: 0x0000; VM_FLAGS_ANYWHERE :: 0x0001; VM_FLAGS_PURGABLE :: 0x0002; VM_FLAGS_4GB_CHUNK :: 0x0004; VM_FLAGS_RANDOM_ADDR :: 0x0008; VM_FLAGS_NO_CACHE :: 0x0010; VM_FLAGS_RESILIENT_CODESIGN :: 0x0020; VM_FLAGS_RESILIENT_MEDIA :: 0x0040; VM_FLAGS_OVERWRITE :: 0x4000; VM_PROT_READ :: 0x1; VM_PROT_WRITE :: 0x2; VM_PROT_EXECUTE :: 0x4; host_self :: () -> host_t #foreign Kernel; host_page_size :: (host: host_t, page_size: *mach_vm_size_t) -> kern_return_t #foreign Kernel; mach_task_self :: () -> mach_port_t #foreign Kernel; mach_vm_allocate :: (target: vm_map_t, address: *mach_vm_address_t, size:mach_vm_size_t , flags: s32) -> kern_return_t #foreign Kernel; mach_vm_deallocate :: (target: vm_map_t, address: mach_vm_address_t, size:mach_vm_size_t) -> kern_return_t #foreign Kernel; mach_vm_protect :: (target_task: vm_map_t, address: mach_vm_address_t, size: mach_vm_size_t, set_maximum: boolean_t, new_protection: vm_prot_t) -> kern_return_t #foreign Kernel; #scope_module Kernel :: #library,system "libc";