/* ** OSSP uuid - Universally Unique Identifier ** Copyright (c) 2004-2008 Ralf S. Engelschall ** Copyright (c) 2004-2008 The OSSP Project ** ** This file is part of OSSP uuid, a library for the generation ** of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/ ** ** Permission to use, copy, modify, and distribute this software for ** any purpose with or without fee is hereby granted, provided that ** the above copyright notice and this permission notice appear in all ** copies. ** ** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ** SUCH DAMAGE. ** ** uuid_dce.h: DCE 1.1 compatibility API definition */ #ifndef __UUID_DCE_H___ #define __UUID_DCE_H___ /* sanity check usage */ #ifdef __UUID_H__ #error the regular OSSP uuid API and the DCE 1.1 backward compatibility API are mutually exclusive -- you cannot use them at the same time. #endif /* resolve namespace conflicts (at linking level) with regular OSSP uuid API */ #define uuid_create uuid_dce_create #define uuid_create_nil uuid_dce_create_nil #define uuid_is_nil uuid_dce_is_nil #define uuid_compare uuid_dce_compare #define uuid_equal uuid_dce_equal #define uuid_from_string uuid_dce_from_string #define uuid_to_string uuid_dce_to_string #define uuid_hash uuid_dce_hash /* DCE 1.1 uuid_t type */ typedef struct { #if 0 /* stricter but unportable version */ uuid_uint32_t time_low; uuid_uint16_t time_mid; uuid_uint16_t time_hi_and_version; uuid_uint8_t clock_seq_hi_and_reserved; uuid_uint8_t clock_seq_low; uuid_uint8_t node[6]; #else /* sufficient and portable version */ unsigned char data[16]; #endif } uuid_t; typedef uuid_t *uuid_p_t; /* DCE 1.1 uuid_vector_t type */ typedef struct { unsigned int count; uuid_t *uuid[1]; } uuid_vector_t; /* DCE 1.1 UUID API status codes */ enum { uuid_s_ok = 0, /* standardized */ uuid_s_error = 1 /* implementation specific */ }; /* DCE 1.1 UUID API functions */ extern void uuid_create (uuid_t *, int *); extern void uuid_create_nil (uuid_t *, int *); extern int uuid_is_nil (uuid_t *, int *); extern int uuid_compare (uuid_t *, uuid_t *, int *); extern int uuid_equal (uuid_t *, uuid_t *, int *); extern void uuid_from_string (const char *, uuid_t *, int *); extern void uuid_to_string (uuid_t *, char **, int *); extern unsigned int uuid_hash (uuid_t *, int *); #endif /* __UUID_DCE_H___ */