]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - lib/uuid.c
m68k: cache: add an empty stub functions for invalidate/flush dcache
[karo-tx-uboot.git] / lib / uuid.c
index 44d0c932ac507c12276616b9e9c0afa19d6728f7..f6b442355170927c207d5087e29e1241efc9c09f 100644 (file)
@@ -4,6 +4,7 @@
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
+#include <common.h>
 #include <linux/ctype.h>
 #include <errno.h>
 #include <common.h>
@@ -171,7 +172,7 @@ void uuid_bin_to_str(unsigned char *uuid_bin, char *uuid_str, int str_format)
  *
  * @param uuid_bin - pointer to allocated array [16B]. Output is in big endian.
 */
-#ifdef CONFIG_RANDOM_UUID
+#if defined(CONFIG_RANDOM_UUID) || defined(CONFIG_CMD_UUID)
 void gen_rand_uuid(unsigned char *uuid_bin)
 {
        struct uuid uuid;
@@ -210,4 +211,45 @@ void gen_rand_uuid_str(char *uuid_str, int str_format)
        /* Convert UUID bin to UUID or GUID formated STRING  */
        uuid_bin_to_str(uuid_bin, uuid_str, str_format);
 }
-#endif
+
+#ifdef CONFIG_CMD_UUID
+int do_uuid(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+       char uuid[UUID_STR_LEN + 1];
+       int str_format;
+
+       if (!strcmp(argv[0], "uuid"))
+               str_format = UUID_STR_FORMAT_STD;
+       else
+               str_format = UUID_STR_FORMAT_GUID;
+
+       if (argc > 2)
+               return CMD_RET_USAGE;
+
+       gen_rand_uuid_str(uuid, str_format);
+
+       if (argc == 1)
+               printf("%s\n", uuid);
+       else
+               setenv(argv[1], uuid);
+
+       return CMD_RET_SUCCESS;
+}
+
+U_BOOT_CMD(uuid, CONFIG_SYS_MAXARGS, 1, do_uuid,
+          "UUID - generate random Universally Unique Identifier",
+          "[<varname>]\n"
+          "Argument:\n"
+          "varname: for set result in a environment variable\n"
+          "e.g. uuid uuid_env"
+);
+
+U_BOOT_CMD(guid, CONFIG_SYS_MAXARGS, 1, do_uuid,
+          "GUID - generate Globally Unique Identifier based on random UUID",
+          "[<varname>]\n"
+          "Argument:\n"
+          "varname: for set result in a environment variable\n"
+          "e.g. guid guid_env"
+);
+#endif /* CONFIG_CMD_UUID */
+#endif /* CONFIG_RANDOM_UUID || CONFIG_CMD_UUID */