The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/lib/uuid.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Unified UUID/GUID definition
    3  *
    4  * Copyright (C) 2009, Intel Corp.
    5  *      Huang Ying <ying.huang@intel.com>
    6  *
    7  * This program is free software; you can redistribute it and/or
    8  * modify it under the terms of the GNU General Public License version
    9  * 2 as published by the Free Software Foundation;
   10  *
   11  * This program is distributed in the hope that it will be useful,
   12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
   13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   14  * GNU General Public License for more details.
   15  *
   16  * You should have received a copy of the GNU General Public License
   17  * along with this program; if not, write to the Free Software
   18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   19  */
   20 
   21 #include <linux/kernel.h>
   22 #include <linux/export.h>
   23 #include <linux/uuid.h>
   24 #include <linux/random.h>
   25 
   26 static void __uuid_gen_common(__u8 b[16])
   27 {
   28         int i;
   29         u32 r;
   30 
   31         for (i = 0; i < 4; i++) {
   32                 r = random32();
   33                 memcpy(b + i * 4, &r, 4);
   34         }
   35         /* reversion 0b10 */
   36         b[8] = (b[8] & 0x3F) | 0x80;
   37 }
   38 
   39 void uuid_le_gen(uuid_le *lu)
   40 {
   41         __uuid_gen_common(lu->b);
   42         /* version 4 : random generation */
   43         lu->b[7] = (lu->b[7] & 0x0F) | 0x40;
   44 }
   45 EXPORT_SYMBOL_GPL(uuid_le_gen);
   46 
   47 void uuid_be_gen(uuid_be *bu)
   48 {
   49         __uuid_gen_common(bu->b);
   50         /* version 4 : random generation */
   51         bu->b[6] = (bu->b[6] & 0x0F) | 0x40;
   52 }
   53 EXPORT_SYMBOL_GPL(uuid_be_gen);

Cache object: 42ce871d56d47bf25df5055e7201e85a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.