Files
Horizon-OC-pro/Source/Benchmark-Toolbox/source/hoc_clk.c
souldbminersmwc 4a5e889c40 benchmark-toolbox: add benchmark-toolbox
a unified benchmarking tool
2026-06-07 21:10:53 -04:00

36 lines
868 B
C

#define NX_SERVICE_ASSUME_NON_DOMAIN
#include <assert.h>
#include <switch.h>
#include "hoc_clk.h"
#include <hocclk/clock_manager.h>
#define HOCCLK_SERVICE "hoc:clk"
#define HOCCLK_CMD_GET_CURRENT_CONTEXT 2
static Service g_srv;
static bool g_active = false;
bool hocclk_init(void) {
if (g_active)
return true;
Result rc = smGetService(&g_srv, HOCCLK_SERVICE);
g_active = R_SUCCEEDED(rc);
return g_active;
}
void hocclk_exit(void) {
if (g_active) {
serviceClose(&g_srv);
g_active = false;
}
}
bool hocclk_get(HocClkContext *out) {
if (!g_active)
return false;
Result rc = serviceDispatch(&g_srv, HOCCLK_CMD_GET_CURRENT_CONTEXT, .buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
.buffers = { { out, sizeof(*out) } }, );
return R_SUCCEEDED(rc);
}