You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.3 KiB
47 lines
1.3 KiB
/* |
|
* Unified UUID/GUID definition |
|
* |
|
* Copyright (C) 2009, Intel Corp. |
|
* Huang Ying <ying.huang@intel.com> |
|
* |
|
* This program is free software; you can redistribute it and/or |
|
* modify it under the terms of the GNU General Public License version |
|
* 2 as published by the Free Software Foundation; |
|
* |
|
* This program is distributed in the hope that it will be useful, |
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
* GNU General Public License for more details. |
|
* |
|
* You should have received a copy of the GNU General Public License |
|
* along with this program; if not, write to the Free Software |
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
*/ |
|
|
|
#include <linux/kernel.h> |
|
#include <linux/export.h> |
|
#include <linux/uuid.h> |
|
#include <linux/random.h> |
|
|
|
static void __uuid_gen_common(__u8 b[16]) |
|
{ |
|
prandom_bytes(b, 16); |
|
/* reversion 0b10 */ |
|
b[8] = (b[8] & 0x3F) | 0x80; |
|
} |
|
|
|
void uuid_le_gen(uuid_le *lu) |
|
{ |
|
__uuid_gen_common(lu->b); |
|
/* version 4 : random generation */ |
|
lu->b[7] = (lu->b[7] & 0x0F) | 0x40; |
|
} |
|
EXPORT_SYMBOL_GPL(uuid_le_gen); |
|
|
|
void uuid_be_gen(uuid_be *bu) |
|
{ |
|
__uuid_gen_common(bu->b); |
|
/* version 4 : random generation */ |
|
bu->b[6] = (bu->b[6] & 0x0F) | 0x40; |
|
} |
|
EXPORT_SYMBOL_GPL(uuid_be_gen);
|
|
|