linux/include/linux/uuid.h
<<
>>
Prefs
   1/*
   2 * UUID/GUID definition
   3 *
   4 * Copyright (C) 2010, 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#ifndef _LINUX_UUID_H_
  22#define _LINUX_UUID_H_
  23
  24#include <linux/types.h>
  25#include <linux/string.h>
  26
  27typedef struct {
  28        __u8 b[16];
  29} uuid_le;
  30
  31typedef struct {
  32        __u8 b[16];
  33} uuid_be;
  34
  35#define UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)                \
  36((uuid_le)                                                              \
  37{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \
  38   (b) & 0xff, ((b) >> 8) & 0xff,                                       \
  39   (c) & 0xff, ((c) >> 8) & 0xff,                                       \
  40   (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
  41
  42#define UUID_BE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)                \
  43((uuid_be)                                                              \
  44{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \
  45   ((b) >> 8) & 0xff, (b) & 0xff,                                       \
  46   ((c) >> 8) & 0xff, (c) & 0xff,                                       \
  47   (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
  48
  49#define NULL_UUID_LE                                                    \
  50        UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00,     \
  51                0x00, 0x00, 0x00, 0x00)
  52
  53#define NULL_UUID_BE                                                    \
  54        UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00,     \
  55                0x00, 0x00, 0x00, 0x00)
  56
  57#ifdef __KERNEL__
  58
  59static inline int uuid_le_cmp(const uuid_le u1, const uuid_le u2)
  60{
  61        return memcmp(&u1, &u2, sizeof(uuid_le));
  62}
  63
  64static inline int uuid_be_cmp(const uuid_be u1, const uuid_be u2)
  65{
  66        return memcmp(&u1, &u2, sizeof(uuid_be));
  67}
  68
  69extern void uuid_le_gen(uuid_le *u);
  70extern void uuid_be_gen(uuid_be *u);
  71
  72#endif /* __KERNEL__ */
  73
  74#endif
  75
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.