c++ bindings for libnx

This commit is contained in:
souldbminersmwc committed 2026-10-05 19:15:19 -04:00
1 parent b144c8d633
commit 018325747d
26 files changed
+33869 -41

No files matched your search

@@ -28,7 +28,7 @@
#include <i2c.h>
#include <max17050.h>
#include <switch.h>
#include <t210.h>
#include <t210.hpp>
#include <tmp451.h>
#include "../display/display_refresh_rate.hpp"
@@ -42,6 +42,7 @@
#include "board_name.hpp"
#include <ipc_server.h>
#include <lockable_mutex.h>
#include <switch.hpp>
namespace board {
static u32 currentInjectedHz = 0;
@@ -67,18 +68,18 @@ namespace board {
PcvModuleId GetPcvModuleId(HocClkModule hocclkModule) {
PcvModuleId pcvModuleId;
Result rc = pcvGetModuleId(&pcvModuleId, GetPcvModule(hocclkModule));
Result rc = nx::pcv::GetModuleId(&pcvModuleId, GetPcvModule(hocclkModule));
ASSERT_RESULT_OK(rc, "pcvGetModuleId");
return pcvModuleId;
}
void ClkrstSetHz(ClkrstSession &session, u32 hz) {
ASSERT_RESULT_OK(clkrstSetClockRate(&session, hz), "clkrstSetClockRate");
ASSERT_RESULT_OK(nx::clkrst::SetClockRate(&session, hz), "clkrstSetClockRate");
}
void PcvSetHz(PcvModule moduleID, u32 hz) {
ASSERT_RESULT_OK(pcvSetClockRate(moduleID, hz), "pcvSetClockRate");
ASSERT_RESULT_OK(nx::pcv::SetClockRate(moduleID, hz), "pcvSetClockRate");
}
void HandleCpuUv() {
@@ -112,22 +113,22 @@ namespace board {
if (HOSSVC_HAS_CLKRST) {
ClkrstSession session = {};
rc = clkrstOpenSession(&session, GetPcvModuleId(module), 3);
rc = nx::clkrst::OpenSession(&session, GetPcvModuleId(module), 3);
ASSERT_RESULT_OK(rc, "clkrstOpenSession");
ClkrstSetHz(session, pcvHz);
/* Voltage bug workaround. */
if (module == HocClkModule_CPU) {
svcSleepThread(300'000);
nx::svc::SleepThread(300'000);
ClkrstSetHz(session, pcvHz);
}
clkrstCloseSession(&session);
nx::clkrst::CloseSession(&session);
} else {
PcvSetHz(GetPcvModule(module), pcvHz);
if (module == HocClkModule_CPU) {
svcSleepThread(300'000);
nx::svc::SleepThread(300'000);
PcvSetHz(GetPcvModule(module), pcvHz);
}
}