Replace the use of libuuid with U-Boot's own UUID library. This prepares
us to add support for generating v5 GUIDs.

Signed-off-by: Caleb Connolly <caleb.conno...@linaro.org>
---
 tools/Makefile       |  8 ++++----
 tools/mkeficapsule.c | 53 ++++++----------------------------------------------
 2 files changed, 10 insertions(+), 51 deletions(-)

diff --git a/tools/Makefile b/tools/Makefile
index 6a4280e3668f..ee08a9675df8 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -245,14 +245,14 @@ hostprogs-$(CONFIG_ASN1_COMPILER) += asn1_compiler
 HOSTCFLAGS_asn1_compiler.o = -idirafter $(srctree)/include
 
 HOSTCFLAGS_mkeficapsule.o += \
        $(shell pkg-config --cflags gnutls 2> /dev/null || echo "")
-HOSTCFLAGS_mkeficapsule.o += \
-       $(shell pkg-config --cflags uuid 2> /dev/null || echo "")
 HOSTLDLIBS_mkeficapsule += \
        $(shell pkg-config --libs gnutls 2> /dev/null || echo "-lgnutls")
-HOSTLDLIBS_mkeficapsule += \
-       $(shell pkg-config --libs uuid 2> /dev/null || echo "-luuid")
+mkeficapsule-objs := generated/lib/uuid.o \
+       generated/lib/sha1.o \
+       $(LIBFDT_OBJS) \
+       mkeficapsule.o
 hostprogs-$(CONFIG_TOOLS_MKEFICAPSULE) += mkeficapsule
 
 mkfwumdata-objs := mkfwumdata.o generated/lib/crc32.o
 HOSTLDLIBS_mkfwumdata += -luuid
diff --git a/tools/mkeficapsule.c b/tools/mkeficapsule.c
index 6a261ff549dc..54fb4dee3ee5 100644
--- a/tools/mkeficapsule.c
+++ b/tools/mkeficapsule.c
@@ -14,14 +14,15 @@
 #include <linux/types.h>
 
 #include <sys/stat.h>
 #include <sys/types.h>
-#include <uuid/uuid.h>
 
 #include <gnutls/gnutls.h>
 #include <gnutls/pkcs7.h>
 #include <gnutls/abstract.h>
 
+#include <u-boot/uuid.h>
+
 #include "eficapsule.h"
 
 static const char *tool_name = "mkeficapsule";
 
@@ -573,39 +574,8 @@ err:
 
        return ret;
 }
 
-/**
- * convert_uuid_to_guid() - convert UUID to GUID
- * @buf:       UUID binary
- *
- * UUID and GUID have the same data structure, but their binary
- * formats are different due to the endianness. See lib/uuid.c.
- * Since uuid_parse() can handle only UUID, this function must
- * be called to get correct data for GUID when parsing a string.
- *
- * The correct data will be returned in @buf.
- */
-void convert_uuid_to_guid(unsigned char *buf)
-{
-       unsigned char c;
-
-       c = buf[0];
-       buf[0] = buf[3];
-       buf[3] = c;
-       c = buf[1];
-       buf[1] = buf[2];
-       buf[2] = c;
-
-       c = buf[4];
-       buf[4] = buf[5];
-       buf[5] = c;
-
-       c = buf[6];
-       buf[6] = buf[7];
-       buf[7] = c;
-}
-
 static int create_empty_capsule(char *path, efi_guid_t *guid, bool fw_accept)
 {
        struct efi_capsule_header header = { 0 };
        FILE *f = NULL;
@@ -649,22 +619,12 @@ err:
 }
 
 static void print_guid(void *ptr)
 {
-       int i;
-       efi_guid_t *guid = ptr;
-       const uint8_t seq[] = {
-               3, 2, 1, 0, '-', 5, 4, '-', 7, 6,
-               '-', 8, 9, '-', 10, 11, 12, 13, 14, 15 };
+       static char buf[37] = { 0 };
 
-       for (i = 0; i < ARRAY_SIZE(seq); i++) {
-               if (seq[i] == '-')
-                       putchar(seq[i]);
-               else
-                       printf("%02X", guid->b[seq[i]]);
-       }
-
-       printf("\n");
+       uuid_bin_to_str(ptr, buf, UUID_STR_FORMAT_GUID|UUID_STR_UPPER_CASE);
+       printf("%s\n", buf);
 }
 
 static uint32_t dump_fmp_payload_header(
        struct fmp_payload_header *fmp_payload_hdr)
@@ -902,13 +862,12 @@ int main(int argc, char **argv)
                                fprintf(stderr,
                                        "Image type already specified\n");
                                exit(EXIT_FAILURE);
                        }
-                       if (uuid_parse(optarg, uuid_buf)) {
+                       if (uuid_str_to_bin(optarg, uuid_buf, 
UUID_STR_FORMAT_GUID)) {
                                fprintf(stderr, "Wrong guid format\n");
                                exit(EXIT_FAILURE);
                        }
-                       convert_uuid_to_guid(uuid_buf);
                        guid = (efi_guid_t *)uuid_buf;
                        break;
                case 'i':
                        index = strtoul(optarg, NULL, 0);

-- 
2.45.2

Reply via email to