te
Copyright (c) 2006, Sun Microsystems, Inc. All Rights Reserved.
Copyright 2014 Andrew Stormont.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
UUID_CLEAR 3UUID "Apr 9, 2014"
NAME
uuid_clear, uuid_compare, uuid_copy, uuid_generate, uuid_generate_random, uuid_generate_time, uuid_is_null, uuid_parse, uuid_time, uuid_unparse, uuid_unparse_lower, uuid_unparse_upper - universally unique identifier (UUID) operations
SYNOPSIS

cc [ flag .\|.\|. ] file.\|.\|. -luuid [ library .\|.\|. ]
#include <uuid/uuid.h>

void uuid_clear(uuid_t uu);

int uuid_compare(uuid_t uu1, uuid_t uu2);

void uuid_copy(uuid_t dst, uuid_t src);

void uuid_generate(uuid_t out);

void uuid_generate_random(uuid_t out);

void uuid_generate_time(uuid_t out);

int uuid_is_null(uuid_t uu);

int uuid_parse(char *in, uuid_t uu);

time_t uuid_time(uuid_t uu, struct timeval *ret_tv);

void uuid_unparse(uuid_t uu, char *out);

void uuid_unparse_lower(uuid_t uu, char *out);

void uuid_unparse_upper(uuid_t uu, char *out);
DESCRIPTION

The uuid_clear() function sets the value of the specified universally unique identifier (UUID) variable uu to the NULL value.

The uuid_compare() function compares the two specified UUID variables uu1 and uu2 to each other. It returns an integer less than, equal to, or greater than zero if uu1 is found to be, respectively, lexicographically less than, equal, or greater than uu2.

The uuid_copy() function copies the UUID variable src to dst.

The uuid_generate() function creates a new UUID that is generated based on high-quality randomness from /dev/urandom, if available. If /dev/urandom is not available, uuid_generate() calls uuid_generate_time(). Because the use of this algorithm provides information about when and where the UUID was generated, it could cause privacy problems for some applications.

The uuid_generate_random() function produces a UUID with a random or pseudo-randomly generated time and Ethernet MAC address that corresponds to a DCE version 4 UUID.

The uuid_generate_time() function uses the current time and the local Ethernet MAC address (if available, otherwise a MAC address is fabricated) that corresponds to a DCE version 1 UUID. If the UUID is not guaranteed to be unique, the multicast bit is set (the high-order bit of octet number 10).

The uuid_is_null() function compares the value of the specified UUID variable uu to the NULL value. If the value is equal to the NULL UUID, 1 is returned. Otherwise 0 is returned.

The uuid_parse() function converts the UUID string specified by in to the internal uuid_t format. The input UUID is a string of the form cefa7a9c-1dd2-11b2-8350-880020adbeef. In printf(3C) format, the string is "%08x-%04x-%04x-%04x-%012x", 36 bytes plus the trailing null character. If the input string is parsed successfully, 0 is returned and the UUID is stored in the location pointed to by uu. Otherwise -1 is returned.

The uuid_time() function extracts the time at which the specified UUID uu was created. Since the UUID creation time is encoded within the UUID, this function can reasonably be expected to extract the creation time only for UUIDs created with the uuid_generate_time() function. The time at which the UUID was created, in seconds since January 1, 1970 GMT (the epoch), is returned (see time(2)). The time at which the UUID was created, in seconds and microseconds since the epoch is also stored in the location pointed to by ret_tv (see gettimeofday(3C)).

The uuid_unparse() and uuid_unparse_lower() functions convert the specified UUID uu from the internal binary format to a lower case string of the length defined in the uuid.h macro, UUID_PRINTABLE_STRING_LENGTH, which includes the trailing null character. The resulting value is stored in the character string pointed to by out.

The uuid_unparse_upper() function converts the specified UUID uu from the internal binary format to a upper case string of the length defined in the uuid.h macro, UUID_PRINTABLE_STRING_LENGTH, which includes the trailing null character. The resulting value is stored in the character string pointed to by out.

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Evolving
MT-Level Safe
SEE ALSO

inetd(1M), time(2), gettimeofday(3C), libuuid(3LIB), printf(3C), attributes(5)