]>
Commit | Line | Data |
---|---|---|
87d2c1ff LP |
1 | /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ |
2 | ||
3 | #ifndef fooid128hfoo | |
4 | #define fooid128hfoo | |
5 | ||
6 | /*** | |
7 | This file is part of systemd. | |
8 | ||
9 | Copyright 2011 Lennart Poettering | |
10 | ||
11 | systemd is free software; you can redistribute it and/or modify it | |
12 | under the terms of the GNU General Public License as published by | |
13 | the Free Software Foundation; either version 2 of the License, or | |
14 | (at your option) any later version. | |
15 | ||
16 | systemd is distributed in the hope that it will be useful, but | |
17 | WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
19 | General Public License for more details. | |
20 | ||
21 | You should have received a copy of the GNU General Public License | |
22 | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
23 | ***/ | |
24 | ||
25 | #include <inttypes.h> | |
26 | #include <stdbool.h> | |
27 | #include <string.h> | |
28 | ||
29 | typedef union sd_id128 sd_id128_t; | |
30 | ||
31 | union sd_id128 { | |
32 | uint8_t bytes[16]; | |
33 | uint64_t qwords[2]; | |
34 | }; | |
35 | ||
36 | char *sd_id128_to_string(sd_id128_t id, char s[33]); | |
37 | ||
38 | int sd_id128_from_string(const char s[33], sd_id128_t *ret); | |
39 | ||
40 | int sd_id128_randomize(sd_id128_t *ret); | |
41 | ||
42 | sd_id128_t sd_id128_make_v4_uuid(sd_id128_t id); | |
43 | ||
44 | int sd_id128_get_machine(sd_id128_t *ret); | |
45 | ||
46 | int sd_id128_get_boot(sd_id128_t *ret); | |
47 | ||
48 | #define SD_ID128_MAKE(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) \ | |
49 | ((sd_id128_t) { .bytes = { 0x##v0, 0x##v1, 0x##v2, 0x##v3, 0x##v4, 0x##v5, 0x##v6, 0x##v7, \ | |
50 | 0x##v8, 0x##v9, 0x##v10, 0x##v11, 0x##v12, 0x##v13, 0x##v14, 0x##v15 }}) | |
51 | ||
52 | static inline bool sd_id128_equal(sd_id128_t a, sd_id128_t b) { | |
53 | return memcmp(&a, &b, 16) == 0; | |
54 | } | |
55 | ||
56 | #endif |