#include struct gpu_t { uint16_t fan_speed; uint16_t core_clock; uint16_t mem_clock; double vcore; uint16_t power_avg; uint16_t power_cap; uint16_t power_max; uint8_t fan_pwm; uint8_t edge_temp; uint8_t hotspot_temp; uint8_t mem_temp; uint8_t gfx_vrm_temp; uint8_t soc_vrm_temp; uint8_t mem_vrm_temp; uint64_t vram_used; uint64_t vram_total; uint8_t core_usage; uint8_t media_usage; uint8_t umc_usage; }; struct GpuMetricsHeader_t { uint16_t structure_size; uint8_t format_revision; uint8_t content_revision; }; gpu_t getGpu(GpuMetricsHeader_t header, std::string hw); GpuMetricsHeader_t getGpuMetricsRev(std::string path);