#include <mach/vm_statistics.h> also included by <mach/mach.h>

mach/vm_statistics.h

176 macros · 10 typedefs · 5 structs · 1 function · 1 enum

structvm_statistics

size 60, align 4
natural_tfree_count# of pages free
natural_tactive_count# of pages active
natural_tinactive_count# of pages inactive
natural_twire_count# of pages wired down
natural_tzero_fill_count# of zero fill pages
natural_treactivations# of pages reactivated
natural_tpageins# of pageins
natural_tpageouts# of pageouts
natural_tfaults# of faults
natural_tcow_faults# of copy-on-writes
natural_tlookupsobject cache lookups
natural_thitsobject cache hits
natural_tpurgeable_countadded for rev1 # of pages purgeable
natural_tpurges# of pages purged
natural_tspeculative_countadded 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_t

Used by all architectures
typedef struct vm_statistics *vm_statistics_t

typedefvm_statistics_data_t

typedef struct vm_statistics vm_statistics_data_t

structvm_statistics64

size 160, align 8
natural_tfree_count# of pages free
natural_tactive_count# of pages active
natural_tinactive_count# of pages inactive
natural_twire_count# of pages wired down
uint64_tzero_fill_count# of zero fill pages
uint64_treactivations# of pages reactivated
uint64_tpageins# of pageins (lifetime)
uint64_tpageouts# of pageouts
uint64_tfaults# of faults
uint64_tcow_faults# of copy-on-writes
uint64_tlookupsobject cache lookups
uint64_thitsobject cache hits
uint64_tpurges# of pages purged
natural_tpurgeable_count# of pages purgeable
natural_tspeculative_countNB: 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_tdecompressionsadded for rev1 # of pages decompressed (lifetime)
uint64_tcompressions# of pages compressed (lifetime)
uint64_tswapins# of pages swapped in via compressor segments (lifetime)
uint64_tswapouts# of pages swapped out via compressor segments (lifetime)
natural_tcompressor_page_count# of pages used by the compressed pager to hold all the compressed data
natural_tthrottled_count# of pages throttled
natural_texternal_page_count# of pages that are file-backed (non-swap)
natural_tinternal_page_count# of pages that are anonymous
uint64_ttotal_uncompressed_pages_in_compressor# of pages (uncompressed) held within the compressor.
uint64_tswapped_countadded 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

size 48, align 8
int64_ttask_for_pid_count# of times task port was looked up
int64_ttask_for_pid_caller_count# of times this task called task_for_pid
int64_tthread_creation_count# of threads created in task
int64_tthread_creation_caller_count# of threads created by task
int64_tthread_set_state_count# of register state sets in task
int64_tthread_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

size 16, align 8
uint64_tcount
uint64_tsize

typedefvm_purgeable_stat_t

typedef struct vm_purgeable_stat vm_purgeable_stat_t;

structvm_purgeable_info

size 272, align 8
vm_purgeable_stat_t[8]fifo_data
vm_purgeable_stat_tobsolete_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_OVERWRITE

#define VM_FLAGS_OVERWRITE 0x00004000
delete any existing mappings first

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_SUPERPAGE_SHIFT

#define VM_FLAGS_SUPERPAGE_SHIFT 16

macroSUPERPAGE_NONE

#define SUPERPAGE_NONE 0
no superpages, if all bits are 0

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

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
underlying type uint32_t
kGUARD_EXC_DEALLOC_GAP1
kGUARD_EXC_RECLAIM_COPYIO_FAILURE2
kGUARD_EXC_RECLAIM_INDEX_FAILURE4
kGUARD_EXC_RECLAIM_DEALLOCATE_FAILURE8
kGUARD_EXC_RECLAIM_ACCOUNTING_FAILURE9
kGUARD_EXC_SEC_IOPL_ON_EXEC_PAGE10
kGUARD_EXC_SEC_EXEC_ON_IOPL_PAGE11
kGUARD_EXC_SEC_UPL_WRITE_ON_EXEC_REGION12
kGUARD_EXC_LARGE_ALLOCATION_TELEMETRY13
kGUARD_EXC_SEC_ACCESS_FAULT98
kGUARD_EXC_SEC_ASYNC_ACCESS_FAULT99
kGUARD_EXC_SEC_COPY_DENIED100
kGUARD_EXC_SEC_SHARING_DENIED101
kGUARD_EXC_MTE_SYNC_FAULT200
kGUARD_EXC_MTE_ASYNC_USER_FAULT201
kGUARD_EXC_MTE_ASYNC_KERN_FAULT202
kGUARD_EXC_GUARD_OBJECT_ASYNC_USER_FAULT203
kGUARD_EXC_GUARD_OBJECT_ASYNC_KERN_FAULT204

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

individual bits:
#define VM_LEDGER_FLAG_NO_FOOTPRINT (1 << 0)

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_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_SBRK

#define VM_MEMORY_SBRK 5
uninteresting -- no one should call

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_DYLIB

memory containing a dylib
#define VM_MEMORY_DYLIB 33

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_XALLOC

x-alloc'd memory
#define VM_MEMORY_COREGRAPHICS_XALLOC 58

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_DYLD

memory allocated by the dynamic loader for itself
#define VM_MEMORY_DYLD 60

macroVM_MEMORY_DYLD_MALLOC

malloc'd memory created by dyld
#define VM_MEMORY_DYLD_MALLOC 61

macroVM_MEMORY_SQLITE

Used for sqlite page cache
#define VM_MEMORY_SQLITE 62

macroVM_MEMORY_JAVASCRIPT_CORE

JavaScriptCore heaps
#define VM_MEMORY_JAVASCRIPT_CORE 63

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_GLSL

memory allocated for GLSL
#define VM_MEMORY_GLSL 66

macroVM_MEMORY_OPENCL

memory allocated for OpenCL.framework
#define VM_MEMORY_OPENCL 67

macroVM_MEMORY_COREIMAGE

memory allocated for QuartzCore.framework
#define VM_MEMORY_COREIMAGE 68

macroVM_MEMORY_WEBCORE_PURGEABLE_BUFFERS

memory allocated for WebCore Purgeable Buffers
#define VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS 69

macroVM_MEMORY_IMAGEIO

ImageIO memory
#define VM_MEMORY_IMAGEIO 70

macroVM_MEMORY_COREPROFILE

CoreProfile memory
#define VM_MEMORY_COREPROFILE 71

macroVM_MEMORY_ASSETSD

assetsd / MobileSlideShow memory
#define VM_MEMORY_ASSETSD 72

macroVM_MEMORY_OS_ALLOC_ONCE

libsystem_kernel os_once_alloc
#define VM_MEMORY_OS_ALLOC_ONCE 73

macroVM_MEMORY_LIBDISPATCH

libdispatch internal allocator
#define VM_MEMORY_LIBDISPATCH 74

macroVM_MEMORY_ACCELERATE

Accelerate.framework image backing stores
#define VM_MEMORY_ACCELERATE 75

macroVM_MEMORY_COREUI

CoreUI image block data
#define VM_MEMORY_COREUI 76

macroVM_MEMORY_COREUIFILE

CoreUI image file
#define VM_MEMORY_COREUIFILE 77

macroVM_MEMORY_GENEALOGY

Genealogy buffers
#define VM_MEMORY_GENEALOGY 78

macroVM_MEMORY_RAWCAMERA

RawCamera VM allocated memory
#define VM_MEMORY_RAWCAMERA 79

macroVM_MEMORY_CORPSEINFO

corpse info for dead process
#define VM_MEMORY_CORPSEINFO 80

macroVM_MEMORY_ASL

Apple System Logger (ASL) messages
#define VM_MEMORY_ASL 81

macroVM_MEMORY_SWIFT_RUNTIME

Swift runtime
#define VM_MEMORY_SWIFT_RUNTIME 82

macroVM_MEMORY_SWIFT_METADATA

Swift metadata
#define VM_MEMORY_SWIFT_METADATA 83

macroVM_MEMORY_DHMM

DHMM data
#define VM_MEMORY_DHMM 84

macroVM_MEMORY_DFR

memory needed for DFR related actions
#define VM_MEMORY_DFR 85

macroVM_MEMORY_SCENEKIT

memory allocated by SceneKit.framework
#define VM_MEMORY_SCENEKIT 86

macroVM_MEMORY_SKYWALK

memory allocated by skywalk networking
#define VM_MEMORY_SKYWALK 87

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_XPC

memory allocated by CoreMedia
#define VM_MEMORY_CM_XPC 92

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_ACCOUNTS

memory allocated by Accounts framework
#define VM_MEMORY_ACCOUNTS 98

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_BTINFO

backtrace info for simulated crashes
#define VM_MEMORY_BTINFO 105

macroVM_MEMORY_CM_HLS

memory allocated by CoreMedia
#define VM_MEMORY_CM_HLS 106

macroVM_MEMORY_COMPOSITOR_SERVICES

memory allocated for CompositorServices
#define VM_MEMORY_COMPOSITOR_SERVICES 107

macroVM_MEMORY_ROSETTA

Reserve 230-239 for Rosetta
#define VM_MEMORY_ROSETTA 230

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)