mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 20:42:44 +02:00
38 lines
989 B
C
38 lines
989 B
C
#define NX_SERVICE_ASSUME_NON_DOMAIN
|
|
#include "service_guard.h"
|
|
#include "services/smm.h"
|
|
#include "runtime/hosversion.h"
|
|
|
|
static Service g_smManagerSrv;
|
|
|
|
NX_GENERATE_SERVICE_GUARD(smManager);
|
|
|
|
Result _smManagerInitialize(void) {
|
|
return smGetService(&g_smManagerSrv, "sm:m");
|
|
}
|
|
|
|
void _smManagerCleanup(void) {
|
|
serviceClose(&g_smManagerSrv);
|
|
}
|
|
|
|
Service* smManagerGetServiceSession(void) {
|
|
return &g_smManagerSrv;
|
|
}
|
|
|
|
Result smManagerRegisterProcess(u64 pid, const void *acid_sac, size_t acid_sac_size, const void *aci0_sac, size_t aci0_sac_size) {
|
|
return serviceDispatchIn(&g_smManagerSrv, 0, pid,
|
|
.buffer_attrs = {
|
|
SfBufferAttr_In | SfBufferAttr_HipcMapAlias,
|
|
SfBufferAttr_In | SfBufferAttr_HipcMapAlias,
|
|
},
|
|
.buffers = {
|
|
{ acid_sac, acid_sac_size },
|
|
{ aci0_sac, aci0_sac_size },
|
|
},
|
|
);
|
|
}
|
|
|
|
Result smManagerUnregisterProcess(u64 pid) {
|
|
return serviceDispatchIn(&g_smManagerSrv, 1, pid);
|
|
}
|