X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/3903760236c30e3b5ace7a4eefac3a269d68957c..813fb2f63a553c957e917ede5f119b021d6ce391:/osfmk/kern/kcdata.h diff --git a/osfmk/kern/kcdata.h b/osfmk/kern/kcdata.h index 3e1c76d31..9ed131e8c 100644 --- a/osfmk/kern/kcdata.h +++ b/osfmk/kern/kcdata.h @@ -468,6 +468,7 @@ struct kcdata_type_definition { #define STACKSHOT_KCTYPE_STACKSHOT_DURATION 0x91au /* struct stackshot_duration */ #define STACKSHOT_KCTYPE_STACKSHOT_FAULT_STATS 0x91bu /* struct stackshot_fault_stats */ #define STACKSHOT_KCTYPE_KERNELCACHE_LOADINFO 0x91cu /* kernelcache UUID -- same as KCDATA_TYPE_LIBRARY_LOADINFO64 */ +#define STACKSHOT_KCTYPE_THREAD_WAITINFO 0x91du /* struct stackshot_thread_waitinfo */ struct stack_snapshot_frame32 { uint32_t lr; @@ -709,6 +710,20 @@ struct stackshot_fault_stats { uint8_t sfs_stopped_faulting; /* we stopped decompressing because we hit the limit */ } __attribute__((packed)); +typedef struct stackshot_thread_waitinfo { + uint64_t owner; /* The thread that owns the object */ + uint64_t waiter; /* The thread that's waiting on the object */ + uint64_t context; /* A context uniquely identifying the object */ + uint8_t wait_type; /* The type of object that the thread is waiting on */ +} __attribute__((packed)) thread_waitinfo_t; + +#define STACKSHOT_WAITOWNER_KERNEL (UINT64_MAX - 1) +#define STACKSHOT_WAITOWNER_PORT_LOCKED (UINT64_MAX - 2) +#define STACKSHOT_WAITOWNER_PSET_LOCKED (UINT64_MAX - 3) +#define STACKSHOT_WAITOWNER_INTRANSIT (UINT64_MAX - 4) +#define STACKSHOT_WAITOWNER_MTXSPIN (UINT64_MAX - 5) + + /**************** definitions for crashinfo *********************/ /*