mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-05 19:02:14 +02:00
hosversion: Add hosversionBetween
This commit is contained in:
parent
af67b4adb1
commit
cd62b39275
@ -28,8 +28,8 @@ typedef enum {
|
|||||||
CompareResult_Unknown
|
CompareResult_Unknown
|
||||||
} CompareResult;
|
} CompareResult;
|
||||||
|
|
||||||
CompareResult cmpresNot(CompareResult in) {
|
static inline CompareResult cmpresNot(CompareResult in) {
|
||||||
// Does a not-operation. True maps to False, False maps to True. Unknown maps to Unknown.
|
// Does a boolean NOT operation.
|
||||||
switch (in) {
|
switch (in) {
|
||||||
case CompareResult_False:
|
case CompareResult_False:
|
||||||
return CompareResult_True;
|
return CompareResult_True;
|
||||||
@ -40,6 +40,19 @@ CompareResult cmpresNot(CompareResult in) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline CompareResult cmpresAnd(CompareResult a, CompareResult b) {
|
||||||
|
switch (a) {
|
||||||
|
case CompareResult_False:
|
||||||
|
return CompareResult_False;
|
||||||
|
case CompareResult_True:
|
||||||
|
return b;
|
||||||
|
case CompareResult_Unknown:
|
||||||
|
if (b != CompareResult_True)
|
||||||
|
return b;
|
||||||
|
return CompareResult_Unknown;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns true if the current HOS version is equal to or above the specified major/minor/micro version.
|
/// Returns true if the current HOS version is equal to or above the specified major/minor/micro version.
|
||||||
CompareResult hosversionAtLeast(u8 major, u8 minor, u8 micro);
|
CompareResult hosversionAtLeast(u8 major, u8 minor, u8 micro);
|
||||||
|
|
||||||
@ -47,3 +60,8 @@ CompareResult hosversionAtLeast(u8 major, u8 minor, u8 micro);
|
|||||||
static inline CompareResult hosversionBefore(u8 major, u8 minor, u8 micro) {
|
static inline CompareResult hosversionBefore(u8 major, u8 minor, u8 micro) {
|
||||||
return cmpresNot(hosversionAtLeast(major, minor, micro));
|
return cmpresNot(hosversionAtLeast(major, minor, micro));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns true if the current HOS version is between the two specified major versions, i.e. [major1, major2).
|
||||||
|
static inline CompareResult hosversionBetween(u8 major0, u8 minor0, u8 micro0, u8 major1, u8 minor1, u8 micro1) {
|
||||||
|
return cmpresAnd(hosversionAtLeast(major0, minor0, micro0), hosversionBefore(major1, minor1, micro1));
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user