mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-04 10:32:15 +02:00
Add set:cal service with a few functions
This commit is contained in:
parent
d25bcc486a
commit
fd8e2dfbd7
@ -271,6 +271,36 @@ void setExit(void);
|
|||||||
/// Gets the Service object for the actual set service session.
|
/// Gets the Service object for the actual set service session.
|
||||||
Service* setGetServiceSession(void);
|
Service* setGetServiceSession(void);
|
||||||
|
|
||||||
|
/// Initialize setcal.
|
||||||
|
Result setcalInitialize(void);
|
||||||
|
|
||||||
|
/// Exit setcal.
|
||||||
|
void setcalExit(void);
|
||||||
|
|
||||||
|
/// Gets the Service object for the actual setcal service session.
|
||||||
|
Service* setcalGetServiceSession(void);
|
||||||
|
|
||||||
|
/// Gets EciDeviceCertificate of size 0x180.
|
||||||
|
Result setcalGetEciDeviceCertificate(void *certificate, size_t size);
|
||||||
|
|
||||||
|
/// Gets EticketDeviceCertificate of size 0x240.
|
||||||
|
Result setcalGetEticketDeviceCertificate(void *certificate, size_t size);
|
||||||
|
|
||||||
|
/// Gets SslKey of size 0x134.
|
||||||
|
Result setcalGetSslKey(void *key, size_t size);
|
||||||
|
|
||||||
|
/// Gets SslCertificate of size 0x804.
|
||||||
|
Result setcalGetSslCertificate(void *certificate, size_t size);
|
||||||
|
|
||||||
|
/// Gets GameCardKey of size 0x134.
|
||||||
|
Result setcalGetGameCardKey(void *key, size_t size);
|
||||||
|
|
||||||
|
/// Gets GameCardCertificate of size 0x404.
|
||||||
|
Result setcalGetGameCardCertificate(void *certificate, size_t size);
|
||||||
|
|
||||||
|
/// Gets EticketDeviceKey of size 0x244.
|
||||||
|
Result setcalGetEticketDeviceKey(void *key, size_t size);
|
||||||
|
|
||||||
/// Converts LanguageCode to \ref SetLanguage.
|
/// Converts LanguageCode to \ref SetLanguage.
|
||||||
Result setMakeLanguage(u64 LanguageCode, SetLanguage *Language);
|
Result setMakeLanguage(u64 LanguageCode, SetLanguage *Language);
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
static Service g_setSrv;
|
static Service g_setSrv;
|
||||||
static Service g_setsysSrv;
|
static Service g_setsysSrv;
|
||||||
|
static Service g_setcalSrv;
|
||||||
|
|
||||||
static bool g_setLanguageCodesInitialized;
|
static bool g_setLanguageCodesInitialized;
|
||||||
static u64 g_setLanguageCodes[0x40];
|
static u64 g_setLanguageCodes[0x40];
|
||||||
@ -44,6 +45,20 @@ Service* setsysGetServiceSession(void) {
|
|||||||
return &g_setsysSrv;
|
return &g_setsysSrv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NX_GENERATE_SERVICE_GUARD(setcal);
|
||||||
|
|
||||||
|
Result _setcalInitialize(void) {
|
||||||
|
return smGetService(&g_setcalSrv, "set:cal");
|
||||||
|
}
|
||||||
|
|
||||||
|
void _setcalCleanup(void) {
|
||||||
|
serviceClose(&g_setcalSrv);
|
||||||
|
}
|
||||||
|
|
||||||
|
Service* setcalGetServiceSession(void) {
|
||||||
|
return &g_setcalSrv;
|
||||||
|
}
|
||||||
|
|
||||||
static Result _setCmdGetHandle(Service* srv, Handle* handle_out, u32 cmd_id) {
|
static Result _setCmdGetHandle(Service* srv, Handle* handle_out, u32 cmd_id) {
|
||||||
return serviceDispatch(srv, cmd_id,
|
return serviceDispatch(srv, cmd_id,
|
||||||
.out_handle_attrs = { SfOutHandleAttr_HipcCopy },
|
.out_handle_attrs = { SfOutHandleAttr_HipcCopy },
|
||||||
@ -99,6 +114,55 @@ static Result _setCmdInU64NoOut(Service* srv, u64 inval, u32 cmd_id) {
|
|||||||
return serviceDispatchIn(srv, cmd_id, inval);
|
return serviceDispatchIn(srv, cmd_id, inval);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result setcalGetEciDeviceCertificate(void *certificate, size_t size) {
|
||||||
|
return serviceDispatch(&g_setcalSrv, 14,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
|
.buffers = { { certificate, size } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setcalGetEticketDeviceCertificate(void *certificate, size_t size) {
|
||||||
|
return serviceDispatch(&g_setcalSrv, 15,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
|
.buffers = { { certificate, size } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setcalGetSslKey(void *key, size_t size) {
|
||||||
|
return serviceDispatch(&g_setcalSrv, 16,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
|
.buffers = { { key, size } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setcalGetSslCertificate(void *certificate, size_t size) {
|
||||||
|
return serviceDispatch(&g_setcalSrv, 17,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
|
.buffers = { { certificate, size } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setcalGetGameCardKey(void *key, size_t size) {
|
||||||
|
return serviceDispatch(&g_setcalSrv, 18,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
|
.buffers = { { key, size } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setcalGetGameCardCertificate(void *certificate, size_t size) {
|
||||||
|
return serviceDispatch(&g_setcalSrv, 19,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
|
.buffers = { { certificate, size } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setcalGetEticketDeviceKey(void *key, size_t size) {
|
||||||
|
return serviceDispatch(&g_setcalSrv, 21,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
|
.buffers = { { key, size } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
static Result setInitializeLanguageCodesCache(void) {
|
static Result setInitializeLanguageCodesCache(void) {
|
||||||
if (g_setLanguageCodesInitialized) return 0;
|
if (g_setLanguageCodesInitialized) return 0;
|
||||||
Result rc = 0;
|
Result rc = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user