| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #ifndef CCAN_VERSION_H |
| #define CCAN_VERSION_H |
| |
| #include <stdint.h> |
| |
| struct version { |
| uint32_t _v; |
| }; |
| |
| |
| |
| |
| |
| static inline uint16_t version_major(struct version v) { |
| return (v._v & 0xFFFF0000) >> 16; |
| } |
| |
| |
| |
| |
| |
| static inline uint16_t version_minor(const struct version v) { |
| return v._v & 0xFFFF; |
| } |
| |
| |
| |
| |
| |
| |
| static inline struct version version(uint16_t major, uint16_t minor) |
| { |
| struct version v = { ._v = major << 16 | minor }; |
| return v; |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| static inline int version_cmp(struct version a, struct version b) |
| { |
| return (a._v == b._v) ? 0 : (a._v > b._v) ? 1 : - 1; |
| } |
| |
| #endif |