165393a86SMarcel Moolenaar.\" Copyright (c) 2002 Marcel Moolenaar 265393a86SMarcel Moolenaar.\" Copyright (c) 2002 Hiten Mahesh Pandya 365393a86SMarcel Moolenaar.\" All rights reserved. 465393a86SMarcel Moolenaar.\" 565393a86SMarcel Moolenaar.\" Redistribution and use in source and binary forms, with or without 665393a86SMarcel Moolenaar.\" modification, are permitted provided that the following conditions 765393a86SMarcel Moolenaar.\" are met: 865393a86SMarcel Moolenaar.\" 1. Redistributions of source code must retain the above copyright 965393a86SMarcel Moolenaar.\" notice, this list of conditions and the following disclaimer. 1065393a86SMarcel Moolenaar.\" 2. Redistributions in binary form must reproduce the above copyright 1165393a86SMarcel Moolenaar.\" notice, this list of conditions and the following disclaimer in the 1265393a86SMarcel Moolenaar.\" documentation and/or other materials provided with the distribution. 1365393a86SMarcel Moolenaar.\" 1465393a86SMarcel Moolenaar.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1565393a86SMarcel Moolenaar.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1665393a86SMarcel Moolenaar.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1765393a86SMarcel Moolenaar.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 1865393a86SMarcel Moolenaar.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 1965393a86SMarcel Moolenaar.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 2065393a86SMarcel Moolenaar.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 2165393a86SMarcel Moolenaar.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 2265393a86SMarcel Moolenaar.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2365393a86SMarcel Moolenaar.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2465393a86SMarcel Moolenaar.\" SUCH DAMAGE. 2565393a86SMarcel Moolenaar.\" 2665393a86SMarcel Moolenaar.\" $FreeBSD$ 2765393a86SMarcel Moolenaar.\" 28ad8ea5a8SMaksim Yevmenkin.Dd August 13, 2008 2965393a86SMarcel Moolenaar.Dt UUID 3 3065393a86SMarcel Moolenaar.Os 3165393a86SMarcel Moolenaar.Sh NAME 3265393a86SMarcel Moolenaar.Nm uuid_compare , uuid_create , uuid_create_nil , uuid_equal , 3365393a86SMarcel Moolenaar.Nm uuid_from_string , uuid_hash , uuid_is_nil , uuid_to_string 3465393a86SMarcel Moolenaar.Nd DCE 1.1 compliant UUID functions 3565393a86SMarcel Moolenaar.Sh LIBRARY 3665393a86SMarcel Moolenaar.Lb libc 3765393a86SMarcel Moolenaar.Sh SYNOPSIS 3865393a86SMarcel Moolenaar.In uuid.h 3965393a86SMarcel Moolenaar.Ft int32_t 406eee8269SRuslan Ermilov.Fn uuid_compare "const uuid_t *uuid1" "const uuid_t *uuid2" "uint32_t *status" 4165393a86SMarcel Moolenaar.Ft void 4265393a86SMarcel Moolenaar.Fn uuid_create "uuid_t *uuid" "uint32_t *status" 4365393a86SMarcel Moolenaar.Ft void 4465393a86SMarcel Moolenaar.Fn uuid_create_nil "uuid_t *uuid" "uint32_t *status" 4565393a86SMarcel Moolenaar.Ft int32_t 466eee8269SRuslan Ermilov.Fn uuid_equal "const uuid_t *uuid1" "const uuid_t *uuid2" "uint32_t *status" 4765393a86SMarcel Moolenaar.Ft void 4865393a86SMarcel Moolenaar.Fn uuid_from_string "const char *str" "uuid_t *uuid" "uint32_t *status" 4965393a86SMarcel Moolenaar.Ft uint16_t 506eee8269SRuslan Ermilov.Fn uuid_hash "const uuid_t *uuid" "uint32_t *status" 5165393a86SMarcel Moolenaar.Ft int32_t 526eee8269SRuslan Ermilov.Fn uuid_is_nil "const uuid_t *uuid" "uint32_t *status" 5365393a86SMarcel Moolenaar.Ft void 546eee8269SRuslan Ermilov.Fn uuid_to_string "const uuid_t *uuid" "char **str" "uint32_t *status" 55ad8ea5a8SMaksim Yevmenkin.Ft void 56ad8ea5a8SMaksim Yevmenkin.Fn uuid_enc_le "void *buf" "const uuid_t *uuid" 57ad8ea5a8SMaksim Yevmenkin.Ft void 58ad8ea5a8SMaksim Yevmenkin.Fn uuid_dec_le "const void *buf" "uuid_t *" 59ad8ea5a8SMaksim Yevmenkin.Ft void 60ad8ea5a8SMaksim Yevmenkin.Fn uuid_enc_be "void *buf" "const uuid_t *uuid" 61ad8ea5a8SMaksim Yevmenkin.Ft void 62ad8ea5a8SMaksim Yevmenkin.Fn uuid_dec_be "const void *buf" "uuid_t *" 6365393a86SMarcel Moolenaar.Sh DESCRIPTION 6465393a86SMarcel MoolenaarThe family of DCE 1.1 compliant UUID functions allow applications to operate 6565393a86SMarcel Moolenaaron universally unique identifiers, or UUIDs. 6665393a86SMarcel MoolenaarThe 6765393a86SMarcel Moolenaar.Fn uuid_create 6865393a86SMarcel Moolenaarand 6965393a86SMarcel Moolenaar.Fn uuid_create_nil 7065393a86SMarcel Moolenaarfunctions create UUIDs. 7165393a86SMarcel MoolenaarThe 7238e35b96SMarcel Moolenaar.Fn uuid_compare , 7338e35b96SMarcel Moolenaar.Fn uuid_equal 7465393a86SMarcel Moolenaarand 7565393a86SMarcel Moolenaar.Fn uuid_is_nil 7665393a86SMarcel Moolenaarfunctions can be used to test UUIDs. 7765393a86SMarcel MoolenaarTo convert from the binary representation to the string representation or 7865393a86SMarcel Moolenaarvice versa, use 7965393a86SMarcel Moolenaar.Fn uuid_to_string 8065393a86SMarcel Moolenaaror 8165393a86SMarcel Moolenaar.Fn uuid_from_string 8265393a86SMarcel Moolenaarrespectively. 8365393a86SMarcel MoolenaarA 16-bit hash value can be obtained by calling 8465393a86SMarcel Moolenaar.Fn uuid_hash . 85ad8ea5a8SMaksim Yevmenkin.Pp 86ad8ea5a8SMaksim YevmenkinThe 87ad8ea5a8SMaksim Yevmenkin.Fn uuid_enc_le 88ad8ea5a8SMaksim Yevmenkinand 89ad8ea5a8SMaksim Yevmenkin.Fn uuid_enc_be 90ad8ea5a8SMaksim Yevmenkinfunctions encode a binary representation of a UUID into an octet stream 91ad8ea5a8SMaksim Yevmenkinin little-endian and big-endian byte-order, respectively. 92ad8ea5a8SMaksim YevmenkinThe destination buffer must be pre-allocated by the caller, and must be 93ad8ea5a8SMaksim Yevmenkinlarge enough to hold the 16-octet binary UUID. 94ad8ea5a8SMaksim YevmenkinThese routines are not part of the DCE RPC API. 95ad8ea5a8SMaksim YevmenkinThey are provided for convenience. 96ad8ea5a8SMaksim Yevmenkin.Pp 97ad8ea5a8SMaksim YevmenkinThe 98ad8ea5a8SMaksim Yevmenkin.Fn uuid_dec_le 99ad8ea5a8SMaksim Yevmenkinand 100ad8ea5a8SMaksim Yevmenkin.Fn uuid_dec_be 101ad8ea5a8SMaksim Yevmenkinfunctions decode a UUID from an octet stream in little-endian and 102ad8ea5a8SMaksim Yevmenkinbig-endian byte-order, respectively. 103ad8ea5a8SMaksim YevmenkinThese routines are not part of the DCE RPC API. 104ad8ea5a8SMaksim YevmenkinThey are provided for convenience. 10565393a86SMarcel Moolenaar.Sh RETURN VALUES 10665393a86SMarcel MoolenaarThe successful or unsuccessful completion of the function is returned in 10765393a86SMarcel Moolenaarthe 10865393a86SMarcel Moolenaar.Fa status 1092efeeba5SRuslan Ermilovargument. 11060849ee1SRuslan ErmilovPossible values are: 11165393a86SMarcel Moolenaar.Pp 11260849ee1SRuslan Ermilov.Bl -tag -width ".Dv uuid_s_invalid_string_uuid" 11365393a86SMarcel Moolenaar.It Dv uuid_s_ok 11465393a86SMarcel MoolenaarThe function completed successfully. 11565393a86SMarcel Moolenaar.It Dv uuid_s_bad_version 11665393a86SMarcel MoolenaarThe UUID does not have a known version. 11765393a86SMarcel Moolenaar.It Dv uuid_s_invalid_string_uuid 11865393a86SMarcel MoolenaarThe string representation of an UUID is not valid. 11965393a86SMarcel Moolenaar.It Dv uuid_s_no_memory 12065393a86SMarcel MoolenaarThe meaning of the code escaped the writers mind. 12165393a86SMarcel Moolenaar.El 12265393a86SMarcel Moolenaar.Sh SEE ALSO 12365393a86SMarcel Moolenaar.Xr uuidgen 1 , 12465393a86SMarcel Moolenaar.Xr uuidgen 2 12565393a86SMarcel Moolenaar.Sh STANDARDS 12665393a86SMarcel MoolenaarThe UUID functions conform to the DCE 1.1 RPC specification. 12724a0682cSRuslan Ermilov.Sh BUGS 12824a0682cSRuslan ErmilovThis manpage can be improved. 129