From: Przemyslaw Marczak Date: Thu, 20 Feb 2014 11:17:05 +0000 (+0100) Subject: MAINLINE cmd:gpt: randomly generate each partition uuid if undefined X-Git-Tag: submit/tizen/20140328.090301~19 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a806f11329ff2e4c82a96b56951484c2031f452f;p=kernel%2Fu-boot.git MAINLINE cmd:gpt: randomly generate each partition uuid if undefined Changes: - randomly generate each partition uuid if undefined - print info about generated uuid - save environment on gpt write success - update doc/README.gpt Change-Id: Ice15a59dbb84d0d8af5e1d511cf4c859e2c6a1e5 Signed-off-by: Przemyslaw Marczak --- diff --git a/common/cmd_gpt.c b/common/cmd_gpt.c index 1f12e6d..7be5fcf 100644 --- a/common/cmd_gpt.c +++ b/common/cmd_gpt.c @@ -31,6 +31,7 @@ */ static char extract_env(const char *str, char **env) { + int ret = -1; char *e, *s; if (!str || strlen(str) < 4) @@ -43,16 +44,23 @@ static char extract_env(const char *str, char **env) memset(s + strlen(s) - 1, '\0', 1); memmove(s, s + 2, strlen(s) - 1); e = getenv(s); - free(s); if (e == NULL) { - printf("Environmental '%s' not set\n", str); - return -1; /* env not set */ + printf("%s unset. ", str); + e = get_uuid_str(); + if (e) { + printf("Setting to: %s\n", e); + setenv(s, e); + ret = 0; + } + } else { + ret = 0; } + *env = e; - return 0; + free(s); } - return -1; + return ret; } /** @@ -299,8 +307,17 @@ static int do_gpt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) return CMD_RET_FAILURE; } - if (gpt_default(blk_dev_desc, argv[4])) + puts("Writing GPT: "); + + ret = gpt_default(blk_dev_desc, argv[4]); + if (!ret) { + puts("success!\n"); + saveenv(); + return CMD_RET_SUCCESS; + } else { + puts("error!\n"); return CMD_RET_FAILURE; + } } else { return CMD_RET_USAGE; } diff --git a/doc/README.gpt b/doc/README.gpt index 5c133f3..afe2538 100644 --- a/doc/README.gpt +++ b/doc/README.gpt @@ -176,3 +176,4 @@ Please, pay attention at -l switch for parted. "uuid" program is recommended to generate UUID string. Moreover it can decode (-d switch) passed in UUID string. It can be used to generate partitions UUID passed to u-boot environment variables. +If each partition "uuid" no exists then it will be randomly generated.