ams: revamp target firmware
This commit is contained in:
@@ -21,34 +21,18 @@
|
||||
|
||||
namespace ams::exosphere {
|
||||
|
||||
#define AMS_DEFINE_TARGET_FIRMWARE_ENUM(n) TargetFirmware_##n = ATMOSPHERE_TARGET_FIRMWARE_##n
|
||||
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
|
||||
using TargetFirmware = ams::TargetFirmware;
|
||||
|
||||
constexpr ALWAYS_INLINE u32 GetVersion(u32 major, u32 minor, u32 micro) {
|
||||
return (major << 16) | (minor << 8) | (micro);
|
||||
}
|
||||
|
||||
struct ApiInfo {
|
||||
using MasterKeyRevision = util::BitPack64::Field<0, 8, u32>;
|
||||
using TargetFirmwareVersion = util::BitPack64::Field<MasterKeyRevision::Next, 8, TargetFirmware>;
|
||||
using MicroVersion = util::BitPack64::Field<TargetFirmwareVersion::Next, 8, u32>;
|
||||
using MinorVersion = util::BitPack64::Field<MicroVersion::Next, 8, u32>;
|
||||
using MajorVersion = util::BitPack64::Field<MinorVersion::Next, 8, u32>;
|
||||
using TargetFirmwareVersion = util::BitPack64::Field<0, 32, TargetFirmware>;
|
||||
using MasterKeyRevision = 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 MajorVersion = util::BitPack64::Field<MinorVersion::Next, 8, u32>;
|
||||
|
||||
util::BitPack64 value;
|
||||
|
||||
|
||||
@@ -19,22 +19,47 @@
|
||||
|
||||
namespace ams::hos {
|
||||
|
||||
enum Version : u16 {
|
||||
Version_Min = 0,
|
||||
Version_1_0_0 = Version_Min,
|
||||
Version_2_0_0 = 1,
|
||||
Version_3_0_0 = 2,
|
||||
Version_4_0_0 = 3,
|
||||
Version_5_0_0 = 4,
|
||||
Version_6_0_0 = 5,
|
||||
Version_7_0_0 = 6,
|
||||
Version_8_0_0 = 7,
|
||||
Version_8_1_0 = 8,
|
||||
Version_9_0_0 = 9,
|
||||
Version_9_1_0 = 10,
|
||||
Version_10_0_0 = 11,
|
||||
Version_Current = Version_10_0_0,
|
||||
Version_Max = 32,
|
||||
enum Version : u32 {
|
||||
Version_Min = ::ams::TargetFirmware_Min,
|
||||
|
||||
Version_1_0_0 = ::ams::TargetFirmware_1_0_0,
|
||||
Version_2_0_0 = ::ams::TargetFirmware_2_0_0,
|
||||
Version_2_1_0 = ::ams::TargetFirmware_2_1_0,
|
||||
Version_2_2_0 = ::ams::TargetFirmware_2_2_0,
|
||||
Version_2_3_0 = ::ams::TargetFirmware_2_3_0,
|
||||
Version_3_0_0 = ::ams::TargetFirmware_3_0_0,
|
||||
Version_3_0_1 = ::ams::TargetFirmware_3_0_1,
|
||||
Version_3_0_2 = ::ams::TargetFirmware_3_0_2,
|
||||
Version_4_0_0 = ::ams::TargetFirmware_4_0_0,
|
||||
Version_4_0_1 = ::ams::TargetFirmware_4_0_1,
|
||||
Version_4_1_0 = ::ams::TargetFirmware_4_1_0,
|
||||
Version_5_0_0 = ::ams::TargetFirmware_5_0_0,
|
||||
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;
|
||||
}
|
||||
};
|
||||
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 {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user