1*19c3b8c2SApple OSS Distributions /* 2*19c3b8c2SApple OSS Distributions * Copyright (c) 2000-2020 Apple Inc. All rights reserved. 3*19c3b8c2SApple OSS Distributions * 4*19c3b8c2SApple OSS Distributions * @Apple_LICENSE_HEADER_START@ 5*19c3b8c2SApple OSS Distributions * 6*19c3b8c2SApple OSS Distributions * The contents of this file constitute Original Code as defined in and 7*19c3b8c2SApple OSS Distributions * are subject to the Apple Public Source License Version 1.1 (the 8*19c3b8c2SApple OSS Distributions * "License"). You may not use this file except in compliance with the 9*19c3b8c2SApple OSS Distributions * License. Please obtain a copy of the License at 10*19c3b8c2SApple OSS Distributions * http://www.apple.com/publicsource and read it before using this file. 11*19c3b8c2SApple OSS Distributions * 12*19c3b8c2SApple OSS Distributions * This Original Code and all software distributed under the License are 13*19c3b8c2SApple OSS Distributions * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER 14*19c3b8c2SApple OSS Distributions * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 15*19c3b8c2SApple OSS Distributions * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 16*19c3b8c2SApple OSS Distributions * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the 17*19c3b8c2SApple OSS Distributions * License for the specific language governing rights and limitations 18*19c3b8c2SApple OSS Distributions * under the License. 19*19c3b8c2SApple OSS Distributions * 20*19c3b8c2SApple OSS Distributions * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 21*19c3b8c2SApple OSS Distributions */ 22*19c3b8c2SApple OSS Distributions 23*19c3b8c2SApple OSS Distributions #ifndef BSD_SYS_KDEBUG_TRIAGE_H 24*19c3b8c2SApple OSS Distributions #define BSD_SYS_KDEBUG_TRIAGE_H 25*19c3b8c2SApple OSS Distributions 26*19c3b8c2SApple OSS Distributions void delete_buffers_triage(void); 27*19c3b8c2SApple OSS Distributions 28*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_CLASS_MASK (0xff000000) 29*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_CLASS_OFFSET (24) 30*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_CLASS_MAX (0xff) 31*19c3b8c2SApple OSS Distributions 32*19c3b8c2SApple OSS Distributions /* Unused but reserved for future use (possibly for payload encoding) */ 33*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_RESERVED (0) 34*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_RESERVED_MASK (0x00ff0000) 35*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_RESERVED_OFFSET (16) 36*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_RESERVED_MAX (0xff) 37*19c3b8c2SApple OSS Distributions 38*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_CODE_MASK (0x0000fffc) 39*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_CODE_OFFSET (2) 40*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_CODE_MAX (0x3fff) 41*19c3b8c2SApple OSS Distributions 42*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_EVENTID(Class, Reserved, Code) \ 43*19c3b8c2SApple OSS Distributions (((unsigned)((Class) & 0xff) << KDBG_TRIAGE_CLASS_OFFSET) | \ 44*19c3b8c2SApple OSS Distributions ((unsigned)((Reserved) & 0xff) << KDBG_TRIAGE_RESERVED_OFFSET) | \ 45*19c3b8c2SApple OSS Distributions ((unsigned)((Code) & 0x3fff) << KDBG_TRIAGE_CODE_OFFSET)) 46*19c3b8c2SApple OSS Distributions 47*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_EXTRACT_CLASS(Debugid) \ 48*19c3b8c2SApple OSS Distributions ((uint8_t)(((Debugid) & KDBG_TRIAGE_CLASS_MASK) >> KDBG_TRIAGE_CLASS_OFFSET)) 49*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_EXTRACT_CODE(Debugid) \ 50*19c3b8c2SApple OSS Distributions ((uint16_t)(((Debugid) & KDBG_TRIAGE_CODE_MASK) >> KDBG_TRIAGE_CODE_OFFSET)) 51*19c3b8c2SApple OSS Distributions 52*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_MAX_STRINGS (5) 53*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_MAX_STRLEN (128) 54*19c3b8c2SApple OSS Distributions 55*19c3b8c2SApple OSS Distributions /****** VM Codes Begin ******/ 56*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_SUBSYS_VM (1) 57*19c3b8c2SApple OSS Distributions 58*19c3b8c2SApple OSS Distributions enum vm_subsys_error_codes { 59*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_PREFIX = 0, 60*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_NO_DATA, 61*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_TEXT_CORRUPTION, 62*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_ADDRESS_NOT_FOUND, 63*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_PROTECTION_FAILURE, 64*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_FAULT_MEMORY_SHORTAGE, 65*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_FAULT_COPY_MEMORY_SHORTAGE, 66*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_FAULT_OBJCOPYSLOWLY_MEMORY_SHORTAGE, 67*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_FAULT_OBJIOPLREQ_MEMORY_SHORTAGE, 68*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_FAULT_INTERRUPTED, 69*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_SUCCESS_NO_PAGE, 70*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_GUARDPAGE_FAULT, 71*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_NONZERO_PREEMPTION_LEVEL, 72*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_BUSYPAGE_WAIT_INTERRUPTED, 73*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_PURGEABLE_FAULT_ERROR, 74*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_OBJECT_SHADOW_SEVERED, 75*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_OBJECT_NOT_ALIVE, 76*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_OBJECT_NO_PAGER, 77*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_PAGE_HAS_ERROR, 78*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_PAGE_HAS_RESTART, 79*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_FAILED_IMMUTABLE_PAGE_WRITE, 80*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_FAILED_NX_PAGE_EXEC_MAPPING, 81*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_PMAP_ENTER_RESOURCE_SHORTAGE, 82*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_COMPRESSOR_GET_OUT_OF_RANGE, 83*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_COMPRESSOR_GET_NO_PAGE, 84*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_COMPRESSOR_DECOMPRESS_FAILED, 85*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_SUBMAP_NO_COW_ON_EXECUTABLE, 86*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_SUBMAP_COPY_SLOWLY_FAILED, 87*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_SUBMAP_COPY_STRAT_FAILED, 88*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_VNODEPAGER_CLREAD_NO_UPL, 89*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_VNODEPAGEIN_NO_UBCINFO, 90*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_VNODEPAGEIN_FSPAGEIN_FAIL, 91*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_VNODEPAGEIN_NO_UPL, 92*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_ECC_DIRTY, 93*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_ECC_CLEAN, 94*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_VM_MAX 95*19c3b8c2SApple OSS Distributions }; 96*19c3b8c2SApple OSS Distributions #define VM_MAX_TRIAGE_STRINGS (KDBG_TRIAGE_VM_MAX) 97*19c3b8c2SApple OSS Distributions 98*19c3b8c2SApple OSS Distributions /****** VM Codes End ******/ 99*19c3b8c2SApple OSS Distributions 100*19c3b8c2SApple OSS Distributions /****** Cluster Codes Begin ******/ 101*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_SUBSYS_CLUSTER (2) 102*19c3b8c2SApple OSS Distributions 103*19c3b8c2SApple OSS Distributions enum cluster_subsys_error_codes { 104*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_CL_PREFIX = 0, 105*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_CL_PGIN_PAST_EOF, 106*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_CL_MAX 107*19c3b8c2SApple OSS Distributions }; 108*19c3b8c2SApple OSS Distributions #define CLUSTER_MAX_TRIAGE_STRINGS (KDBG_TRIAGE_CL_MAX) 109*19c3b8c2SApple OSS Distributions 110*19c3b8c2SApple OSS Distributions /****** Cluster Codes End ******/ 111*19c3b8c2SApple OSS Distributions 112*19c3b8c2SApple OSS Distributions /****** Shared Region Codes Begin ******/ 113*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_SUBSYS_SHARED_REGION (3) 114*19c3b8c2SApple OSS Distributions 115*19c3b8c2SApple OSS Distributions enum shared_region_subsys_error_codes { 116*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_SHARED_REGION_PREFIX = 0, 117*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_SHARED_REGION_NO_UPL, 118*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_SHARED_REGION_SLIDE_ERROR, 119*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_SHARED_REGION_PAGER_MEMORY_SHORTAGE, 120*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_SHARED_REGION_MAX 121*19c3b8c2SApple OSS Distributions }; 122*19c3b8c2SApple OSS Distributions #define SHARED_REGION_MAX_TRIAGE_STRINGS (KDBG_TRIAGE_SHARED_REGION_MAX) 123*19c3b8c2SApple OSS Distributions 124*19c3b8c2SApple OSS Distributions /****** Shared Region Codes End ******/ 125*19c3b8c2SApple OSS Distributions 126*19c3b8c2SApple OSS Distributions /****** DYLD pager Codes Begin ******/ 127*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_SUBSYS_DYLD_PAGER (4) 128*19c3b8c2SApple OSS Distributions 129*19c3b8c2SApple OSS Distributions enum dyld_pager_subsys_error_codes { 130*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_DYLD_PAGER_PREFIX = 0, 131*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_DYLD_PAGER_NO_UPL, 132*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_DYLD_PAGER_SLIDE_ERROR, 133*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_DYLD_PAGER_MEMORY_SHORTAGE, 134*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_DYLD_PAGER_MAX 135*19c3b8c2SApple OSS Distributions }; 136*19c3b8c2SApple OSS Distributions #define DYLD_PAGER_MAX_TRIAGE_STRINGS (KDBG_TRIAGE_DYLD_PAGER_MAX) 137*19c3b8c2SApple OSS Distributions 138*19c3b8c2SApple OSS Distributions /****** DYLD pager Codes End ******/ 139*19c3b8c2SApple OSS Distributions 140*19c3b8c2SApple OSS Distributions /****** APPLE_PROTECT_PAGER pager Codes Begin ******/ 141*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_SUBSYS_APPLE_PROTECT_PAGER (5) 142*19c3b8c2SApple OSS Distributions 143*19c3b8c2SApple OSS Distributions enum apple_protect_pager_subsys_error_codes { 144*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APPLE_PROTECT_PAGER_PREFIX = 0, 145*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APPLE_PROTECT_PAGER_MEMORY_SHORTAGE, 146*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APPLE_PROTECT_PAGER_MAX 147*19c3b8c2SApple OSS Distributions }; 148*19c3b8c2SApple OSS Distributions #define APPLE_PROTECT_PAGER_MAX_TRIAGE_STRINGS (KDBG_TRIAGE_APPLE_PROTECT_PAGER_MAX) 149*19c3b8c2SApple OSS Distributions 150*19c3b8c2SApple OSS Distributions /****** APPLE_PROTECT pager Codes End ******/ 151*19c3b8c2SApple OSS Distributions 152*19c3b8c2SApple OSS Distributions /****** FOURK pager Codes Begin ******/ 153*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_SUBSYS_FOURK_PAGER (6) 154*19c3b8c2SApple OSS Distributions 155*19c3b8c2SApple OSS Distributions enum fourk_pager_subsys_error_codes { 156*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_FOURK_PAGER_PREFIX = 0, 157*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_FOURK_PAGER_MEMORY_SHORTAGE, 158*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_FOURK_PAGER_MAX 159*19c3b8c2SApple OSS Distributions }; 160*19c3b8c2SApple OSS Distributions #define FOURK_PAGER_MAX_TRIAGE_STRINGS (KDBG_TRIAGE_FOURK_PAGER_MAX) 161*19c3b8c2SApple OSS Distributions 162*19c3b8c2SApple OSS Distributions /****** FOURK pager Codes End ******/ 163*19c3b8c2SApple OSS Distributions 164*19c3b8c2SApple OSS Distributions /****** APFS Codes Begin ******/ 165*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_SUBSYS_APFS (7) 166*19c3b8c2SApple OSS Distributions 167*19c3b8c2SApple OSS Distributions enum apfs_subsys_error_codes { 168*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_PREFIX = 0, 169*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_PAGEIN_NOT_ALLOWED, 170*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_INODE_DEAD, 171*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_INODE_RAW_ENCRYPTED, 172*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_INODE_OF_RAW_DEVICE, 173*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_DISALLOW_READS, 174*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_XATTR_GET_FAILED, 175*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_NO_NAMEDSTREAM_PARENT_INODE, 176*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_INVALID_OFFSET, 177*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_COLLECT_HASH_RECORDS, 178*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_INVALID_FILE_INFO, 179*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_NO_HASH_RECORD, 180*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_DATA_HASH_MISMATCH, 181*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_COMPRESSED_DATA_HASH_MISMATCH, 182*19c3b8c2SApple OSS Distributions KDBG_TRIAGE_APFS_MAX 183*19c3b8c2SApple OSS Distributions }; 184*19c3b8c2SApple OSS Distributions 185*19c3b8c2SApple OSS Distributions #define APFS_MAX_TRIAGE_STRINGS (KDBG_TRIAGE_APFS_MAX) 186*19c3b8c2SApple OSS Distributions 187*19c3b8c2SApple OSS Distributions /****** APFS Codes End ******/ 188*19c3b8c2SApple OSS Distributions 189*19c3b8c2SApple OSS Distributions #define KDBG_TRIAGE_SUBSYS_MAX KDBG_TRIAGE_SUBSYS_APFS 190*19c3b8c2SApple OSS Distributions 191*19c3b8c2SApple OSS Distributions #endif /* BSD_SYS_KDEBUG_TRIAGE_H */ 192