#include <mach/vm_statistics.h> also included by
<mach/mach.h>mach/vm_statistics.h
structvm_statistics
| natural_t | free_count | # of pages free |
| natural_t | active_count | # of pages active |
| natural_t | inactive_count | # of pages inactive |
| natural_t | wire_count | # of pages wired down |
| natural_t | zero_fill_count | # of zero fill pages |
| natural_t | reactivations | # of pages reactivated |
| natural_t | pageins | # of pageins |
| natural_t | pageouts | # of pageouts |
| natural_t | faults | # of faults |
| natural_t | cow_faults | # of copy-on-writes |
| natural_t | lookups | object cache lookups |
| natural_t | hits | object cache hits |
| natural_t | purgeable_count | added for rev1 # of pages purgeable |
| natural_t | purges | # of pages purged |
| natural_t | speculative_count | added for rev2 NB: speculative pages are already accounted for in "free_count", so "speculative_count" is the number of "free" pages that are used to hold data that was read speculatively from disk but haven't actually been used by anyone so far. # of pages speculative |
CMU/MIT Mach reference · manual page · © Carnegie Mellon
Defines statistics for the kernel's use of virtual memory.
The vm_statistics structure defines the statistics available on the kernel's use of virtual memory. The statistics record virtual memory usage since the kernel was booted.
For related information for a specific task, see the task_basic_info structure.
Notes. This structure is machine word length specific because of the memory sizes returned.
typedefvm_statistics_data_t
typedef struct vm_statistics vm_statistics_data_t
structvm_statistics64
| natural_t | free_count | # of pages free |
| natural_t | active_count | # of pages active |
| natural_t | inactive_count | # of pages inactive |
| natural_t | wire_count | # of pages wired down |
| uint64_t | zero_fill_count | # of zero fill pages |
| uint64_t | reactivations | # of pages reactivated |
| uint64_t | pageins | # of pageins (lifetime) |
| uint64_t | pageouts | # of pageouts |
| uint64_t | faults | # of faults |
| uint64_t | cow_faults | # of copy-on-writes |
| uint64_t | lookups | object cache lookups |
| uint64_t | hits | object cache hits |
| uint64_t | purges | # of pages purged |
| natural_t | purgeable_count | # of pages purgeable |
| natural_t | speculative_count | NB: speculative pages are already accounted for in "free_count", so "speculative_count" is the number of "free" pages that are used to hold data that was read speculatively from disk but haven't actually been used by anyone so far. # of pages speculative |
| uint64_t | decompressions | added for rev1 # of pages decompressed (lifetime) |
| uint64_t | compressions | # of pages compressed (lifetime) |
| uint64_t | swapins | # of pages swapped in via compressor segments (lifetime) |
| uint64_t | swapouts | # of pages swapped out via compressor segments (lifetime) |
| natural_t | compressor_page_count | # of pages used by the compressed pager to hold all the compressed data |
| natural_t | throttled_count | # of pages throttled |
| natural_t | external_page_count | # of pages that are file-backed (non-swap) |
| natural_t | internal_page_count | # of pages that are anonymous |
| uint64_t | total_uncompressed_pages_in_compressor | # of pages (uncompressed) held within the compressor. |
| uint64_t | swapped_count | added for rev2 # of compressor-stored pages currently stored in swap |
typedefvm_statistics64_t
typedef struct vm_statistics64 *vm_statistics64_t
typedefvm_statistics64_data_t
typedef struct vm_statistics64 vm_statistics64_data_t
functionvm_stats
kern_return_t vm_stats(void *info, unsigned int *count)
▾
claude-fable-5, 2026-08-24 · not from Apple sources · verified against xnu osfmk/kern/host.c, osfmk/mach/vm_statistics.h
Kernel-internal routine backing the HOST_VM_INFO64 flavor of host_statistics64; declared in vm_statistics.h but not exported to user programs by libsyscall. Fills the vm_statistics64 structure at info with host-wide VM statistics (free, active, inactive, wired, speculative and purgeable page counts, fault, pagein/pageout, and compressor counters). On entry *count gives the caller's capacity in natural_t units; KERN_FAILURE is returned if it is less than HOST_VM_INFO64_REV0_COUNT. Later-revision fields (throttled_count and compressor data at REV1, swapped_count at REV2) are filled only if they fit, and *count is set to the revision count actually produced.
macroVM_STATISTICS_TRUNCATE_TO_32_BIT
VM_STATISTICS_TRUNCATE_TO_32_BIT
This is used by host_statistics() to truncate and peg the 64-bit in-kernel values from
vm_statistics64 to the 32-bit values of the older structure above (vm_statistics).
#define VM_STATISTICS_TRUNCATE_TO_32_BIT(value) ((uint32_t)(((value) > UINT32_MAX ) ? UINT32_MAX : (value)))
structvm_extmod_statistics
| int64_t | task_for_pid_count | # of times task port was looked up |
| int64_t | task_for_pid_caller_count | # of times this task called task_for_pid |
| int64_t | thread_creation_count | # of threads created in task |
| int64_t | thread_creation_caller_count | # of threads created by task |
| int64_t | thread_set_state_count | # of register state sets in task |
| int64_t | thread_set_state_caller_count | # of register state sets by task |
typedefvm_extmod_statistics_t
typedef struct vm_extmod_statistics *vm_extmod_statistics_t
typedefvm_extmod_statistics_data_t
typedef struct vm_extmod_statistics vm_extmod_statistics_data_t
structvm_purgeable_stat
| uint64_t | count | |
| uint64_t | size |
typedefvm_purgeable_stat_t
typedef struct vm_purgeable_stat vm_purgeable_stat_t;
structvm_purgeable_info
| vm_purgeable_stat_t[8] | fifo_data | |
| vm_purgeable_stat_t | obsolete_data | |
| vm_purgeable_stat_t[8] | lifo_data |
typedefvm_purgeable_info_t
typedef struct vm_purgeable_info *vm_purgeable_info_t
typedefvm_page_disposition_t
typedef int32_t vm_page_disposition_t
macroVM_PAGE_QUERY_PAGE_PRESENT
#define VM_PAGE_QUERY_PAGE_PRESENT 0x001
macroVM_PAGE_QUERY_PAGE_FICTITIOUS
#define VM_PAGE_QUERY_PAGE_FICTITIOUS 0x002
macroVM_PAGE_QUERY_PAGE_REF
#define VM_PAGE_QUERY_PAGE_REF 0x004
macroVM_PAGE_QUERY_PAGE_DIRTY
#define VM_PAGE_QUERY_PAGE_DIRTY 0x008
macroVM_PAGE_QUERY_PAGE_PAGED_OUT
#define VM_PAGE_QUERY_PAGE_PAGED_OUT 0x010
macroVM_PAGE_QUERY_PAGE_COPIED
#define VM_PAGE_QUERY_PAGE_COPIED 0x020
macroVM_PAGE_QUERY_PAGE_SPECULATIVE
#define VM_PAGE_QUERY_PAGE_SPECULATIVE 0x040
macroVM_PAGE_QUERY_PAGE_EXTERNAL
#define VM_PAGE_QUERY_PAGE_EXTERNAL 0x080
macroVM_PAGE_QUERY_PAGE_CS_VALIDATED
#define VM_PAGE_QUERY_PAGE_CS_VALIDATED 0x100
macroVM_PAGE_QUERY_PAGE_CS_TAINTED
#define VM_PAGE_QUERY_PAGE_CS_TAINTED 0x200
macroVM_PAGE_QUERY_PAGE_CS_NX
#define VM_PAGE_QUERY_PAGE_CS_NX 0x400
macroVM_PAGE_QUERY_PAGE_REUSABLE
#define VM_PAGE_QUERY_PAGE_REUSABLE 0x800
macroVM_REALLOCATE_DEALLOCATE_SOURCE
Options for vm_reallocate:
VM_REALLOCATE_DEALLOCATE_SOURCE
When the source is relocated, the VA it previously occupied will be unmapped.
VM_REALLOCATE_ZERO_FILL_SOURCE
When the source is relocated, the VA it previously occupied will be mapped
by new entries with equivalent protections and inheritance, equivalent to a
fresh zero-filled allocation from vm_allocate().
#define VM_REALLOCATE_DEALLOCATE_SOURCE 0x0
macroVM_REALLOCATE_ZERO_FILL_SOURCE
#define VM_REALLOCATE_ZERO_FILL_SOURCE 0x1
macroVM_FLAGS_FIXED
#define VM_FLAGS_FIXED 0x00000000
macroVM_FLAGS_ANYWHERE
#define VM_FLAGS_ANYWHERE 0x00000001
macroVM_FLAGS_PURGABLE
#define VM_FLAGS_PURGABLE 0x00000002
macroVM_FLAGS_4GB_CHUNK
#define VM_FLAGS_4GB_CHUNK 0x00000004
macroVM_FLAGS_RANDOM_ADDR
#define VM_FLAGS_RANDOM_ADDR 0x00000008
macroVM_FLAGS_NO_CACHE
#define VM_FLAGS_NO_CACHE 0x00000010
macroVM_FLAGS_RESILIENT_CODESIGN
#define VM_FLAGS_RESILIENT_CODESIGN 0x00000020
macroVM_FLAGS_RESILIENT_MEDIA
#define VM_FLAGS_RESILIENT_MEDIA 0x00000040
macroVM_FLAGS_PERMANENT
#define VM_FLAGS_PERMANENT 0x00000080
macroVM_FLAGS_TPRO
#define VM_FLAGS_TPRO 0x00001000
macroVM_FLAGS_MTE
#define VM_FLAGS_MTE 0x00002000
macroVM_FLAGS_SUPERPAGE_MASK
VM_FLAGS_SUPERPAGE_MASK
3 bits that specify whether large pages should be used instead of
base pages (!=0), as well as the requested page size.
#define VM_FLAGS_SUPERPAGE_MASK 0x00070000
bits 0x10000, 0x20000, 0x40000
macroVM_FLAGS_RETURN_DATA_ADDR
#define VM_FLAGS_RETURN_DATA_ADDR 0x00100000
Return address of target data, rather than base of page
macroVM_FLAGS_GUARD_OBJECT_OPTOUT
#define VM_FLAGS_GUARD_OBJECT_OPTOUT 0x00400000
macroVM_FLAGS_RETURN_4K_DATA_ADDR
#define VM_FLAGS_RETURN_4K_DATA_ADDR 0x00800000
Return 4K aligned address of target data
macroVM_FLAGS_ALIAS_MASK
#define VM_FLAGS_ALIAS_MASK 0xFF000000
macroVM_GET_FLAGS_ALIAS
#define VM_GET_FLAGS_ALIAS(flags, alias) (alias) = (((flags) >> 24) & 0xff)
macroVM_SET_FLAGS_ALIAS
#define VM_SET_FLAGS_ALIAS(flags, alias) (flags) = (((flags) & ~VM_FLAGS_ALIAS_MASK) | (((alias) & ~VM_FLAGS_ALIAS_MASK) << 24))
macroVM_FLAGS_HW
#define VM_FLAGS_HW (VM_FLAGS_TPRO | VM_FLAGS_MTE)
macroVM_FLAGS_USER_ALLOCATE
These are the flags that we accept from user-space
#define VM_FLAGS_USER_ALLOCATE (VM_FLAGS_FIXED | VM_FLAGS_ANYWHERE | VM_FLAGS_PURGABLE | VM_FLAGS_4GB_CHUNK | VM_FLAGS_RANDOM_ADDR | VM_FLAGS_NO_CACHE | VM_FLAGS_PERMANENT | VM_FLAGS_OVERWRITE | VM_FLAGS_GUARD_OBJECT_OPTOUT | VM_FLAGS_SUPERPAGE_MASK | VM_FLAGS_HW | VM_FLAGS_ALIAS_MASK)
macroVM_FLAGS_USER_MAP
#define VM_FLAGS_USER_MAP (VM_FLAGS_USER_ALLOCATE | VM_FLAGS_RETURN_4K_DATA_ADDR | VM_FLAGS_RETURN_DATA_ADDR)
macroVM_FLAGS_USER_REMAP
#define VM_FLAGS_USER_REMAP (VM_FLAGS_FIXED | VM_FLAGS_ANYWHERE | VM_FLAGS_RANDOM_ADDR | VM_FLAGS_OVERWRITE| VM_FLAGS_RETURN_DATA_ADDR | VM_FLAGS_RESILIENT_CODESIGN | VM_FLAGS_RESILIENT_MEDIA)
macroVM_FLAGS_SUPERPAGE_SHIFT
#define VM_FLAGS_SUPERPAGE_SHIFT 16
macroSUPERPAGE_SIZE_ANY
#define SUPERPAGE_SIZE_ANY 1
macroVM_FLAGS_SUPERPAGE_NONE
#define VM_FLAGS_SUPERPAGE_NONE (SUPERPAGE_NONE << VM_FLAGS_SUPERPAGE_SHIFT)
macroVM_FLAGS_SUPERPAGE_SIZE_ANY
#define VM_FLAGS_SUPERPAGE_SIZE_ANY (SUPERPAGE_SIZE_ANY << VM_FLAGS_SUPERPAGE_SHIFT)
macroSUPERPAGE_SIZE_2MB
#define SUPERPAGE_SIZE_2MB 2
macroVM_FLAGS_SUPERPAGE_SIZE_2MB
#define VM_FLAGS_SUPERPAGE_SIZE_2MB (SUPERPAGE_SIZE_2MB<<VM_FLAGS_SUPERPAGE_SHIFT)
macroGUARD_TYPE_VIRT_MEMORY
EXC_GUARD definitions for virtual memory.
#define GUARD_TYPE_VIRT_MEMORY 0x5
enumvirtual_memory_guard_exception_code_t
Reasons for exception for virtual memory
| kGUARD_EXC_DEALLOC_GAP | 1 | |
| kGUARD_EXC_RECLAIM_COPYIO_FAILURE | 2 | |
| kGUARD_EXC_RECLAIM_INDEX_FAILURE | 4 | |
| kGUARD_EXC_RECLAIM_DEALLOCATE_FAILURE | 8 | |
| kGUARD_EXC_RECLAIM_ACCOUNTING_FAILURE | 9 | |
| kGUARD_EXC_SEC_IOPL_ON_EXEC_PAGE | 10 | |
| kGUARD_EXC_SEC_EXEC_ON_IOPL_PAGE | 11 | |
| kGUARD_EXC_SEC_UPL_WRITE_ON_EXEC_REGION | 12 | |
| kGUARD_EXC_LARGE_ALLOCATION_TELEMETRY | 13 | |
| kGUARD_EXC_SEC_ACCESS_FAULT | 98 | |
| kGUARD_EXC_SEC_ASYNC_ACCESS_FAULT | 99 | |
| kGUARD_EXC_SEC_COPY_DENIED | 100 | |
| kGUARD_EXC_SEC_SHARING_DENIED | 101 | |
| kGUARD_EXC_MTE_SYNC_FAULT | 200 | |
| kGUARD_EXC_MTE_ASYNC_USER_FAULT | 201 | |
| kGUARD_EXC_MTE_ASYNC_KERN_FAULT | 202 | |
| kGUARD_EXC_GUARD_OBJECT_ASYNC_USER_FAULT | 203 | |
| kGUARD_EXC_GUARD_OBJECT_ASYNC_KERN_FAULT | 204 |
typedefvirtual_memory_guard_exception_code_t
typedef enum virtual_memory_guard_exception_code_t virtual_memory_guard_exception_code_t;
macrokGUARD_EXC_MTE_SOFT_MODE
#define kGUARD_EXC_MTE_SOFT_MODE 0x100000
macroVM_LEDGER_TAG_NONE
When making a new VM_LEDGER_TAG_* or VM_LEDGER_FLAG_*, update tests
vm_parameter_validation_[user|kern] and their expected results; they
deliberately call VM functions with invalid ledger values and you may
be turning one of those invalid tags/flags valid.
discrete values:
#define VM_LEDGER_TAG_NONE 0x00000000
macroVM_LEDGER_TAG_DEFAULT
#define VM_LEDGER_TAG_DEFAULT 0x00000001
macroVM_LEDGER_TAG_NETWORK
#define VM_LEDGER_TAG_NETWORK 0x00000002
macroVM_LEDGER_TAG_MEDIA
#define VM_LEDGER_TAG_MEDIA 0x00000003
macroVM_LEDGER_TAG_GRAPHICS
#define VM_LEDGER_TAG_GRAPHICS 0x00000004
macroVM_LEDGER_TAG_NEURAL
#define VM_LEDGER_TAG_NEURAL 0x00000005
macroVM_LEDGER_TAG_MAX
#define VM_LEDGER_TAG_MAX 0x00000005
macroVM_LEDGER_TAG_UNCHANGED
#define VM_LEDGER_TAG_UNCHANGED ((int)-1)
macroVM_LEDGER_FLAG_NO_FOOTPRINT_FOR_DEBUG
#define VM_LEDGER_FLAG_NO_FOOTPRINT_FOR_DEBUG (1 << 1)
macroVM_LEDGER_FLAG_FROM_KERNEL
#define VM_LEDGER_FLAG_FROM_KERNEL (1 << 2)
macroVM_LEDGER_FLAGS_USER
#define VM_LEDGER_FLAGS_USER (VM_LEDGER_FLAG_NO_FOOTPRINT | VM_LEDGER_FLAG_NO_FOOTPRINT_FOR_DEBUG)
macroVM_LEDGER_FLAGS_ALL
#define VM_LEDGER_FLAGS_ALL (VM_LEDGER_FLAGS_USER | VM_LEDGER_FLAG_FROM_KERNEL)
macroVM_MEMORY_MALLOC
These tags may be used to identify memory regions created with
`mach_vm_map()` or `mach_vm_allocate()` via the top 8 bits of the `flags`
parameter. Users should pass `VM_MAKE_TAG(tag) | flags` (see section
"User Flags").
#define VM_MEMORY_MALLOC 1
macroVM_MEMORY_MALLOC_SMALL
#define VM_MEMORY_MALLOC_SMALL 2
macroVM_MEMORY_MALLOC_LARGE
#define VM_MEMORY_MALLOC_LARGE 3
macroVM_MEMORY_MALLOC_HUGE
#define VM_MEMORY_MALLOC_HUGE 4
macroVM_MEMORY_REALLOC
#define VM_MEMORY_REALLOC 6
macroVM_MEMORY_MALLOC_TINY
#define VM_MEMORY_MALLOC_TINY 7
macroVM_MEMORY_MALLOC_LARGE_REUSABLE
#define VM_MEMORY_MALLOC_LARGE_REUSABLE 8
macroVM_MEMORY_MALLOC_LARGE_REUSED
#define VM_MEMORY_MALLOC_LARGE_REUSED 9
macroVM_MEMORY_ANALYSIS_TOOL
#define VM_MEMORY_ANALYSIS_TOOL 10
macroVM_MEMORY_MALLOC_NANO
#define VM_MEMORY_MALLOC_NANO 11
macroVM_MEMORY_MALLOC_MEDIUM
#define VM_MEMORY_MALLOC_MEDIUM 12
macroVM_MEMORY_MALLOC_PROB_GUARD
#define VM_MEMORY_MALLOC_PROB_GUARD 13
macroVM_MEMORY_MACH_MSG
#define VM_MEMORY_MACH_MSG 20
macroVM_MEMORY_IOKIT
#define VM_MEMORY_IOKIT 21
macroVM_MEMORY_VM_RECLAIM
#define VM_MEMORY_VM_RECLAIM 22
macroVM_MEMORY_STACK
#define VM_MEMORY_STACK 30
macroVM_MEMORY_GUARD
#define VM_MEMORY_GUARD 31
macroVM_MEMORY_SHARED_PMAP
#define VM_MEMORY_SHARED_PMAP 32
macroVM_MEMORY_OBJC_DISPATCHERS
#define VM_MEMORY_OBJC_DISPATCHERS 34
macroVM_MEMORY_UNSHARED_PMAP
Was a nested pmap (VM_MEMORY_SHARED_PMAP) which has now been unnested
#define VM_MEMORY_UNSHARED_PMAP 35
macroVM_MEMORY_LIBCHANNEL
for libchannel memory, mostly used on visionOS for communication with realtime threads
#define VM_MEMORY_LIBCHANNEL 36
macroVM_MEMORY_APPKIT
Placeholders for now -- as we analyze the libraries and find how they
use memory, we can make these labels more specific.
#define VM_MEMORY_APPKIT 40
macroVM_MEMORY_FOUNDATION
#define VM_MEMORY_FOUNDATION 41
macroVM_MEMORY_COREGRAPHICS
#define VM_MEMORY_COREGRAPHICS 42
macroVM_MEMORY_CORESERVICES
#define VM_MEMORY_CORESERVICES 43
macroVM_MEMORY_CARBON
#define VM_MEMORY_CARBON VM_MEMORY_CORESERVICES
macroVM_MEMORY_JAVA
#define VM_MEMORY_JAVA 44
macroVM_MEMORY_COREDATA
#define VM_MEMORY_COREDATA 45
macroVM_MEMORY_COREDATA_OBJECTIDS
#define VM_MEMORY_COREDATA_OBJECTIDS 46
macroVM_MEMORY_ATS
#define VM_MEMORY_ATS 50
macroVM_MEMORY_LAYERKIT
#define VM_MEMORY_LAYERKIT 51
macroVM_MEMORY_CGIMAGE
#define VM_MEMORY_CGIMAGE 52
macroVM_MEMORY_TCMALLOC
#define VM_MEMORY_TCMALLOC 53
macroVM_MEMORY_COREGRAPHICS_DATA
private raster data (i.e. layers, some images, QGL allocator)
#define VM_MEMORY_COREGRAPHICS_DATA 54
macroVM_MEMORY_COREGRAPHICS_SHARED
shared image and font caches
#define VM_MEMORY_COREGRAPHICS_SHARED 55
macroVM_MEMORY_COREGRAPHICS_FRAMEBUFFERS
Memory used for virtual framebuffers, shadowing buffers, etc...
#define VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS 56
macroVM_MEMORY_COREGRAPHICS_BACKINGSTORES
Window backing stores, custom shadow data, and compressed backing stores
#define VM_MEMORY_COREGRAPHICS_BACKINGSTORES 57
macroVM_MEMORY_COREGRAPHICS_MISC
catch-all for other uses, such as the read-only shared data page
#define VM_MEMORY_COREGRAPHICS_MISC VM_MEMORY_COREGRAPHICS
macroVM_MEMORY_WEBASSEMBLY
#define VM_MEMORY_WEBASSEMBLY VM_MEMORY_JAVASCRIPT_CORE
macroVM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR
memory allocated for the JIT
#define VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR 64
macroVM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE
#define VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE 65
macroVM_MEMORY_WEBCORE_PURGEABLE_BUFFERS
memory allocated for WebCore Purgeable Buffers
#define VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS 69
macroVM_MEMORY_IOSURFACE
#define VM_MEMORY_IOSURFACE 88
macroVM_MEMORY_LIBNETWORK
#define VM_MEMORY_LIBNETWORK 89
macroVM_MEMORY_AUDIO
#define VM_MEMORY_AUDIO 90
macroVM_MEMORY_VIDEOBITSTREAM
#define VM_MEMORY_VIDEOBITSTREAM 91
macroVM_MEMORY_CM_RPC
#define VM_MEMORY_CM_RPC 93
macroVM_MEMORY_CM_MEMORYPOOL
#define VM_MEMORY_CM_MEMORYPOOL 94
macroVM_MEMORY_CM_READCACHE
#define VM_MEMORY_CM_READCACHE 95
macroVM_MEMORY_CM_CRABS
#define VM_MEMORY_CM_CRABS 96
macroVM_MEMORY_QUICKLOOK_THUMBNAILS
memory allocated for QuickLookThumbnailing
#define VM_MEMORY_QUICKLOOK_THUMBNAILS 97
macroVM_MEMORY_SANITIZER
memory allocated by Sanitizer runtime libraries
#define VM_MEMORY_SANITIZER 99
macroVM_MEMORY_IOACCELERATOR
Differentiate memory needed by GPU drivers and frameworks from generic IOKit allocations
#define VM_MEMORY_IOACCELERATOR 100
macroVM_MEMORY_CM_REGWARP
memory allocated by CoreMedia for global image registration of frames
#define VM_MEMORY_CM_REGWARP 101
macroVM_MEMORY_EAR_DECODER
memory allocated by EmbeddedAcousticRecognition for speech decoder
#define VM_MEMORY_EAR_DECODER 102
macroVM_MEMORY_COREUI_CACHED_IMAGE_DATA
CoreUI cached image data
#define VM_MEMORY_COREUI_CACHED_IMAGE_DATA 103
macroVM_MEMORY_COLORSYNC
ColorSync is using mmap for read-only copies of ICC profile data
#define VM_MEMORY_COLORSYNC 104
macroVM_MEMORY_COMPOSITOR_SERVICES
memory allocated for CompositorServices
#define VM_MEMORY_COMPOSITOR_SERVICES 107
macroVM_MEMORY_ROSETTA_THREAD_CONTEXT
#define VM_MEMORY_ROSETTA_THREAD_CONTEXT 231
macroVM_MEMORY_ROSETTA_INDIRECT_BRANCH_MAP
#define VM_MEMORY_ROSETTA_INDIRECT_BRANCH_MAP 232
macroVM_MEMORY_ROSETTA_RETURN_STACK
#define VM_MEMORY_ROSETTA_RETURN_STACK 233
macroVM_MEMORY_ROSETTA_EXECUTABLE_HEAP
#define VM_MEMORY_ROSETTA_EXECUTABLE_HEAP 234
macroVM_MEMORY_ROSETTA_USER_LDT
#define VM_MEMORY_ROSETTA_USER_LDT 235
macroVM_MEMORY_ROSETTA_ARENA
#define VM_MEMORY_ROSETTA_ARENA 236
macroVM_MEMORY_ROSETTA_10
#define VM_MEMORY_ROSETTA_10 239
macroVM_MEMORY_APPLICATION_SPECIFIC_1
Reserve 240-255 for application
#define VM_MEMORY_APPLICATION_SPECIFIC_1 240
macroVM_MEMORY_APPLICATION_SPECIFIC_2
#define VM_MEMORY_APPLICATION_SPECIFIC_2 241
macroVM_MEMORY_APPLICATION_SPECIFIC_3
#define VM_MEMORY_APPLICATION_SPECIFIC_3 242
macroVM_MEMORY_APPLICATION_SPECIFIC_4
#define VM_MEMORY_APPLICATION_SPECIFIC_4 243
macroVM_MEMORY_APPLICATION_SPECIFIC_5
#define VM_MEMORY_APPLICATION_SPECIFIC_5 244
macroVM_MEMORY_APPLICATION_SPECIFIC_6
#define VM_MEMORY_APPLICATION_SPECIFIC_6 245
macroVM_MEMORY_APPLICATION_SPECIFIC_7
#define VM_MEMORY_APPLICATION_SPECIFIC_7 246
macroVM_MEMORY_APPLICATION_SPECIFIC_8
#define VM_MEMORY_APPLICATION_SPECIFIC_8 247
macroVM_MEMORY_APPLICATION_SPECIFIC_9
#define VM_MEMORY_APPLICATION_SPECIFIC_9 248
macroVM_MEMORY_APPLICATION_SPECIFIC_10
#define VM_MEMORY_APPLICATION_SPECIFIC_10 249
macroVM_MEMORY_APPLICATION_SPECIFIC_11
#define VM_MEMORY_APPLICATION_SPECIFIC_11 250
macroVM_MEMORY_APPLICATION_SPECIFIC_12
#define VM_MEMORY_APPLICATION_SPECIFIC_12 251
macroVM_MEMORY_APPLICATION_SPECIFIC_13
#define VM_MEMORY_APPLICATION_SPECIFIC_13 252
macroVM_MEMORY_APPLICATION_SPECIFIC_14
#define VM_MEMORY_APPLICATION_SPECIFIC_14 253
macroVM_MEMORY_APPLICATION_SPECIFIC_15
#define VM_MEMORY_APPLICATION_SPECIFIC_15 254
macroVM_MEMORY_APPLICATION_SPECIFIC_16
#define VM_MEMORY_APPLICATION_SPECIFIC_16 255
macroVM_MEMORY_COUNT
#define VM_MEMORY_COUNT 256
macroVM_MAKE_TAG
#define VM_MAKE_TAG(tag) ((tag) << 24)