From f0d14ad87ad10d4d4efadced3c7a3640d87be296 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 26 Feb 2018 00:34:11 -0500 Subject: [PATCH] package2: Separate MAXVER and MINVER maximums from the version numbers Inevitably, when there's a version update, this will need to be incremented. Therefore, we make the maximums separate from the version numbers and use a separate define to indicate that. --- exosphere/src/configitem.c | 2 +- exosphere/src/package2.c | 2 +- exosphere/src/package2.h | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/exosphere/src/configitem.c b/exosphere/src/configitem.c index ed5a3221a..eb08a8c6a 100644 --- a/exosphere/src/configitem.c +++ b/exosphere/src/configitem.c @@ -52,7 +52,7 @@ uint32_t configitem_get(enum ConfigItem item, uint64_t *p_outvalue) { break; case CONFIGITEM_VERSION: /* Always returns maxver - 1 on hardware. */ - *p_outvalue = PACKAGE2_MAXVER_400_CURRENT - 1; + *p_outvalue = PACKAGE2_MAXVER_CURRENT - 1; break; case CONFIGITEM_HARDWARETYPE: *p_outvalue = fuse_get_hardware_type(); diff --git a/exosphere/src/package2.c b/exosphere/src/package2.c index 7c96d1ee0..9d9db9204 100644 --- a/exosphere/src/package2.c +++ b/exosphere/src/package2.c @@ -271,7 +271,7 @@ static bool validate_package2_metadata(package2_meta_t *metadata) { /* Perform version checks. */ /* We will be compatible with all package2s released before current, but not newer ones. */ - if (metadata->version_max >= PACKAGE2_MINVER_THEORETICAL && metadata->version_min < PACKAGE2_MAXVER_400_CURRENT) { + if (metadata->version_max >= PACKAGE2_MINVER_THEORETICAL && metadata->version_min < PACKAGE2_MAXVER_CURRENT) { return false; } diff --git a/exosphere/src/package2.h b/exosphere/src/package2.h index f32fa8d8b..5f61a0c92 100644 --- a/exosphere/src/package2.h +++ b/exosphere/src/package2.h @@ -30,18 +30,22 @@ #define PACKAGE2_SIZE_MAX 0x7FC000 #define PACKAGE2_SECTION_MAX 0x3 -#define PACKAGE2_MINVER_THEORETICAL 0x0 #define PACKAGE2_MAXVER_100 0x2 #define PACKAGE2_MAXVER_200 0x3 #define PACKAGE2_MAXVER_300 0x4 #define PACKAGE2_MAXVER_302 0x5 -#define PACKAGE2_MAXVER_400_CURRENT 0x6 +#define PACKAGE2_MAXVER_400 0x6 +/* NOTE: This define should be updated if a newer MAXVER is added */ +#define PACKAGE2_MAXVER_CURRENT PACKAGE2_MAXVER_400 +#define PACKAGE2_MINVER_THEORETICAL 0x0 #define PACKAGE2_MINVER_100 0x3 #define PACKAGE2_MINVER_200 0x4 #define PACKAGE2_MINVER_300 0x5 #define PACKAGE2_MINVER_302 0x6 -#define PACKAGE2_MINVER_400_CURRENT 0x7 +#define PACKAGE2_MINVER_400 0x7 +/* NOTE: This define should be updated if a newer MINVER is added */ +#define PACKAGE2_MINVER_CURRENT PACKAGE2_MINVER_400 #pragma pack(push, 1)