aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2023-05-23 23:15:12 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2023-06-26 09:20:27 +0000
commitbd0b4de28d6b1fb598b0e2bd5f3713ac427cbda7 (patch)
tree357daeca6662f9da7abf4646424a79bc78e4f911
parent523d17b262905c8dab686025edc337d91c0f3a86 (diff)
downloadsrc-bd0b4de28d6b1fb598b0e2bd5f3713ac427cbda7.tar.gz
src-bd0b4de28d6b1fb598b0e2bd5f3713ac427cbda7.zip
LinuxKPI: uuid: add guid_gen() and guid_copy()
Add function used by a wireless driver. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D40249 (cherry picked from commit c1b6e9121e889608b86530d1a37047797dfeb460)
-rw-r--r--sys/compat/linuxkpi/common/include/linux/uuid.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/uuid.h b/sys/compat/linuxkpi/common/include/linux/uuid.h
index 31a018497f78..63b77dd7d0bc 100644
--- a/sys/compat/linuxkpi/common/include/linux/uuid.h
+++ b/sys/compat/linuxkpi/common/include/linux/uuid.h
@@ -1,7 +1,7 @@
/*-
* SPDX-License-Identifier: BSD-2-Clause
*
- * Copyright (c) 2021 The FreeBSD Foundation
+ * Copyright (c) 2021,2023 The FreeBSD Foundation
*
* This software was developed by Björn Zeeb under sponsorship from
* the FreeBSD Foundation.
@@ -33,6 +33,8 @@
#ifndef _LINUXKPI_LINUX_UUID_H
#define _LINUXKPI_LINUX_UUID_H
+#include <linux/random.h>
+
#define UUID_STRING_LEN 36
#define GUID_INIT(x0_3, x4_5, x6_7, x8, x9, x10, x11, x12, x13, x14, x15) \
@@ -59,4 +61,19 @@ typedef struct {
char x[16];
} guid_t;
+static inline void
+guid_gen(guid_t *g)
+{
+
+ get_random_bytes(g, 16);
+ g->x[7] = (g->x[7] & 0x0f) | 0x40;
+ g->x[8] = (g->x[8] & 0x3f) | 0x80;
+}
+
+static inline void
+guid_copy(guid_t *dst, const guid_t *src)
+{
+ memcpy(dst, src, sizeof(*dst));
+}
+
#endif /* _LINUXKPI_LINUX_UUID_H */