1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright (C) 1996, 1997, 1998 Theodore Ts'o.
7 * UUID related functions originally from libuuid
20 * Struct describing a Universal Unique Identifier
22 typedef unsigned char rte_uuid_t[16];
25 * Helper for defining UUID values for id tables.
27 #define RTE_UUID_INIT(a, b, c, d, e) { \
28 ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, \
29 ((a) >> 8) & 0xff, (a) & 0xff, \
30 ((b) >> 8) & 0xff, (b) & 0xff, \
31 ((c) >> 8) & 0xff, (c) & 0xff, \
32 ((d) >> 8) & 0xff, (d) & 0xff, \
33 ((e) >> 40) & 0xff, ((e) >> 32) & 0xff, \
34 ((e) >> 24) & 0xff, ((e) >> 16) & 0xff, \
35 ((e) >> 8) & 0xff, (e) & 0xff \
39 * Test if UUID is all zeros.
44 * true if uuid is NULL value, false otherwise
46 bool rte_uuid_is_null(const rte_uuid_t uu);
56 static inline void rte_uuid_copy(rte_uuid_t dst, const rte_uuid_t src)
58 memcpy(dst, src, sizeof(rte_uuid_t));
69 * returns an integer less than, equal to, or greater than zero if UUID a is
70 * is less than, equal, or greater than UUID b.
72 int rte_uuid_compare(const rte_uuid_t a, const rte_uuid_t b);
75 * Extract UUID from string
78 * Pointer to string of characters to convert
82 * Returns 0 on success, and -1 if string is not a valid UUID.
84 int rte_uuid_parse(const char *in, rte_uuid_t uu);
87 * Convert UUID to string
92 * Resulting string buffer
94 * Sizeof the available string buffer
96 #define RTE_UUID_STRLEN (36 + 1)
97 void rte_uuid_unparse(const rte_uuid_t uu, char *out, size_t len);
103 #endif /* RTE_UUID_H */