summaryrefslogtreecommitdiffstats
path: root/include/linux/uuid.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-05-11 09:01:42 +0200
committerChristoph Hellwig <hch@lst.de>2017-06-05 16:59:05 +0200
commitef40dda5bbc310f6517082c0ff002913104358cd (patch)
treeac178c2745191dd43bcd32daa1de3b5616e39bf2 /include/linux/uuid.h
parentdf33767d9fe0ca93c606cc9042df05e5045c8158 (diff)
downloadlinux-ef40dda5bbc310f6517082c0ff002913104358cd.tar.gz
linux-ef40dda5bbc310f6517082c0ff002913104358cd.tar.bz2
linux-ef40dda5bbc310f6517082c0ff002913104358cd.zip
uuid: hoist uuid_is_null() helper from libnvdimm
Hoist the libnvdimm helper as an inline helper to linux/uuid.h using an auxiliary const variable uuid_null in lib/uuid.c. [hch: also add the guid variant. Both do the same but I'd like to keep casts to a minimum] The common helper uses the new abstract type uuid_t * instead of u8 *. Suggested-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Amir Goldstein <amir73il@gmail.com> [hch: added guid_is_null] Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Diffstat (limited to 'include/linux/uuid.h')
-rw-r--r--include/linux/uuid.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/uuid.h b/include/linux/uuid.h
index 777f9cb01eb1..75f7182d5360 100644
--- a/include/linux/uuid.h
+++ b/include/linux/uuid.h
@@ -35,6 +35,9 @@ typedef struct {
*/
#define UUID_STRING_LEN 36
+extern const guid_t guid_null;
+extern const uuid_t uuid_null;
+
static inline bool guid_equal(const guid_t *u1, const guid_t *u2)
{
return memcmp(u1, u2, sizeof(guid_t)) == 0;
@@ -45,6 +48,11 @@ static inline void guid_copy(guid_t *dst, const guid_t *src)
memcpy(dst, src, sizeof(guid_t));
}
+static inline bool guid_is_null(guid_t *guid)
+{
+ return guid_equal(guid, &guid_null);
+}
+
static inline bool uuid_equal(const uuid_t *u1, const uuid_t *u2)
{
return memcmp(u1, u2, sizeof(uuid_t)) == 0;
@@ -55,6 +63,11 @@ static inline void uuid_copy(uuid_t *dst, const uuid_t *src)
memcpy(dst, src, sizeof(uuid_t));
}
+static inline bool uuid_is_null(uuid_t *uuid)
+{
+ return uuid_equal(uuid, &uuid_null);
+}
+
void generate_random_uuid(unsigned char uuid[16]);
extern void guid_gen(guid_t *u);