2006-11-25 19:48:31 +03:00
|
|
|
.\" $NetBSD: uuid.3,v 1.5 2006/11/25 16:48:31 christos Exp $
|
2004-09-14 01:44:54 +04:00
|
|
|
.\"
|
|
|
|
.\" Copyright (c) 2004 The NetBSD Foundation, Inc.
|
|
|
|
.\" All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" This code is derived from software contributed to The NetBSD Foundation
|
|
|
|
.\" by Jason R. Thorpe.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
|
|
.\" must display the following acknowledgement:
|
|
|
|
.\" This product includes software developed by the NetBSD
|
|
|
|
.\" Foundation, Inc. and its contributors.
|
|
|
|
.\" 4. Neither the name of The NetBSD Foundation nor the names of its
|
|
|
|
.\" contributors may be used to endorse or promote products derived
|
|
|
|
.\" from this software without specific prior written permission.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
|
|
|
.\" ``AS IS'' AND ANY EXPRESS 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 FOUNDATION OR 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.
|
|
|
|
.\"
|
|
|
|
.\" Copyright (c) 2002 Marcel Moolenaar
|
|
|
|
.\" Copyright (c) 2002 Hiten Mahesh Pandya
|
|
|
|
.\" All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 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 AUTHOR 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.
|
|
|
|
.\"
|
|
|
|
.\" $FreeBSD: src/lib/libc/uuid/uuid.3,v 1.4 2003/08/08 19:12:28 marcel Exp $
|
|
|
|
.\"
|
|
|
|
.Dd September 12, 2004
|
|
|
|
.Dt UUID 3
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm uuid_compare , uuid_create , uuid_create_nil , uuid_equal ,
|
|
|
|
.Nm uuid_from_string , uuid_hash , uuid_is_nil , uuid_to_string ,
|
|
|
|
.Nm uuid_enc_le , uuid_dec_le , uuid_enc_be , uuid_dec_be
|
|
|
|
.Nd Universally Unique Identifier routines
|
|
|
|
.Sh LIBRARY
|
|
|
|
.Lb libc
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
.In uuid.h
|
|
|
|
.Ft int32_t
|
|
|
|
.Fn uuid_compare "uuid_t *uuid1" "uuid_t *uuid2" "uint32_t *status"
|
|
|
|
.Ft void
|
|
|
|
.Fn uuid_create "uuid_t *uuid" "uint32_t *status"
|
|
|
|
.Ft void
|
|
|
|
.Fn uuid_create_nil "uuid_t *uuid" "uint32_t *status"
|
|
|
|
.Ft int32_t
|
|
|
|
.Fn uuid_equal "uuid_t *uuid1" "uuid_t *uuid2" "uint32_t *status"
|
|
|
|
.Ft void
|
|
|
|
.Fn uuid_from_string "const char *str" "uuid_t *uuid" "uint32_t *status"
|
|
|
|
.Ft uint16_t
|
|
|
|
.Fn uuid_hash "uuid_t *uuid" "uint32_t *status"
|
|
|
|
.Ft int32_t
|
|
|
|
.Fn uuid_is_nil "uuid_t *uuid" "uint32_t *status"
|
|
|
|
.Ft void
|
|
|
|
.Fn uuid_to_string "uuid_t *uuid" "char **str" "uint32_t *status"
|
|
|
|
.Ft void
|
|
|
|
.Fn uuid_enc_le "void *buf" "const uuid_t *uuid"
|
|
|
|
.Ft void
|
|
|
|
.Fn uuid_dec_le "const void *buf" "uuid_t *"
|
|
|
|
.Ft void
|
|
|
|
.Fn uuid_enc_be "void *buf" "const uuid_t *uuid"
|
|
|
|
.Ft void
|
|
|
|
.Fn uuid_dec_be "const void *buf" "uuid_t *"
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
These routines provide for the creation and manipulation of Universally
|
|
|
|
Unique Identifiers
|
|
|
|
.Pq UUIDs ,
|
|
|
|
also referred to as Globally Unique Identifiers
|
|
|
|
.Pq GUIDs .
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_compare
|
2004-09-14 02:52:39 +04:00
|
|
|
function compares two UUIDs.
|
|
|
|
It returns \-1 if
|
2004-09-14 01:44:54 +04:00
|
|
|
.Fa uuid1
|
2006-11-25 19:48:31 +03:00
|
|
|
precedes
|
2004-09-14 01:44:54 +04:00
|
|
|
.Fa uuid2 ,
|
|
|
|
0 if they are equal, or 1 if
|
|
|
|
.Fa uuid1
|
|
|
|
follows
|
|
|
|
.Fa uuid2 .
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_create
|
|
|
|
function creates a new UUID.
|
|
|
|
Storage for the new UUID must be pre-allocated by the caller.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_create_nil
|
|
|
|
function creates a nil-valued UUID.
|
|
|
|
Storage for the new UUID must be pre-allocated by the caller.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_equal
|
|
|
|
function compares two UUIDs to determine if they are equal.
|
|
|
|
It returns 1 if they are equal, and 0 if they are not equal.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_from_string
|
|
|
|
function parses a 36-character string representation of a UUID and
|
|
|
|
converts it to binary representation.
|
|
|
|
Storage for the UUID must be pre-allocated by the caller.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_hash
|
|
|
|
function generates a hash value for the specified UUID.
|
|
|
|
Note that the hash value is not a cryptographic hash, and should not be
|
|
|
|
assumed to be unique given two different UUIDs.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_is_nil
|
|
|
|
function returns 1 if the UUID is nil-valued and 0 if it is not.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_to_string
|
|
|
|
function converts a UUID from binary representation to string representation.
|
|
|
|
Storage for the string is dynamically allocated and returned via the
|
|
|
|
.Fa str
|
|
|
|
argument.
|
2004-09-14 02:52:39 +04:00
|
|
|
This pointer should be passed to
|
2004-09-14 01:44:54 +04:00
|
|
|
.Xr free 3
|
|
|
|
to release the allocated storage when it is no longer needed.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_enc_le
|
|
|
|
and
|
|
|
|
.Fn uuid_enc_be
|
|
|
|
functions encode a binary representation of a UUID into an octet stream
|
|
|
|
in little-endian and big-endian byte-order, respectively.
|
|
|
|
The destination buffer must be pre-allocated by the caller, and must be
|
|
|
|
large enough to hold the 16-octet binary UUID.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Fn uuid_dec_le
|
|
|
|
and
|
|
|
|
.Fn uuid_dec_be
|
|
|
|
functions decode a UUID from an octet stream in little-endian and
|
|
|
|
big-endian byte-order, respectively.
|
|
|
|
.Sh RETURN VALUES
|
|
|
|
The
|
|
|
|
.Fn uuid_compare ,
|
|
|
|
.Fn uuid_create ,
|
|
|
|
.Fn uuid_create_nil ,
|
|
|
|
.Fn uuid_equal ,
|
|
|
|
.Fn uuid_from_string ,
|
|
|
|
.Fn uuid_hash ,
|
|
|
|
.Fn uuid_is_nil ,
|
|
|
|
and
|
|
|
|
.Fn uuid_to_string
|
|
|
|
functions return successful or unsuccessful completion status in the
|
|
|
|
.Fa status
|
|
|
|
argument.
|
|
|
|
Possible values are:
|
|
|
|
.Pp
|
|
|
|
.Bl -tag -width ".Dv uuid_s_invalid_string_uuid"
|
|
|
|
.It Dv uuid_s_ok
|
|
|
|
The function completed successfully.
|
|
|
|
.It Dv uuid_s_bad_version
|
|
|
|
The UUID does not have a known version.
|
|
|
|
.It Dv uuid_s_invalid_string_uuid
|
2004-09-14 02:52:39 +04:00
|
|
|
The string representation of a UUID is not valid.
|
2004-09-14 01:44:54 +04:00
|
|
|
.It Dv uuid_s_no_memory
|
|
|
|
Memory could not be allocated for the operation.
|
|
|
|
.El
|
|
|
|
.Sh SEE ALSO
|
2004-09-14 03:36:25 +04:00
|
|
|
.Xr uuidgen 1 ,
|
2004-09-14 01:44:54 +04:00
|
|
|
.Xr uuidgen 2
|
|
|
|
.Sh STANDARDS
|
|
|
|
The
|
|
|
|
.Fn uuid_compare ,
|
|
|
|
.Fn uuid_create ,
|
|
|
|
.Fn uuid_create_nil ,
|
|
|
|
.Fn uuid_equal ,
|
|
|
|
.Fn uuid_from_string ,
|
|
|
|
.Fn uuid_hash ,
|
|
|
|
.Fn uuid_is_nil ,
|
|
|
|
and
|
|
|
|
.Fn uuid_to_string
|
|
|
|
functions are compatible with the DCE 1.1 RPC specification.
|
2004-09-14 03:24:15 +04:00
|
|
|
.Sh HISTORY
|
|
|
|
The UUID functions first appeared in
|
|
|
|
.Nx 3.0 .
|