- STACKSHOT_GET_DQ = 0x01,
- STACKSHOT_SAVE_LOADINFO = 0x02,
- STACKSHOT_GET_GLOBAL_MEM_STATS = 0x04,
- STACKSHOT_SAVE_KEXT_LOADINFO = 0x08,
- STACKSHOT_GET_MICROSTACKSHOT = 0x10,
- STACKSHOT_GLOBAL_MICROSTACKSHOT_ENABLE = 0x20,
- STACKSHOT_GLOBAL_MICROSTACKSHOT_DISABLE = 0x40,
- STACKSHOT_SET_MICROSTACKSHOT_MARK = 0x80,
- STACKSHOT_SAVE_KERNEL_FRAMES_ONLY = 0x100,
- STACKSHOT_GET_BOOT_PROFILE = 0x200,
- STACKSHOT_GET_WINDOWED_MICROSTACKSHOTS = 0x400,
- STACKSHOT_WINDOWED_MICROSTACKSHOTS_ENABLE = 0x800,
- STACKSHOT_WINDOWED_MICROSTACKSHOTS_DISABLE = 0x1000,
- STACKSHOT_SAVE_IMP_DONATION_PIDS = 0x2000,
- STACKSHOT_SAVE_IN_KERNEL_BUFFER = 0x4000,
- STACKSHOT_RETRIEVE_EXISTING_BUFFER = 0x8000,
- STACKSHOT_KCDATA_FORMAT = 0x10000,
- STACKSHOT_ENABLE_FAULTING = 0x20000
+ STACKSHOT_GET_DQ = 0x01,
+ STACKSHOT_SAVE_LOADINFO = 0x02,
+ STACKSHOT_GET_GLOBAL_MEM_STATS = 0x04,
+ STACKSHOT_SAVE_KEXT_LOADINFO = 0x08,
+ STACKSHOT_GET_MICROSTACKSHOT = 0x10,
+ STACKSHOT_GLOBAL_MICROSTACKSHOT_ENABLE = 0x20,
+ STACKSHOT_GLOBAL_MICROSTACKSHOT_DISABLE = 0x40,
+ STACKSHOT_SET_MICROSTACKSHOT_MARK = 0x80,
+ STACKSHOT_ACTIVE_KERNEL_THREADS_ONLY = 0x100,
+ STACKSHOT_GET_BOOT_PROFILE = 0x200,
+ STACKSHOT_SAVE_IMP_DONATION_PIDS = 0x2000,
+ STACKSHOT_SAVE_IN_KERNEL_BUFFER = 0x4000,
+ STACKSHOT_RETRIEVE_EXISTING_BUFFER = 0x8000,
+ STACKSHOT_KCDATA_FORMAT = 0x10000,
+ STACKSHOT_ENABLE_BT_FAULTING = 0x20000,
+ STACKSHOT_COLLECT_DELTA_SNAPSHOT = 0x40000,
+ /*
+ * STACKSHOT_TAILSPIN flips on several features aimed at minimizing the size
+ * of stackshots. It is meant to be used only by the tailspin daemon. Its
+ * behavior may be changed at any time to suit the needs of the tailspin
+ * daemon. Seriously, if you are not the tailspin daemon, don't use this
+ * flag. If you need these features, ask us to add a stable SPI for what
+ * you need. That being said, the features it turns on are:
+ *
+ * minimize_uuids: If the set of loaded dylibs or kexts has not changed in
+ * the delta period, do then not report them.
+ *
+ * iostats: do not include io statistics.
+ *
+ * trace_fp: do not include the frame pointers in stack traces.
+ *
+ * minimize_nonrunnables: Do not report detailed information about threads
+ * which were not runnable in the delta period.
+ */
+ STACKSHOT_TAILSPIN = 0x80000,
+ /*
+ * Kernel consumers of stackshot (via stack_snapshot_from_kernel) can ask
+ * that we try to take the stackshot lock, and fail if we don't get it.
+ */
+ STACKSHOT_TRYLOCK = 0x100000,
+ STACKSHOT_ENABLE_UUID_FAULTING = 0x200000,
+ STACKSHOT_FROM_PANIC = 0x400000,
+ STACKSHOT_NO_IO_STATS = 0x800000,