]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/kperf/sample.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / osfmk / kperf / sample.h
index 42637fa318de802917b723159998f438439703fc..941ae53e8746f1e87d34e3deaa521dcd46947d9b 100644 (file)
 #include "kperf_kpc.h"
 #include "meminfo.h"
 
+/*
+ * For data that must be sampled in a fault-able context.
+ */
+struct kperf_usample {
+       struct kperf_thread_dispatch th_dispatch;
+       struct kp_ucallstack ucallstack;
+       struct kperf_thread_info th_info;
+};
+
 struct kperf_sample {
        struct kperf_thread_info       th_info;
        struct kperf_thread_scheduling th_scheduling;
        struct kperf_thread_snapshot   th_snapshot;
-       struct kperf_thread_dispatch   th_dispatch;
 
        struct kperf_task_snapshot tk_snapshot;
 
-       struct callstack   kcallstack;
-       struct callstack   ucallstack;
+       struct kp_kcallstack kcallstack;
        struct meminfo     meminfo;
 
+       struct kperf_usample usample;
+
 #if KPC
        struct kpcdata    kpcdata;
-#endif
+#endif /* KPC */
+
+#if DEVELOPMENT || DEBUG
+       uint64_t sample_time;
+#endif /* DEVELOPMENT || DEBUG */
 };
 
 /* cache of threads on each CPU during a timer fire */
-extern thread_t *kperf_thread_on_cpus;
+extern uint64_t *kperf_tid_on_cpus;
 
 #endif /* !defined(KPERF_SAMPLE_H) */