uuid.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /* $OpenBSD: uuid.h,v 1.3 2014/08/31 09:36:39 miod Exp $ */
  2. /* $NetBSD: uuid.h,v 1.5 2008/11/18 14:01:03 joerg Exp $ */
  3. /*
  4. * Copyright (c) 2002 Marcel Moolenaar
  5. * All rights reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions
  9. * are met:
  10. *
  11. * 1. Redistributions of source code must retain the above copyright
  12. * notice, this list of conditions and the following disclaimer.
  13. * 2. Redistributions in binary form must reproduce the above copyright
  14. * notice, this list of conditions and the following disclaimer in the
  15. * documentation and/or other materials provided with the distribution.
  16. *
  17. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  18. * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  19. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  20. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  21. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  22. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  23. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  24. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  25. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  26. * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. *
  28. * $FreeBSD: /repoman/r/ncvs/src/sys/sys/uuid.h,v 1.3 2003/05/31 16:47:07 phk Exp $
  29. */
  30. #ifndef _SYS_UUID_H_
  31. #define _SYS_UUID_H_
  32. /* Length of a node address (an IEEE 802 address). */
  33. #define _UUID_NODE_LEN 6
  34. /* Length of a printed UUID. */
  35. #define _UUID_BUF_LEN 38
  36. /*
  37. * See also:
  38. * http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt
  39. * http://www.opengroup.org/onlinepubs/009629399/apdxa.htm
  40. *
  41. * A DCE 1.1 compatible source representation of UUIDs.
  42. */
  43. struct uuid {
  44. uint32_t time_low;
  45. uint16_t time_mid;
  46. uint16_t time_hi_and_version;
  47. uint8_t clock_seq_hi_and_reserved;
  48. uint8_t clock_seq_low;
  49. uint8_t node[_UUID_NODE_LEN];
  50. };
  51. #ifdef _KERNEL
  52. #define UUID_NODE_LEN _UUID_NODE_LEN
  53. #define UUID_BUF_LEN _UUID_BUF_LEN
  54. int uuid_snprintf(char *, size_t, const struct uuid *);
  55. int uuid_printf(const struct uuid *);
  56. void uuid_dec_be(const void *, struct uuid *);
  57. void uuid_dec_le(const void *, struct uuid *);
  58. void uuid_enc_be(void *, const struct uuid *);
  59. void uuid_enc_le(void *, const struct uuid *);
  60. #else /* _KERNEL */
  61. typedef struct uuid uuid_t;
  62. #endif /* _KERNEL */
  63. #endif /* _SYS_UUID_H_ */