#include <mach/arm/vm_types.h> also included by
<mach/mach.h>mach/arm/vm_types.h
typedefnatural_t
natural_t and integer_t are Mach's legacy types for machine-
independent integer types (unsigned, and signed, respectively).
Their original purpose was to define other types in a machine/
compiler independent way.
They also had an implicit "same size as pointer" characteristic
to them (i.e. Mach's traditional types are very ILP32 or ILP64
centric). We will likely support x86 ABIs that do not follow
either ofthese models (specifically LP64). Therefore, we had to
make a choice between making these types scale with pointers or stay
tied to integers. Because their use is predominantly tied to
to the size of an integer, we are keeping that association and
breaking free from pointer size guarantees.
New use of these types is discouraged.
typedef __darwin_natural_t natural_t
typedefinteger_t
typedef int integer_t
typedefvm_offset_t
A vm_offset_t is a type-neutral pointer,
e.g. an offset into a virtual memory space.
typedef uintptr_t vm_offset_t
typedefmach_vm_address_t
typedef uint64_t mach_vm_address_t
typedefmach_vm_offset_t
typedef uint64_t mach_vm_offset_t
typedefmach_vm_size_t
typedef uint64_t mach_vm_size_t
typedefvm_map_offset_t
typedef uint64_t vm_map_offset_t
typedefvm_map_address_t
typedef uint64_t vm_map_address_t
typedefvm_map_size_t
typedef uint64_t vm_map_size_t
typedefvm32_offset_t
typedef uint32_t vm32_offset_t
typedefvm32_address_t
typedef uint32_t vm32_address_t
typedefvm32_size_t
typedef uint32_t vm32_size_t
typedefmach_port_context_t
typedef vm_offset_t mach_port_context_t
macroMACH_MSG_TYPE_INTEGER_T
If composing messages by hand (please do not)
#define MACH_MSG_TYPE_INTEGER_T MACH_MSG_TYPE_INTEGER_32