mirror of
https://github.com/Atmosphere-NX/Atmosphere-libs.git
synced 2025-06-22 19:32:39 +02:00
ams: revamp target firmware
This commit is contained in:
parent
b4442b1c20
commit
1f35c699a7
@ -676,7 +676,7 @@ namespace ams::kern::arch::arm64::init {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ALWAYS_INLINE void InitializeFromState(uintptr_t state_val) {
|
ALWAYS_INLINE void InitializeFromState(uintptr_t state_val) {
|
||||||
if (kern::GetTargetFirmware() >= kern::TargetFirmware_10_0_0) {
|
if (kern::GetTargetFirmware() >= ams::TargetFirmware_10_0_0) {
|
||||||
this->state = *reinterpret_cast<State *>(state_val);
|
this->state = *reinterpret_cast<State *>(state_val);
|
||||||
} else {
|
} else {
|
||||||
this->state.next_address = state_val;
|
this->state.next_address = state_val;
|
||||||
|
@ -20,23 +20,7 @@ namespace ams::kern {
|
|||||||
|
|
||||||
constexpr size_t PageSize = 4_KB;
|
constexpr size_t PageSize = 4_KB;
|
||||||
|
|
||||||
enum TargetFirmware : u32 {
|
ams::TargetFirmware GetTargetFirmware();
|
||||||
TargetFirmware_1_0_0 = ATMOSPHERE_TARGET_FIRMWARE_100,
|
|
||||||
TargetFirmware_2_0_0 = ATMOSPHERE_TARGET_FIRMWARE_200,
|
|
||||||
TargetFirmware_3_0_0 = ATMOSPHERE_TARGET_FIRMWARE_300,
|
|
||||||
TargetFirmware_4_0_0 = ATMOSPHERE_TARGET_FIRMWARE_400,
|
|
||||||
TargetFirmware_5_0_0 = ATMOSPHERE_TARGET_FIRMWARE_500,
|
|
||||||
TargetFirmware_6_0_0 = ATMOSPHERE_TARGET_FIRMWARE_600,
|
|
||||||
TargetFirmware_6_2_0 = ATMOSPHERE_TARGET_FIRMWARE_620,
|
|
||||||
TargetFirmware_7_0_0 = ATMOSPHERE_TARGET_FIRMWARE_700,
|
|
||||||
TargetFirmware_8_0_0 = ATMOSPHERE_TARGET_FIRMWARE_800,
|
|
||||||
TargetFirmware_8_1_0 = ATMOSPHERE_TARGET_FIRMWARE_810,
|
|
||||||
TargetFirmware_9_0_0 = ATMOSPHERE_TARGET_FIRMWARE_900,
|
|
||||||
TargetFirmware_9_1_0 = ATMOSPHERE_TARGET_FIRMWARE_910,
|
|
||||||
TargetFirmware_10_0_0 = ATMOSPHERE_TARGET_FIRMWARE_1000,
|
|
||||||
};
|
|
||||||
|
|
||||||
TargetFirmware GetTargetFirmware();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,32 +21,16 @@
|
|||||||
|
|
||||||
namespace ams::exosphere {
|
namespace ams::exosphere {
|
||||||
|
|
||||||
#define AMS_DEFINE_TARGET_FIRMWARE_ENUM(n) TargetFirmware_##n = ATMOSPHERE_TARGET_FIRMWARE_##n
|
using TargetFirmware = ams::TargetFirmware;
|
||||||
enum TargetFirmware : u32 {
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(100),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(200),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(300),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(400),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(500),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(600),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(620),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(700),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(800),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(810),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(900),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(910),
|
|
||||||
AMS_DEFINE_TARGET_FIRMWARE_ENUM(1000),
|
|
||||||
};
|
|
||||||
#undef AMS_DEFINE_TARGET_FIRMWARE_ENUM
|
|
||||||
|
|
||||||
constexpr ALWAYS_INLINE u32 GetVersion(u32 major, u32 minor, u32 micro) {
|
constexpr ALWAYS_INLINE u32 GetVersion(u32 major, u32 minor, u32 micro) {
|
||||||
return (major << 16) | (minor << 8) | (micro);
|
return (major << 16) | (minor << 8) | (micro);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ApiInfo {
|
struct ApiInfo {
|
||||||
using MasterKeyRevision = util::BitPack64::Field<0, 8, u32>;
|
using TargetFirmwareVersion = util::BitPack64::Field<0, 32, TargetFirmware>;
|
||||||
using TargetFirmwareVersion = util::BitPack64::Field<MasterKeyRevision::Next, 8, TargetFirmware>;
|
using MasterKeyRevision = util::BitPack64::Field<TargetFirmwareVersion::Next, 8, u32>;
|
||||||
using MicroVersion = util::BitPack64::Field<TargetFirmwareVersion::Next, 8, u32>;
|
using MicroVersion = util::BitPack64::Field<MasterKeyRevision::Next, 8, u32>;
|
||||||
using MinorVersion = util::BitPack64::Field<MicroVersion::Next, 8, u32>;
|
using MinorVersion = util::BitPack64::Field<MicroVersion::Next, 8, u32>;
|
||||||
using MajorVersion = util::BitPack64::Field<MinorVersion::Next, 8, u32>;
|
using MajorVersion = util::BitPack64::Field<MinorVersion::Next, 8, u32>;
|
||||||
|
|
||||||
|
@ -19,22 +19,47 @@
|
|||||||
|
|
||||||
namespace ams::hos {
|
namespace ams::hos {
|
||||||
|
|
||||||
enum Version : u16 {
|
enum Version : u32 {
|
||||||
Version_Min = 0,
|
Version_Min = ::ams::TargetFirmware_Min,
|
||||||
Version_1_0_0 = Version_Min,
|
|
||||||
Version_2_0_0 = 1,
|
Version_1_0_0 = ::ams::TargetFirmware_1_0_0,
|
||||||
Version_3_0_0 = 2,
|
Version_2_0_0 = ::ams::TargetFirmware_2_0_0,
|
||||||
Version_4_0_0 = 3,
|
Version_2_1_0 = ::ams::TargetFirmware_2_1_0,
|
||||||
Version_5_0_0 = 4,
|
Version_2_2_0 = ::ams::TargetFirmware_2_2_0,
|
||||||
Version_6_0_0 = 5,
|
Version_2_3_0 = ::ams::TargetFirmware_2_3_0,
|
||||||
Version_7_0_0 = 6,
|
Version_3_0_0 = ::ams::TargetFirmware_3_0_0,
|
||||||
Version_8_0_0 = 7,
|
Version_3_0_1 = ::ams::TargetFirmware_3_0_1,
|
||||||
Version_8_1_0 = 8,
|
Version_3_0_2 = ::ams::TargetFirmware_3_0_2,
|
||||||
Version_9_0_0 = 9,
|
Version_4_0_0 = ::ams::TargetFirmware_4_0_0,
|
||||||
Version_9_1_0 = 10,
|
Version_4_0_1 = ::ams::TargetFirmware_4_0_1,
|
||||||
Version_10_0_0 = 11,
|
Version_4_1_0 = ::ams::TargetFirmware_4_1_0,
|
||||||
Version_Current = Version_10_0_0,
|
Version_5_0_0 = ::ams::TargetFirmware_5_0_0,
|
||||||
Version_Max = 32,
|
Version_5_0_1 = ::ams::TargetFirmware_5_0_1,
|
||||||
|
Version_5_0_2 = ::ams::TargetFirmware_5_0_2,
|
||||||
|
Version_5_1_0 = ::ams::TargetFirmware_5_1_0,
|
||||||
|
Version_6_0_0 = ::ams::TargetFirmware_6_0_0,
|
||||||
|
Version_6_0_1 = ::ams::TargetFirmware_6_0_1,
|
||||||
|
Version_6_1_0 = ::ams::TargetFirmware_6_1_0,
|
||||||
|
Version_6_2_0 = ::ams::TargetFirmware_6_2_0,
|
||||||
|
Version_7_0_0 = ::ams::TargetFirmware_7_0_0,
|
||||||
|
Version_7_0_1 = ::ams::TargetFirmware_7_0_1,
|
||||||
|
Version_8_0_0 = ::ams::TargetFirmware_8_0_0,
|
||||||
|
Version_8_0_1 = ::ams::TargetFirmware_8_0_1,
|
||||||
|
Version_8_1_0 = ::ams::TargetFirmware_8_1_0,
|
||||||
|
Version_8_1_1 = ::ams::TargetFirmware_8_1_1,
|
||||||
|
Version_9_0_0 = ::ams::TargetFirmware_9_0_0,
|
||||||
|
Version_9_0_1 = ::ams::TargetFirmware_9_0_1,
|
||||||
|
Version_9_1_0 = ::ams::TargetFirmware_9_1_0,
|
||||||
|
Version_9_2_0 = ::ams::TargetFirmware_9_2_0,
|
||||||
|
Version_10_0_0 = ::ams::TargetFirmware_10_0_0,
|
||||||
|
Version_10_0_1 = ::ams::TargetFirmware_10_0_1,
|
||||||
|
Version_10_0_2 = ::ams::TargetFirmware_10_0_2,
|
||||||
|
|
||||||
|
Version_Current = ::ams::TargetFirmware_Current,
|
||||||
|
|
||||||
|
Version_Max = ::ams::TargetFirmware_Max,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ namespace ams::sf::cmif {
|
|||||||
return this->handler;
|
return this->handler;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
static_assert(std::is_pod<ServiceCommandMeta>::value && sizeof(ServiceCommandMeta) == 0x10, "sizeof(ServiceCommandMeta)");
|
static_assert(std::is_pod<ServiceCommandMeta>::value && sizeof(ServiceCommandMeta) == 0x18, "sizeof(ServiceCommandMeta)");
|
||||||
|
|
||||||
namespace impl {
|
namespace impl {
|
||||||
|
|
||||||
|
@ -35,46 +35,9 @@ namespace ams::hos {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (exosphere::GetApiInfo().GetTargetFirmware()) {
|
/* Hos version is a direct copy of target firmware, just renamed. */
|
||||||
case exosphere::TargetFirmware_100:
|
g_hos_version = static_cast<hos::Version>(exosphere::GetApiInfo().GetTargetFirmware());
|
||||||
g_hos_version = hos::Version_1_0_0;
|
AMS_ABORT_UNLESS(g_hos_version <= hos::Version_Max);
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_200:
|
|
||||||
g_hos_version = hos::Version_2_0_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_300:
|
|
||||||
g_hos_version = hos::Version_3_0_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_400:
|
|
||||||
g_hos_version = hos::Version_4_0_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_500:
|
|
||||||
g_hos_version = hos::Version_5_0_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_600:
|
|
||||||
case exosphere::TargetFirmware_620:
|
|
||||||
g_hos_version = hos::Version_6_0_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_700:
|
|
||||||
g_hos_version = hos::Version_7_0_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_800:
|
|
||||||
g_hos_version = hos::Version_8_0_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_810:
|
|
||||||
g_hos_version = hos::Version_8_1_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_900:
|
|
||||||
g_hos_version = hos::Version_9_0_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_910:
|
|
||||||
g_hos_version = hos::Version_9_1_0;
|
|
||||||
break;
|
|
||||||
case exosphere::TargetFirmware_1000:
|
|
||||||
g_hos_version = hos::Version_10_0_0;
|
|
||||||
break;
|
|
||||||
AMS_UNREACHABLE_DEFAULT_CASE();
|
|
||||||
}
|
|
||||||
|
|
||||||
__atomic_store_n(&g_has_cached, true, __ATOMIC_SEQ_CST);
|
__atomic_store_n(&g_has_cached, true, __ATOMIC_SEQ_CST);
|
||||||
}
|
}
|
||||||
@ -87,69 +50,10 @@ namespace ams::hos {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SetVersionForLibnxInternal() {
|
void SetVersionForLibnxInternal() {
|
||||||
u32 major = 0, minor = 0, micro = 0;
|
const u32 hos_version_val = static_cast<u32>(hos::GetVersion());
|
||||||
switch (hos::GetVersion()) {
|
const u32 major = (hos_version_val >> 24) & 0xFF;
|
||||||
case hos::Version_1_0_0:
|
const u32 minor = (hos_version_val >> 16) & 0xFF;
|
||||||
major = 1;
|
const u32 micro = (hos_version_val >> 8) & 0xFF;
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_2_0_0:
|
|
||||||
major = 2;
|
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_3_0_0:
|
|
||||||
major = 3;
|
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_4_0_0:
|
|
||||||
major = 4;
|
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_5_0_0:
|
|
||||||
major = 5;
|
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_6_0_0:
|
|
||||||
major = 6;
|
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_7_0_0:
|
|
||||||
major = 7;
|
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_8_0_0:
|
|
||||||
major = 8;
|
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_8_1_0:
|
|
||||||
major = 8;
|
|
||||||
minor = 1;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_9_0_0:
|
|
||||||
major = 9;
|
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
case hos::Version_9_1_0:
|
|
||||||
major = 9;
|
|
||||||
minor = 1;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
case hos::Version_10_0_0:
|
|
||||||
major = 10;
|
|
||||||
minor = 0;
|
|
||||||
micro = 0;
|
|
||||||
break;
|
|
||||||
AMS_UNREACHABLE_DEFAULT_CASE();
|
|
||||||
}
|
|
||||||
hosversionSet(MAKEHOSVERSION(major, minor, micro));
|
hosversionSet(MAKEHOSVERSION(major, minor, micro));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,22 +15,94 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_100 1
|
#define ATMOSPHERE_TARGET_FIRMWARE_WITH_REVISION(major, minor, micro, rev) ((major << 24) | (minor << 16) | (micro << 8) | (rev))
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_200 2
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_300 3
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_400 4
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_500 5
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_600 6
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_620 7
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_700 8
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_800 9
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_810 10
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_900 11
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_910 12
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_1000 13
|
|
||||||
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_CURRENT ATMOSPHERE_TARGET_FIRMWARE_1000
|
#define ATMOSPHERE_TARGET_FIRMWARE(major, minor, micro) ATMOSPHERE_TARGET_FIRMWARE_WITH_REVISION(major, minor, micro, 0)
|
||||||
|
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_MIN ATMOSPHERE_TARGET_FIRMWARE_100
|
#define ATMOSPHERE_TARGET_FIRMWARE_1_0_0 ATMOSPHERE_TARGET_FIRMWARE( 1, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_2_0_0 ATMOSPHERE_TARGET_FIRMWARE( 2, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_2_1_0 ATMOSPHERE_TARGET_FIRMWARE( 2, 1, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_2_2_0 ATMOSPHERE_TARGET_FIRMWARE( 2, 2, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_2_3_0 ATMOSPHERE_TARGET_FIRMWARE( 2, 3, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_3_0_0 ATMOSPHERE_TARGET_FIRMWARE( 3, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_3_0_1 ATMOSPHERE_TARGET_FIRMWARE( 3, 0, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_3_0_2 ATMOSPHERE_TARGET_FIRMWARE( 3, 0, 2)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_4_0_0 ATMOSPHERE_TARGET_FIRMWARE( 4, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_4_0_1 ATMOSPHERE_TARGET_FIRMWARE( 4, 0, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_4_1_0 ATMOSPHERE_TARGET_FIRMWARE( 4, 1, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_5_0_0 ATMOSPHERE_TARGET_FIRMWARE( 5, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_5_0_1 ATMOSPHERE_TARGET_FIRMWARE( 5, 0, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_5_0_2 ATMOSPHERE_TARGET_FIRMWARE( 5, 0, 2)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_5_1_0 ATMOSPHERE_TARGET_FIRMWARE( 5, 1, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_6_0_0 ATMOSPHERE_TARGET_FIRMWARE( 6, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_6_0_1 ATMOSPHERE_TARGET_FIRMWARE( 6, 0, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_6_1_0 ATMOSPHERE_TARGET_FIRMWARE( 6, 1, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_6_2_0 ATMOSPHERE_TARGET_FIRMWARE( 6, 2, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_7_0_0 ATMOSPHERE_TARGET_FIRMWARE( 7, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_7_0_1 ATMOSPHERE_TARGET_FIRMWARE( 7, 0, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_8_0_0 ATMOSPHERE_TARGET_FIRMWARE( 8, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_8_0_1 ATMOSPHERE_TARGET_FIRMWARE( 8, 0, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_8_1_0 ATMOSPHERE_TARGET_FIRMWARE( 8, 1, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_8_1_1 ATMOSPHERE_TARGET_FIRMWARE( 8, 1, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_9_0_0 ATMOSPHERE_TARGET_FIRMWARE( 9, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_9_0_1 ATMOSPHERE_TARGET_FIRMWARE( 9, 0, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_9_1_0 ATMOSPHERE_TARGET_FIRMWARE( 9, 1, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_9_2_0 ATMOSPHERE_TARGET_FIRMWARE( 9, 2, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_10_0_0 ATMOSPHERE_TARGET_FIRMWARE(10, 0, 0)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_10_0_1 ATMOSPHERE_TARGET_FIRMWARE(10, 0, 1)
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_10_0_2 ATMOSPHERE_TARGET_FIRMWARE(10, 0, 2)
|
||||||
|
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_CURRENT ATMOSPHERE_TARGET_FIRMWARE_10_0_2
|
||||||
|
|
||||||
|
#define ATMOSPHERE_TARGET_FIRMWARE_MIN ATMOSPHERE_TARGET_FIRMWARE(0, 0, 0)
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_MAX ATMOSPHERE_TARGET_FIRMWARE_CURRENT
|
#define ATMOSPHERE_TARGET_FIRMWARE_MAX ATMOSPHERE_TARGET_FIRMWARE_CURRENT
|
||||||
#define ATMOSPHERE_TARGET_FIRMWARE_COUNT ((ATMOSPHERE_TARGET_FIRMWARE_MAX - ATMOSPHERE_TARGET_FIRMWARE_MIN) + 1)
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
namespace ams {
|
||||||
|
|
||||||
|
enum TargetFirmware : u32 {
|
||||||
|
TargetFirmware_Min = ATMOSPHERE_TARGET_FIRMWARE_MIN,
|
||||||
|
|
||||||
|
TargetFirmware_1_0_0 = ATMOSPHERE_TARGET_FIRMWARE_1_0_0,
|
||||||
|
TargetFirmware_2_0_0 = ATMOSPHERE_TARGET_FIRMWARE_2_0_0,
|
||||||
|
TargetFirmware_2_1_0 = ATMOSPHERE_TARGET_FIRMWARE_2_1_0,
|
||||||
|
TargetFirmware_2_2_0 = ATMOSPHERE_TARGET_FIRMWARE_2_2_0,
|
||||||
|
TargetFirmware_2_3_0 = ATMOSPHERE_TARGET_FIRMWARE_2_3_0,
|
||||||
|
TargetFirmware_3_0_0 = ATMOSPHERE_TARGET_FIRMWARE_3_0_0,
|
||||||
|
TargetFirmware_3_0_1 = ATMOSPHERE_TARGET_FIRMWARE_3_0_1,
|
||||||
|
TargetFirmware_3_0_2 = ATMOSPHERE_TARGET_FIRMWARE_3_0_2,
|
||||||
|
TargetFirmware_4_0_0 = ATMOSPHERE_TARGET_FIRMWARE_4_0_0,
|
||||||
|
TargetFirmware_4_0_1 = ATMOSPHERE_TARGET_FIRMWARE_4_0_1,
|
||||||
|
TargetFirmware_4_1_0 = ATMOSPHERE_TARGET_FIRMWARE_4_1_0,
|
||||||
|
TargetFirmware_5_0_0 = ATMOSPHERE_TARGET_FIRMWARE_5_0_0,
|
||||||
|
TargetFirmware_5_0_1 = ATMOSPHERE_TARGET_FIRMWARE_5_0_1,
|
||||||
|
TargetFirmware_5_0_2 = ATMOSPHERE_TARGET_FIRMWARE_5_0_2,
|
||||||
|
TargetFirmware_5_1_0 = ATMOSPHERE_TARGET_FIRMWARE_5_1_0,
|
||||||
|
TargetFirmware_6_0_0 = ATMOSPHERE_TARGET_FIRMWARE_6_0_0,
|
||||||
|
TargetFirmware_6_0_1 = ATMOSPHERE_TARGET_FIRMWARE_6_0_1,
|
||||||
|
TargetFirmware_6_1_0 = ATMOSPHERE_TARGET_FIRMWARE_6_1_0,
|
||||||
|
TargetFirmware_6_2_0 = ATMOSPHERE_TARGET_FIRMWARE_6_2_0,
|
||||||
|
TargetFirmware_7_0_0 = ATMOSPHERE_TARGET_FIRMWARE_7_0_0,
|
||||||
|
TargetFirmware_7_0_1 = ATMOSPHERE_TARGET_FIRMWARE_7_0_1,
|
||||||
|
TargetFirmware_8_0_0 = ATMOSPHERE_TARGET_FIRMWARE_8_0_0,
|
||||||
|
TargetFirmware_8_0_1 = ATMOSPHERE_TARGET_FIRMWARE_8_0_1,
|
||||||
|
TargetFirmware_8_1_0 = ATMOSPHERE_TARGET_FIRMWARE_8_1_0,
|
||||||
|
TargetFirmware_8_1_1 = ATMOSPHERE_TARGET_FIRMWARE_8_1_1,
|
||||||
|
TargetFirmware_9_0_0 = ATMOSPHERE_TARGET_FIRMWARE_9_0_0,
|
||||||
|
TargetFirmware_9_0_1 = ATMOSPHERE_TARGET_FIRMWARE_9_0_1,
|
||||||
|
TargetFirmware_9_1_0 = ATMOSPHERE_TARGET_FIRMWARE_9_1_0,
|
||||||
|
TargetFirmware_9_2_0 = ATMOSPHERE_TARGET_FIRMWARE_9_2_0,
|
||||||
|
TargetFirmware_10_0_0 = ATMOSPHERE_TARGET_FIRMWARE_10_0_0,
|
||||||
|
TargetFirmware_10_0_1 = ATMOSPHERE_TARGET_FIRMWARE_10_0_1,
|
||||||
|
TargetFirmware_10_0_2 = ATMOSPHERE_TARGET_FIRMWARE_10_0_2,
|
||||||
|
|
||||||
|
TargetFirmware_Current = ATMOSPHERE_TARGET_FIRMWARE_CURRENT,
|
||||||
|
|
||||||
|
TargetFirmware_Max = ATMOSPHERE_TARGET_FIRMWARE_MAX,
|
||||||
|
};
|
||||||
|
static_assert(TargetFirmware_Current <= TargetFirmware_Max);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user