| 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
| 2 | /* |
| 3 | * Copyright (C) 2011, 2015 Red Hat, Inc. |
| 4 | */ |
| 5 | |
| 6 | #ifndef __NM_VERSION_MACROS_H__ |
| 7 | #define __NM_VERSION_MACROS_H__ |
| 8 | |
| 9 | /* This header must not include glib or libnm. */ |
| 10 | |
| 11 | /** |
| 12 | * NM_MAJOR_VERSION: |
| 13 | * |
| 14 | * Evaluates to the major version number of NetworkManager which this source |
| 15 | * is compiled against. |
| 16 | */ |
| 17 | #define NM_MAJOR_VERSION (1) |
| 18 | |
| 19 | /** |
| 20 | * NM_MINOR_VERSION: |
| 21 | * |
| 22 | * Evaluates to the minor version number of NetworkManager which this source |
| 23 | * is compiled against. |
| 24 | */ |
| 25 | #define NM_MINOR_VERSION (36) |
| 26 | |
| 27 | /** |
| 28 | * NM_MICRO_VERSION: |
| 29 | * |
| 30 | * Evaluates to the micro version number of NetworkManager which this source |
| 31 | * compiled against. |
| 32 | */ |
| 33 | #define NM_MICRO_VERSION (6) |
| 34 | |
| 35 | /** |
| 36 | * NM_CHECK_VERSION: |
| 37 | * @major: major version (e.g. 1 for version 1.2.5) |
| 38 | * @minor: minor version (e.g. 2 for version 1.2.5) |
| 39 | * @micro: micro version (e.g. 5 for version 1.2.5) |
| 40 | * |
| 41 | * Returns: %TRUE if the version of the NetworkManager header files |
| 42 | * is the same as or newer than the passed-in version. |
| 43 | */ |
| 44 | #define NM_CHECK_VERSION(major,minor,micro) \ |
| 45 | (NM_MAJOR_VERSION > (major) || \ |
| 46 | (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION > (minor)) || \ |
| 47 | (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION == (minor) && NM_MICRO_VERSION >= (micro))) |
| 48 | |
| 49 | |
| 50 | #define NM_ENCODE_VERSION(major,minor,micro) ((major) << 16 | (minor) << 8 | (micro)) |
| 51 | |
| 52 | #define NM_VERSION_0_9_8 (NM_ENCODE_VERSION (0, 9, 8)) |
| 53 | #define NM_VERSION_0_9_10 (NM_ENCODE_VERSION (0, 9, 10)) |
| 54 | #define NM_VERSION_1_0 (NM_ENCODE_VERSION (1, 0, 0)) |
| 55 | #define NM_VERSION_1_2 (NM_ENCODE_VERSION (1, 2, 0)) |
| 56 | #define NM_VERSION_1_4 (NM_ENCODE_VERSION (1, 4, 0)) |
| 57 | #define NM_VERSION_1_6 (NM_ENCODE_VERSION (1, 6, 0)) |
| 58 | #define NM_VERSION_1_8 (NM_ENCODE_VERSION (1, 8, 0)) |
| 59 | #define NM_VERSION_1_10 (NM_ENCODE_VERSION (1, 10, 0)) |
| 60 | #define NM_VERSION_1_12 (NM_ENCODE_VERSION (1, 12, 0)) |
| 61 | #define NM_VERSION_1_14 (NM_ENCODE_VERSION (1, 14, 0)) |
| 62 | #define NM_VERSION_1_16 (NM_ENCODE_VERSION (1, 16, 0)) |
| 63 | #define NM_VERSION_1_18 (NM_ENCODE_VERSION (1, 18, 0)) |
| 64 | #define NM_VERSION_1_20 (NM_ENCODE_VERSION (1, 20, 0)) |
| 65 | #define NM_VERSION_1_22 (NM_ENCODE_VERSION (1, 22, 0)) |
| 66 | #define NM_VERSION_1_24 (NM_ENCODE_VERSION (1, 24, 0)) |
| 67 | #define NM_VERSION_1_26 (NM_ENCODE_VERSION (1, 26, 0)) |
| 68 | #define NM_VERSION_1_28 (NM_ENCODE_VERSION (1, 28, 0)) |
| 69 | #define NM_VERSION_1_30 (NM_ENCODE_VERSION (1, 30, 0)) |
| 70 | #define NM_VERSION_1_32 (NM_ENCODE_VERSION (1, 32, 0)) |
| 71 | #define NM_VERSION_1_34 (NM_ENCODE_VERSION (1, 34, 0)) |
| 72 | #define NM_VERSION_1_36 (NM_ENCODE_VERSION (1, 36, 0)) |
| 73 | |
| 74 | /* For releases, NM_API_VERSION is equal to NM_VERSION. |
| 75 | * |
| 76 | * For development builds, NM_API_VERSION is the next |
| 77 | * stable API after NM_VERSION. When you run a development |
| 78 | * version, you are already using the future API, even if |
| 79 | * it is not yet released. Hence, the currently used API |
| 80 | * version is the future one. */ |
| 81 | #define NM_API_VERSION \ |
| 82 | (((NM_MINOR_VERSION % 2) == 1) \ |
| 83 | ? NM_ENCODE_VERSION (NM_MAJOR_VERSION, NM_MINOR_VERSION + 1, 0 ) \ |
| 84 | : NM_ENCODE_VERSION (NM_MAJOR_VERSION, NM_MINOR_VERSION , ((NM_MICRO_VERSION + 1) / 2) * 2)) |
| 85 | |
| 86 | /* deprecated. */ |
| 87 | #define NM_VERSION_CUR_STABLE NM_API_VERSION |
| 88 | |
| 89 | /* deprecated. */ |
| 90 | #define NM_VERSION_NEXT_STABLE NM_API_VERSION |
| 91 | |
| 92 | #define NM_VERSION NM_ENCODE_VERSION (NM_MAJOR_VERSION, NM_MINOR_VERSION, NM_MICRO_VERSION) |
| 93 | |
| 94 | #endif /* __NM_VERSION_MACROS_H__ */ |
| 95 | |