diff mbox

[U-Boot,RFC,v2,1/8] uuid: add function for GUID string parsing

Message ID 1480503692-17255-2-git-send-email-patrick.delaunay73@gmail.com
State RFC
Delegated to: Scott Wood
Headers show

Commit Message

Patrick Delaunay Nov. 30, 2016, 11:01 a.m. UTC
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay73@gmail.com>
---

Changes in v2:
- split serie to reduce patches size
  (seperate disk part and cmd impact and add precursor patch)
- split large function

 include/uuid.h |  1 +
 lib/uuid.c     | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+)

Comments

Simon Glass Dec. 1, 2016, 2:21 a.m. UTC | #1
Hi Patrick,

On 30 November 2016 at 04:01, Patrick Delaunay
<patrick.delaunay73@gmail.com> wrote:
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> Signed-off-by: Patrick Delaunay <patrick.delaunay73@gmail.com>
> ---
>
> Changes in v2:
> - split serie to reduce patches size
>   (seperate disk part and cmd impact and add precursor patch)
> - split large function
>
>  include/uuid.h |  1 +
>  lib/uuid.c     | 33 +++++++++++++++++++++++++++++++++
>  2 files changed, 34 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

Nit below

>
> diff --git a/include/uuid.h b/include/uuid.h
> index c3f423f..f444095 100644
> --- a/include/uuid.h
> +++ b/include/uuid.h
> @@ -40,6 +40,7 @@ void uuid_bin_to_str(unsigned char *uuid_bin, char *uuid_str, int str_format);
>  int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin);
>  int uuid_guid_get_str(unsigned char *guid_bin, char *guid_str);
>  #endif
> +int uuid_guid_parse_str(const char *str, char *guid_str);
>  void gen_rand_uuid(unsigned char *uuid_bin);
>  void gen_rand_uuid_str(char *uuid_str, int str_format);
>  #endif
> diff --git a/lib/uuid.c b/lib/uuid.c
> index c8584ed..eb8d8eb 100644
> --- a/lib/uuid.c
> +++ b/lib/uuid.c
> @@ -136,6 +136,39 @@ int uuid_guid_get_str(unsigned char *guid_bin, char *guid_str)
>  #endif
>
>  /*
> + * uuid_guid_parse_str() - this function parse string for GUID.

parses?

What exactly does it do to parse it? i.e. what is the purpose of this function?

> + *
> + * @param guid_str - pointer to string with partition type guid [37B]
> + *                   or GUID shorcut
> + * @param guid_str - pointer to allocated partition type string [37B]

Which one is the input param and which is the output. These comments
are a bit unclear.
> + */

@return ...(document return value)

> +int uuid_guid_parse_str(const char *str, char *guid_str)
> +{
> +#ifdef CONFIG_PARTITION_TYPE_GUID
> +       int i;
> +#endif
> +
> +       if (guid_str == NULL)
> +               return -ENODEV;
> +
> +       if (uuid_str_valid(str)) {
> +               memcpy(guid_str, str, UUID_STR_LEN + 1);
> +               return 0;
> +       }
> +
> +#ifdef CONFIG_PARTITION_TYPE_GUID
> +       for (i = 0; i < ARRAY_SIZE(list_guid); i++) {
> +               if (!strcmp(list_guid[i].string, str)) {
> +                       uuid_bin_to_str((unsigned char *)list_guid[i].guid.b,
> +                                       guid_str, UUID_STR_FORMAT_GUID);
> +                       return 0;
> +               }
> +       }
> +#endif
> +       return -ENODEV;
> +}
> +
> +/*
>   * uuid_str_to_bin() - convert string UUID or GUID to big endian binary data.
>   *
>   * @param uuid_str - pointer to UUID or GUID string [37B] or GUID shorcut
> --
> 1.9.1

Regards,
Simon
diff mbox

Patch

diff --git a/include/uuid.h b/include/uuid.h
index c3f423f..f444095 100644
--- a/include/uuid.h
+++ b/include/uuid.h
@@ -40,6 +40,7 @@  void uuid_bin_to_str(unsigned char *uuid_bin, char *uuid_str, int str_format);
 int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin);
 int uuid_guid_get_str(unsigned char *guid_bin, char *guid_str);
 #endif
+int uuid_guid_parse_str(const char *str, char *guid_str);
 void gen_rand_uuid(unsigned char *uuid_bin);
 void gen_rand_uuid_str(char *uuid_str, int str_format);
 #endif
diff --git a/lib/uuid.c b/lib/uuid.c
index c8584ed..eb8d8eb 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -136,6 +136,39 @@  int uuid_guid_get_str(unsigned char *guid_bin, char *guid_str)
 #endif
 
 /*
+ * uuid_guid_parse_str() - this function parse string for GUID.
+ *
+ * @param guid_str - pointer to string with partition type guid [37B]
+ *                   or GUID shorcut
+ * @param guid_str - pointer to allocated partition type string [37B]
+ */
+int uuid_guid_parse_str(const char *str, char *guid_str)
+{
+#ifdef CONFIG_PARTITION_TYPE_GUID
+	int i;
+#endif
+
+	if (guid_str == NULL)
+		return -ENODEV;
+
+	if (uuid_str_valid(str)) {
+		memcpy(guid_str, str, UUID_STR_LEN + 1);
+		return 0;
+	}
+
+#ifdef CONFIG_PARTITION_TYPE_GUID
+	for (i = 0; i < ARRAY_SIZE(list_guid); i++) {
+		if (!strcmp(list_guid[i].string, str)) {
+			uuid_bin_to_str((unsigned char *)list_guid[i].guid.b,
+					guid_str, UUID_STR_FORMAT_GUID);
+			return 0;
+		}
+	}
+#endif
+	return -ENODEV;
+}
+
+/*
  * uuid_str_to_bin() - convert string UUID or GUID to big endian binary data.
  *
  * @param uuid_str - pointer to UUID or GUID string [37B] or GUID shorcut