Utilities for creating version info and checks.
More...
|
Utilities for encoding a version from its components.
|
| #define | KOS_VERSION_MAKE(major, minor, patch) (((major) << 16) | ((minor) << 8) | (patch)) |
| | Creates a version identifier from its constituents.
|
| |
| #define | KOS_VERSION_MAKE_STRING(major, minor, patch) |
| | Creates a version string from its constituents.
|
| |
|
Utilities for creating version checks.
|
| #define | KOS_VERSION_MAKE_COMPARISON(major, minor, patch, op, version) (KOS_VERSION_MAKE(major, minor, patch) op (version & 0xffffff)) |
| | Creates a generic check against a given version.
|
| |
| #define | KOS_VERSION_MAKE_ABOVE(major, minor, patch, version) (KOS_VERSION_MAKE_COMPARISON(major, minor, patch, <, version)) |
| | Creates a check for being above a given version.
|
| |
| #define | KOS_VERSION_MAKE_MIN(major, minor, patch, version) (KOS_VERSION_MAKE_COMPARISON(major, minor, patch, <=, version)) |
| | Creates a minimum version check.
|
| |
| #define | KOS_VERSION_MAKE_IS(major, minor, patch, version) (KOS_VERSION_MAKE_COMPARISON(major, minor, patch, ==, version)) |
| | Creates an exact version check.
|
| |
| #define | KOS_VERSION_MAKE_MAX(major, minor, patch, version) (KOS_VERSION_MAKE_COMPARISON(major, minor, patch, >=, version)) |
| | Creates a maximum version check.
|
| |
| #define | KOS_VERSION_MAKE_BELOW(major, minor, patch, version) (KOS_VERSION_MAKE_COMPARISON(major, minor, patch, >, version)) |
| | Creates a check for being below a given version.
|
| |
Utilities for creating version info and checks.
These are generalized utilities for construction of version info at compile-time. They are what KOS uses internally, but they can also be used externally to generate version info and version check utilities for your application.
- Note
- The ranges for the components of a version ID are as follows:
| Component | Bits | Range |
| Major | 8 | 0-255 |
| Minor | 8 | 0-255 |
| Patch | 8 | 0-255 |
◆ KOS_VERSION_MAKE
| #define KOS_VERSION_MAKE |
( |
| major, |
|
|
| minor, |
|
|
| patch ) (((major) << 16) | ((minor) << 8) | (patch)) |
Creates a version identifier from its constituents.
Used to create a version identifier at compile-time from its components.
- Parameters
-
| major | Major version component. |
| minor | Minor version component. |
| patch | Patch version component. |
- Returns
- Packed version identifier.
◆ KOS_VERSION_MAKE_ABOVE
Creates a check for being above a given version.
Used to create a compile-time greater-than check against another version.
- Note
- Simply wrap this in a function to implement a runtime check.
- Parameters
-
| major | Major version component. |
| minor | Minor version component. |
| patch | Patch version component. |
| version | The reference version ID. |
- Return values
-
| true | The given version is above version. |
| false | The given version is at or below version. |
◆ KOS_VERSION_MAKE_BELOW
Creates a check for being below a given version.
Used to create a compile-time less-than check against another version.
- Note
- Simply wrap this in a function to implement a runtime check.
- Parameters
-
| major | Major version component. |
| minor | Minor version component. |
| patch | Patch version component. |
| version | The reference version ID. |
- Return values
-
| true | The given version is below version. |
| false | The given version is at or above version. |
◆ KOS_VERSION_MAKE_COMPARISON
| #define KOS_VERSION_MAKE_COMPARISON |
( |
| major, |
|
|
| minor, |
|
|
| patch, |
|
|
| op, |
|
|
| version ) (KOS_VERSION_MAKE(major, minor, patch) op (version & 0xffffff)) |
Creates a generic check against a given version.
Bottom-level macro used to create all compile-time comparison checks against other versions.
- Parameters
-
| major | Major version component. |
| minor | Minor version component. |
| patch | Patch version component. |
| op | Integer comparison operator (<=, >=, !=, ==, etc)/ |
| version | Encoded version to compare against. |
- Returns
- Boolean value for the given version compared against
version using op.
◆ KOS_VERSION_MAKE_IS
Creates an exact version check.
Used to create a compile-time exact version check.
- Note
- Simply wrap this in a function to implement a runtime check.
- Parameters
-
| major | Major version component. |
| minor | Minor version component. |
| patch | Patch version component. |
| version | The exact version ID to match. |
- Return values
-
| true | The given version matches version exactly. |
| false | The given version does not match version. |
◆ KOS_VERSION_MAKE_MAX
Creates a maximum version check.
Used to create a compile-time maximum version check.
- Note
- Simply wrap this in a function to implement a runtime check.
- Parameters
-
| major | Major version component. |
| minor | Minor version component. |
| patch | Patch version component. |
| version | The maximum version ID. |
- Return values
-
| true | The given version is at or below version. |
| false | The given version is above version. |
◆ KOS_VERSION_MAKE_MIN
Creates a minimum version check.
Used to create a compile-time minimum version check.
- Note
- Simply wrap this in a function to implement a runtime check.
- Parameters
-
| major | Major version component. |
| minor | Minor version component. |
| patch | Patch version component. |
| version | The minimum version ID. |
- Return values
-
| true | The given version is at or above version. |
| false | The given version is below version. |
◆ KOS_VERSION_MAKE_STRING
| #define KOS_VERSION_MAKE_STRING |
( |
| major, |
|
|
| minor, |
|
|
| patch ) |
Value:
__stringify(minor) "." \
__stringify(patch)
#define __stringify(arg)
Create a string from the argument.
Definition cdefs.h:286
Creates a version string from its constituents.
Used to create a compile-time string literal from version components.
- Parameters
-
| major | Major version component. |
| minor | Minor version component. |
| patch | patch versoin component. |
- Returns
NULL-terminated C string literal in the format major.minor.patch