#define _vm_map_user_
#define _mach_vm_user_
#include <mach/mach.h>
#include <mach/mach_traps.h>
#undef _vm_map_user_
#include <mach/vm_map_internal.h>
#undef _mach_vm_user_
#include <mach/mach_vm_internal.h>
kern_return_t
mach_vm_allocate(
mach_port_name_t target,
mach_vm_address_t *address,
mach_vm_size_t size,
int flags)
{
kern_return_t rv;
rv = _kernelrpc_mach_vm_allocate_trap(target, address, size, flags);
if (rv == MACH_SEND_INVALID_DEST)
rv = _kernelrpc_mach_vm_allocate(target, address, size, flags);
return (rv);
}
kern_return_t
mach_vm_deallocate(
mach_port_name_t target,
mach_vm_address_t address,
mach_vm_size_t size)
{
kern_return_t rv;
rv = _kernelrpc_mach_vm_deallocate_trap(target, address, size);
if (rv == MACH_SEND_INVALID_DEST)
rv = _kernelrpc_mach_vm_deallocate(target, address, size);
return (rv);
}
kern_return_t
mach_vm_protect(
mach_port_name_t task,
mach_vm_address_t address,
mach_vm_size_t size,
boolean_t set_maximum,
vm_prot_t new_protection)
{
kern_return_t rv;
rv = _kernelrpc_mach_vm_protect_trap(task, address, size, set_maximum,
new_protection);
if (rv == MACH_SEND_INVALID_DEST)
rv = _kernelrpc_mach_vm_protect(task, address, size,
set_maximum, new_protection);
return (rv);
}
kern_return_t
vm_allocate(
mach_port_name_t task,
vm_address_t *address,
vm_size_t size,
int flags)
{
kern_return_t rv;
mach_vm_address_t mach_addr;
mach_addr = (mach_vm_address_t)*address;
rv = mach_vm_allocate(task, &mach_addr, size, flags);
#if defined(__LP64__)
*address = mach_addr;
#else
*address = (vm_address_t)(mach_addr & ((vm_address_t)-1));
#endif
return (rv);
}
kern_return_t
vm_deallocate(
mach_port_name_t task,
vm_address_t address,
vm_size_t size)
{
kern_return_t rv;
rv = mach_vm_deallocate(task, address, size);
return (rv);
}
kern_return_t
vm_protect(
mach_port_name_t task,
vm_address_t address,
vm_size_t size,
boolean_t set_maximum,
vm_prot_t new_protection)
{
kern_return_t rv;
rv = mach_vm_protect(task, address, size, set_maximum, new_protection);
return (rv);
}