 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			212 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			212 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: uuid.3,v 1.7 2008/05/02 18:11:05 martin Exp $
 | |
| .\"
 | |
| .\" 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.
 | |
| .\"
 | |
| .\" 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 April 22, 2008
 | |
| .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 "const uuid_t *uuid1" "const 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 "const uuid_t *uuid1" "const 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 "const uuid_t *uuid" "uint32_t *status"
 | |
| .Ft int32_t
 | |
| .Fn uuid_is_nil "const uuid_t *uuid" "uint32_t *status"
 | |
| .Ft void
 | |
| .Fn uuid_to_string "const 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
 | |
| function compares two UUIDs.
 | |
| It returns \-1 if
 | |
| .Fa uuid1
 | |
| precedes
 | |
| .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.
 | |
| This pointer should be passed to
 | |
| .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
 | |
| The string representation of a UUID is not valid.
 | |
| .It Dv uuid_s_no_memory
 | |
| Memory could not be allocated for the operation.
 | |
| .El
 | |
| .Sh SEE ALSO
 | |
| .Xr uuidgen 1 ,
 | |
| .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.
 | |
| .Sh HISTORY
 | |
| The UUID functions first appeared in
 | |
| .Nx 3.0 .
 |