xref: /freebsd/lib/libc/uuid/uuid.3 (revision ad8ea5a8b2708ede8ff849eeb033a45f87b75af2)
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