mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2024-12-18 00:12:03 +00:00
Exosphere: Add API for retrieving versioning info.
This commit is contained in:
parent
bf94bf48d2
commit
ba7d0c2cb6
6 changed files with 38 additions and 5 deletions
|
@ -9,6 +9,7 @@
|
|||
#include "utils.h"
|
||||
#include "masterkey.h"
|
||||
#include "exocfg.h"
|
||||
#include "version.h"
|
||||
|
||||
static bool g_battery_profile = false;
|
||||
|
||||
|
@ -132,6 +133,10 @@ uint32_t configitem_get(ConfigItem item, uint64_t *p_outvalue) {
|
|||
result = 2;
|
||||
}
|
||||
break;
|
||||
case CONFIGITEM_EXOSPHERE_VERSION:
|
||||
/* UNOFFICIAL: Gets information about the current exosphere version. */
|
||||
*p_outvalue = (EXOSPHERE_RELEASE_VERSION_MAJOR << 24) | (EXOSPHERE_RELEASE_VERSION_MINOR << 16) | (exosphere_get_target_firmware() << 8) | (mkey_get_revision() << 0);
|
||||
break;
|
||||
default:
|
||||
result = 2;
|
||||
break;
|
||||
|
|
|
@ -21,7 +21,10 @@ typedef enum {
|
|||
CONFIGITEM_ODM4BIT10_4X = 14,
|
||||
CONFIGITEM_NEWHARDWARETYPE_5X = 15,
|
||||
CONFIGITEM_NEWKEYGENERATION_5X = 16,
|
||||
CONFIGITEM_PACKAGE2HASH_5X = 17
|
||||
CONFIGITEM_PACKAGE2HASH_5X = 17,
|
||||
|
||||
/* These are unofficial, for usage by Exosphere. */
|
||||
CONFIGITEM_EXOSPHERE_VERSION = 65000
|
||||
} ConfigItem;
|
||||
|
||||
uint32_t configitem_set(ConfigItem item, uint64_t value);
|
||||
|
|
7
exosphere/src/version.h
Normal file
7
exosphere/src/version.h
Normal file
|
@ -0,0 +1,7 @@
|
|||
#ifndef EXOSPHERE_VERSION_H
|
||||
#define EXOSPHERE_VERSION_H
|
||||
|
||||
#define EXOSPHERE_RELEASE_VERSION_MAJOR 0
|
||||
#define EXOSPHERE_RELEASE_VERSION_MINOR 1
|
||||
|
||||
#endif
|
|
@ -63,6 +63,18 @@ void __appInit(void) {
|
|||
if (R_FAILED(rc)) {
|
||||
fatalSimple(0xCAFE << 4 | 2);
|
||||
}
|
||||
|
||||
rc = splInitialize();
|
||||
if (R_FAILED(rc)) {
|
||||
fatalSimple(0xCAFE << 4 | 3);
|
||||
}
|
||||
|
||||
/* Check for exosphere API compatibility. */
|
||||
u64 exosphere_cfg;
|
||||
if (R_FAILED(splGetConfig((SplConfigItem)65000, &exosphere_cfg))) {
|
||||
fatalSimple(0xCAFE << 4 | 0xFF);
|
||||
/* TODO: Does Loader need to know about target firmware/master key revision? If so, extract from exosphere_cfg. */
|
||||
}
|
||||
}
|
||||
|
||||
void __appExit(void) {
|
||||
|
|
|
@ -70,13 +70,19 @@ void __appInit(void) {
|
|||
|
||||
rc = smManagerInitialize();
|
||||
if (R_FAILED(rc)) {
|
||||
fatalSimple(0xCAFE << 4 | 4);
|
||||
fatalSimple(0xCAFE << 4 | 5);
|
||||
}
|
||||
|
||||
|
||||
rc = splInitialize();
|
||||
if (R_FAILED(rc)) {
|
||||
fatalSimple(0xCAFE << 4 | 5);
|
||||
fatalSimple(0xCAFE << 4 | 6);
|
||||
}
|
||||
|
||||
/* Check for exosphere API compatibility. */
|
||||
u64 exosphere_cfg;
|
||||
if (R_FAILED(splGetConfig((SplConfigItem)65000, &exosphere_cfg))) {
|
||||
fatalSimple(0xCAFE << 4 | 0xFF);
|
||||
/* TODO: Does PM need to know about target firmware/master key revision? If so, extract from exosphere_cfg. */
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ void __libnx_initheap(void) {
|
|||
}
|
||||
|
||||
void __appInit(void) {
|
||||
/* We must do nothing here, because we are sm. */
|
||||
/* We must do no setup here, because we are sm. */
|
||||
}
|
||||
|
||||
void __appExit(void) {
|
||||
|
|
Loading…
Reference in a new issue