X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=lib%2Fuuid.c;h=e62d5ca2643f60b1aedee970af95e353a5d10b73;hb=2b8692bac1e8795cbb87b0d00213fd193409851d;hp=7d7a2749b6410650362b6b0fa9c1b618872b893f;hpb=a56149dd97feb1674009bd21b214f0d2b5f6e2ed;p=oweals%2Fu-boot.git diff --git a/lib/uuid.c b/lib/uuid.c index 7d7a2749b6..e62d5ca264 100644 --- a/lib/uuid.c +++ b/lib/uuid.c @@ -4,6 +4,11 @@ */ #include +#include +#include +#include +#include +#include #include #include #include @@ -119,7 +124,7 @@ int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin) * @param guid_bin - pointer to string with partition type guid [16B] * @param guid_str - pointer to allocated partition type string [7B] */ -int uuid_guid_get_str(unsigned char *guid_bin, char *guid_str) +int uuid_guid_get_str(const unsigned char *guid_bin, char *guid_str) { int i; @@ -141,7 +146,8 @@ int uuid_guid_get_str(unsigned char *guid_bin, char *guid_str) * @param uuid_bin - pointer to allocated array for big endian output [16B] * @str_format - UUID string format: 0 - UUID; 1 - GUID */ -int uuid_str_to_bin(char *uuid_str, unsigned char *uuid_bin, int str_format) +int uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin, + int str_format) { uint16_t tmp16; uint32_t tmp32; @@ -192,7 +198,8 @@ int uuid_str_to_bin(char *uuid_str, unsigned char *uuid_bin, int str_format) * @str_format: bit 0: 0 - UUID; 1 - GUID * bit 1: 0 - lower case; 2 - upper case */ -void uuid_bin_to_str(unsigned char *uuid_bin, char *uuid_str, int str_format) +void uuid_bin_to_str(const unsigned char *uuid_bin, char *uuid_str, + int str_format) { const u8 uuid_char_order[UUID_BIN_LEN] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; @@ -240,25 +247,25 @@ void uuid_bin_to_str(unsigned char *uuid_bin, char *uuid_str, int str_format) #if defined(CONFIG_RANDOM_UUID) || defined(CONFIG_CMD_UUID) void gen_rand_uuid(unsigned char *uuid_bin) { - struct uuid uuid; - unsigned int *ptr = (unsigned int *)&uuid; + u32 ptr[4]; + struct uuid *uuid = (struct uuid *)ptr; int i; srand(get_ticks() + rand()); /* Set all fields randomly */ - for (i = 0; i < sizeof(struct uuid) / sizeof(*ptr); i++) - *(ptr + i) = cpu_to_be32(rand()); + for (i = 0; i < 4; i++) + ptr[i] = rand(); - clrsetbits_be16(&uuid.time_hi_and_version, + clrsetbits_be16(&uuid->time_hi_and_version, UUID_VERSION_MASK, UUID_VERSION << UUID_VERSION_SHIFT); - clrsetbits_8(&uuid.clock_seq_hi_and_reserved, + clrsetbits_8(&uuid->clock_seq_hi_and_reserved, UUID_VARIANT_MASK, UUID_VARIANT << UUID_VARIANT_SHIFT); - memcpy(uuid_bin, &uuid, sizeof(struct uuid)); + memcpy(uuid_bin, uuid, 16); } /* @@ -280,7 +287,7 @@ void gen_rand_uuid_str(char *uuid_str, int str_format) } #if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_CMD_UUID) -int do_uuid(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +int do_uuid(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { char uuid[UUID_STR_LEN + 1]; int str_format;