summaryrefslogtreecommitdiffstats
path: root/include/linux/uuid.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-05-17 04:02:48 -0400
committerChristoph Hellwig <hch@lst.de>2017-06-05 10:58:59 -0400
commitf9727a17db9bab71ddae91f74f11a8a2f9a0ece6 (patch)
tree3d009fcaddd7ce14d1ddd2b6cefcaa33f5615b81 /include/linux/uuid.h
parent60927bc314363f91616c1f4577541c2a2e27aba3 (diff)
uuid: rename uuid types
Our "little endian" UUID really is a Wintel GUID, so rename it and its helpers such (guid_t). The big endian UUID is the only true one, so give it the name uuid_t. The uuid_le and uuid_be names are retained for now, but will hopefully go away soon. The exception to that are the _cmp helpers that will be replaced by better primitives ASAP and thus don't get the new names. Also the _to_bin helpers are named to match the better named uuid_parse routine in userspace. Also remove the existing typedef in XFS that's now been superceeded by the generic type name. Signed-off-by: Christoph Hellwig <hch@lst.de> [andy: also update the UUID_LE/UUID_BE macros including fallout] Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'include/linux/uuid.h')
-rw-r--r--include/linux/uuid.h55
1 files changed, 32 insertions, 23 deletions
diff --git a/include/linux/uuid.h b/include/linux/uuid.h
index 30fb13018e29..c2adb8046095 100644
--- a/include/linux/uuid.h
+++ b/include/linux/uuid.h
@@ -20,46 +20,55 @@
20 20
21typedef struct { 21typedef struct {
22 __u8 b[16]; 22 __u8 b[16];
23} uuid_be; 23} uuid_t;
24 24
25#define UUID_BE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ 25#define UUID_INIT(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
26((uuid_be) \ 26((uuid_t) \
27{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ 27{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \
28 ((b) >> 8) & 0xff, (b) & 0xff, \ 28 ((b) >> 8) & 0xff, (b) & 0xff, \
29 ((c) >> 8) & 0xff, (c) & 0xff, \ 29 ((c) >> 8) & 0xff, (c) & 0xff, \
30 (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) 30 (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
31 31
32#define NULL_UUID_BE \
33 UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
34 0x00, 0x00, 0x00, 0x00)
35
36/* 32/*
37 * The length of a UUID string ("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee") 33 * The length of a UUID string ("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")
38 * not including trailing NUL. 34 * not including trailing NUL.
39 */ 35 */
40#define UUID_STRING_LEN 36 36#define UUID_STRING_LEN 36
41 37
42static inline int uuid_le_cmp(const uuid_le u1, const uuid_le u2)
43{
44 return memcmp(&u1, &u2, sizeof(uuid_le));
45}
46
47static inline int uuid_be_cmp(const uuid_be u1, const uuid_be u2)
48{
49 return memcmp(&u1, &u2, sizeof(uuid_be));
50}
51
52void generate_random_uuid(unsigned char uuid[16]); 38void generate_random_uuid(unsigned char uuid[16]);
53 39
54extern void uuid_le_gen(uuid_le *u); 40extern void guid_gen(guid_t *u);
55extern void uuid_be_gen(uuid_be *u); 41extern void uuid_gen(uuid_t *u);
56 42
57bool __must_check uuid_is_valid(const char *uuid); 43bool __must_check uuid_is_valid(const char *uuid);
58 44
59extern const u8 uuid_le_index[16]; 45extern const u8 guid_index[16];
60extern const u8 uuid_be_index[16]; 46extern const u8 uuid_index[16];
47
48int guid_parse(const char *uuid, guid_t *u);
49int uuid_parse(const char *uuid, uuid_t *u);
61 50
62int uuid_le_to_bin(const char *uuid, uuid_le *u); 51/* backwards compatibility, don't use in new code */
63int uuid_be_to_bin(const char *uuid, uuid_be *u); 52typedef uuid_t uuid_be;
53#define UUID_BE(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
54 UUID_INIT(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7)
55#define NULL_UUID_BE \
56 UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
57 0x00, 0x00, 0x00, 0x00)
58
59#define uuid_le_gen(u) guid_gen(u)
60#define uuid_be_gen(u) uuid_gen(u)
61#define uuid_le_to_bin(guid, u) guid_parse(guid, u)
62#define uuid_be_to_bin(uuid, u) uuid_parse(uuid, u)
63
64static inline int uuid_le_cmp(const guid_t u1, const guid_t u2)
65{
66 return memcmp(&u1, &u2, sizeof(guid_t));
67}
68
69static inline int uuid_be_cmp(const uuid_t u1, const uuid_t u2)
70{
71 return memcmp(&u1, &u2, sizeof(uuid_t));
72}
64 73
65#endif 74#endif