aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2021-11-28 18:44:39 +0100
committerIngo Molnar <mingo@kernel.org>2022-03-15 12:57:35 +0100
commit42c9be4fdfdbb72a0cfe0e3350ef6a142beb2222 (patch)
treec235dfb726089a8d4eddd1efa2ee11fb2595af19
parent05401c873d33c6342a176a08c87e27bd5a02ec1d (diff)
downloadtip-42c9be4fdfdbb72a0cfe0e3350ef6a142beb2222.tar.gz
headers/deps: uuid: Split <linux/uuid.h> into <linux/uuid_types.h> and <linux/uuid_api.h>
<linux/uuid.h> is small, but still included in a lot of other headers, and it indirectly includes <linux/string.h> which is not needed by most headers. In order to reduce this impact, we are splitting it into three parts: - <linux/uuid_types.h>: lightweight header with only type definitions. - <linux/uuid_api.h>: API declarations and inline functions. This header is inevitably more heavyweight. - <linux/uuid.h>: Simple default header that right now includes both the types and the API headers, but will only use the types header once all affected code is converted. No change in functionality. Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--include/linux/uuid.h96
-rw-r--r--include/linux/uuid_api.h96
-rw-r--r--include/linux/uuid_types.h19
3 files changed, 116 insertions, 95 deletions
diff --git a/include/linux/uuid.h b/include/linux/uuid.h
index 8cdc0d3567cddc..d2d0489d13315f 100644
--- a/include/linux/uuid.h
+++ b/include/linux/uuid.h
@@ -8,99 +8,7 @@
#ifndef _LINUX_UUID_H_
#define _LINUX_UUID_H_
-#include <uapi/linux/uuid.h>
-#include <linux/string.h>
-
-#define UUID_SIZE 16
-
-typedef struct {
- __u8 b[UUID_SIZE];
-} uuid_t;
-
-#define UUID_INIT(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
-((uuid_t) \
-{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \
- ((b) >> 8) & 0xff, (b) & 0xff, \
- ((c) >> 8) & 0xff, (c) & 0xff, \
- (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
-
-/*
- * The length of a UUID string ("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")
- * not including trailing NUL.
- */
-#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;
-}
-
-static inline void guid_copy(guid_t *dst, const guid_t *src)
-{
- memcpy(dst, src, sizeof(guid_t));
-}
-
-static inline void import_guid(guid_t *dst, const __u8 *src)
-{
- memcpy(dst, src, sizeof(guid_t));
-}
-
-static inline void export_guid(__u8 *dst, const guid_t *src)
-{
- memcpy(dst, src, sizeof(guid_t));
-}
-
-static inline bool guid_is_null(const 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;
-}
-
-static inline void uuid_copy(uuid_t *dst, const uuid_t *src)
-{
- memcpy(dst, src, sizeof(uuid_t));
-}
-
-static inline void import_uuid(uuid_t *dst, const __u8 *src)
-{
- memcpy(dst, src, sizeof(uuid_t));
-}
-
-static inline void export_uuid(__u8 *dst, const uuid_t *src)
-{
- memcpy(dst, src, sizeof(uuid_t));
-}
-
-static inline bool uuid_is_null(const uuid_t *uuid)
-{
- return uuid_equal(uuid, &uuid_null);
-}
-
-void generate_random_uuid(unsigned char uuid[16]);
-void generate_random_guid(unsigned char guid[16]);
-
-extern void guid_gen(guid_t *u);
-extern void uuid_gen(uuid_t *u);
-
-bool __must_check uuid_is_valid(const char *uuid);
-
-extern const u8 guid_index[16];
-extern const u8 uuid_index[16];
-
-int guid_parse(const char *uuid, guid_t *u);
-int uuid_parse(const char *uuid, uuid_t *u);
-
-/* backwards compatibility, don't use in new code */
-static inline int uuid_le_cmp(const guid_t u1, const guid_t u2)
-{
- return memcmp(&u1, &u2, sizeof(guid_t));
-}
+#include <linux/uuid_types.h>
+#include <linux/uuid_api.h>
#endif
diff --git a/include/linux/uuid_api.h b/include/linux/uuid_api.h
index badf637f2dec45..5be33263e076fc 100644
--- a/include/linux/uuid_api.h
+++ b/include/linux/uuid_api.h
@@ -1 +1,95 @@
-#include <linux/uuid.h>
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * UUID/GUID definition
+ *
+ * Copyright (C) 2010, 2016 Intel Corp.
+ * Huang Ying <ying.huang@intel.com>
+ */
+#ifndef _LINUX_UUID_API_H_
+#define _LINUX_UUID_API_H_
+
+#include <linux/uuid_types.h>
+
+#include <linux/string.h>
+
+#define UUID_INIT(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
+((uuid_t) \
+{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \
+ ((b) >> 8) & 0xff, (b) & 0xff, \
+ ((c) >> 8) & 0xff, (c) & 0xff, \
+ (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
+
+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;
+}
+
+static inline void guid_copy(guid_t *dst, const guid_t *src)
+{
+ memcpy(dst, src, sizeof(guid_t));
+}
+
+static inline void import_guid(guid_t *dst, const __u8 *src)
+{
+ memcpy(dst, src, sizeof(guid_t));
+}
+
+static inline void export_guid(__u8 *dst, const guid_t *src)
+{
+ memcpy(dst, src, sizeof(guid_t));
+}
+
+static inline bool guid_is_null(const 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;
+}
+
+static inline void uuid_copy(uuid_t *dst, const uuid_t *src)
+{
+ memcpy(dst, src, sizeof(uuid_t));
+}
+
+static inline void import_uuid(uuid_t *dst, const __u8 *src)
+{
+ memcpy(dst, src, sizeof(uuid_t));
+}
+
+static inline void export_uuid(__u8 *dst, const uuid_t *src)
+{
+ memcpy(dst, src, sizeof(uuid_t));
+}
+
+static inline bool uuid_is_null(const uuid_t *uuid)
+{
+ return uuid_equal(uuid, &uuid_null);
+}
+
+void generate_random_uuid(unsigned char uuid[16]);
+void generate_random_guid(unsigned char guid[16]);
+
+extern void guid_gen(guid_t *u);
+extern void uuid_gen(uuid_t *u);
+
+bool __must_check uuid_is_valid(const char *uuid);
+
+extern const u8 guid_index[16];
+extern const u8 uuid_index[16];
+
+int guid_parse(const char *uuid, guid_t *u);
+int uuid_parse(const char *uuid, uuid_t *u);
+
+/* backwards compatibility, don't use in new code */
+static inline int uuid_le_cmp(const guid_t u1, const guid_t u2)
+{
+ return memcmp(&u1, &u2, sizeof(guid_t));
+}
+
+#endif
diff --git a/include/linux/uuid_types.h b/include/linux/uuid_types.h
new file mode 100644
index 00000000000000..17016e15b97c24
--- /dev/null
+++ b/include/linux/uuid_types.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef _LINUX_UUID_TYPES_H_
+#define _LINUX_UUID_TYPES_H_
+
+#include <uapi/linux/uuid.h>
+
+#define UUID_SIZE 16
+
+typedef struct {
+ __u8 b[UUID_SIZE];
+} uuid_t;
+
+/*
+ * The length of a UUID string ("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")
+ * not including trailing NUL.
+ */
+#define UUID_STRING_LEN 36
+
+#endif