forked from luck/tmp_suning_uos_patched
uuid: Provide a GUID generator for raw buffer
In some cases we would like to generate a GUID and export it. Though it would require either casting to internal kernel types or an intermediate buffer. Instead we may achieve this by supplying a pointer to raw buffer and make a complimentary API to existing one for UUIDs. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
d01cd62400
commit
48a2e88f53
|
@ -84,6 +84,7 @@ static inline bool uuid_is_null(const uuid_t *uuid)
|
||||||
}
|
}
|
||||||
|
|
||||||
void generate_random_uuid(unsigned char uuid[16]);
|
void generate_random_uuid(unsigned char uuid[16]);
|
||||||
|
void generate_random_guid(unsigned char guid[16]);
|
||||||
|
|
||||||
extern void guid_gen(guid_t *u);
|
extern void guid_gen(guid_t *u);
|
||||||
extern void uuid_gen(uuid_t *u);
|
extern void uuid_gen(uuid_t *u);
|
||||||
|
|
10
lib/uuid.c
10
lib/uuid.c
|
@ -40,6 +40,16 @@ void generate_random_uuid(unsigned char uuid[16])
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(generate_random_uuid);
|
EXPORT_SYMBOL(generate_random_uuid);
|
||||||
|
|
||||||
|
void generate_random_guid(unsigned char guid[16])
|
||||||
|
{
|
||||||
|
get_random_bytes(guid, 16);
|
||||||
|
/* Set GUID version to 4 --- truly random generation */
|
||||||
|
guid[7] = (guid[7] & 0x0F) | 0x40;
|
||||||
|
/* Set the GUID variant to DCE */
|
||||||
|
guid[8] = (guid[8] & 0x3F) | 0x80;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(generate_random_guid);
|
||||||
|
|
||||||
static void __uuid_gen_common(__u8 b[16])
|
static void __uuid_gen_common(__u8 b[16])
|
||||||
{
|
{
|
||||||
prandom_bytes(b, 16);
|
prandom_bytes(b, 16);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user