X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/39236c6e673c41db228275375ab7fdb0f837b292..d26ffc64f583ab2d29df48f13518685602bc8832:/libsyscall/mach/mach_vm.c?ds=sidebyside diff --git a/libsyscall/mach/mach_vm.c b/libsyscall/mach/mach_vm.c index 1b6d7f98e..00bf511a2 100644 --- a/libsyscall/mach/mach_vm.c +++ b/libsyscall/mach/mach_vm.c @@ -73,15 +73,15 @@ mach_vm_deallocate( { kern_return_t rv; + if (__syscall_logger) { + __syscall_logger(stack_logging_type_vm_deallocate, (uintptr_t)target, (uintptr_t)address, (uintptr_t)size, 0, 0); + } + rv = _kernelrpc_mach_vm_deallocate_trap(target, address, size); if (rv == MACH_SEND_INVALID_DEST) rv = _kernelrpc_mach_vm_deallocate(target, address, size); - if (__syscall_logger) { - __syscall_logger(stack_logging_type_vm_deallocate, (uintptr_t)target, (uintptr_t)address, size, 0, 0); - } - return (rv); } @@ -317,3 +317,33 @@ vm_read( return (rv); } + +kern_return_t +mach_vm_purgable_control( + mach_port_name_t target, + mach_vm_offset_t address, + vm_purgable_t control, + int *state) +{ + kern_return_t rv; + + rv = _kernelrpc_mach_vm_purgable_control_trap(target, address, control, state); + + if (rv == MACH_SEND_INVALID_DEST) + rv = _kernelrpc_mach_vm_purgable_control(target, address, control, state); + + return (rv); +} + +kern_return_t +vm_purgable_control( + mach_port_name_t task, + vm_offset_t address, + vm_purgable_t control, + int *state) +{ + return mach_vm_purgable_control(task, + (mach_vm_offset_t) address, + control, + state); +}