]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/kern/energy_perf.h
xnu-3247.1.106.tar.gz
[apple/xnu.git] / osfmk / kern / energy_perf.h
index b7e2e1b94df9c4f6036b65967bb40cb2361d3bbd..c6b1d40a131f5c4ec7004141f1239f9cfdea17dd 100644 (file)
@@ -94,6 +94,27 @@ typedef uint64_t (*io_rate_update_callback_t) (uint64_t, uint64_t, uint64_t, uin
 
 void io_rate_update_register(io_rate_update_callback_t);
 
+/* Interfaces for integrated GPUs to supply command submission telemetry.
+ */
+
+#define GPU_NCMDS_VALID (0x1)
+#define GPU_NOUTSTANDING_VALID (0x2)
+#define GPU_BUSY_VALID (0x4)
+#define GPU_CYCLE_COUNT_VALID (0x8)
+#define GPU_MISC_VALID (0x10)
+
+void gpu_submission_telemetry(
+       uint64_t gpu_ncmds_total,
+       uint64_t gpu_noutstanding,
+       uint64_t gpu_busy_ns_total,
+       uint64_t gpu_cycles,
+       uint64_t gpu_telemetry_valid_flags,
+       uint64_t gpu_telemetry_misc);
+
+typedef uint64_t (*gpu_set_fceiling_t) (uint32_t gpu_fceiling_ratio, uint64_t gpu_fceiling_param);
+
+void gpu_fceiling_cb_register(gpu_set_fceiling_t);
+
 __END_DECLS
 #endif /* KERNEL */