xref: /illumos-gate/usr/src/man/man3uuid/uuid_clear.3uuid (revision bbf215553c7233fbab8a0afdf1fac74c44781867)
19d6ca396SRobert Mustacchi.\"
2c10c16deSRichard Lowe.\" Copyright (c) 2006, Sun Microsystems, Inc. All Rights Reserved.
30b5ce10aSAndy Stormont.\" Copyright 2014 Andrew Stormont.
49d6ca396SRobert Mustacchi.\" Copyright 2021 Oxide Computer Company
59d6ca396SRobert Mustacchi.\"
69d6ca396SRobert Mustacchi.\" The contents of this file are subject to the terms of the
79d6ca396SRobert Mustacchi.\" Common Development and Distribution License (the "License").
89d6ca396SRobert Mustacchi.\" You may not use this file except in compliance with the License.
99d6ca396SRobert Mustacchi.\"
109d6ca396SRobert Mustacchi.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
119d6ca396SRobert Mustacchi.\" or http://www.opensolaris.org/os/licensing.
129d6ca396SRobert Mustacchi.\" See the License for the specific language governing permissions
139d6ca396SRobert Mustacchi.\" and limitations under the License.
149d6ca396SRobert Mustacchi.\"
159d6ca396SRobert Mustacchi.\" When distributing Covered Code, include this CDDL HEADER in each
169d6ca396SRobert Mustacchi.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
179d6ca396SRobert Mustacchi.\" If applicable, add the following below this CDDL HEADER, with the
189d6ca396SRobert Mustacchi.\" fields enclosed by brackets "[]" replaced with your own identifying
199d6ca396SRobert Mustacchi.\" information: Portions Copyright [yyyy] [name of copyright owner]
209d6ca396SRobert Mustacchi.\"
219d6ca396SRobert Mustacchi.Dd November 30, 2021
229d6ca396SRobert Mustacchi.Dt UUID_CLEAR 3UUID
239d6ca396SRobert Mustacchi.Os
249d6ca396SRobert Mustacchi.Sh NAME
259d6ca396SRobert Mustacchi.Nm uuid_clear ,
269d6ca396SRobert Mustacchi.Nm uuid_compare ,
279d6ca396SRobert Mustacchi.Nm uuid_copy ,
289d6ca396SRobert Mustacchi.Nm uuid_generate ,
299d6ca396SRobert Mustacchi.Nm uuid_generate_random ,
309d6ca396SRobert Mustacchi.Nm uuid_generate_time ,
319d6ca396SRobert Mustacchi.Nm uuid_is_null ,
329d6ca396SRobert Mustacchi.Nm uuid_parse ,
339d6ca396SRobert Mustacchi.Nm uuid_time ,
349d6ca396SRobert Mustacchi.Nm uuid_unparse ,
359d6ca396SRobert Mustacchi.Nm uuid_unparse_lower ,
369d6ca396SRobert Mustacchi.Nm uuid_unparse_upper
379d6ca396SRobert Mustacchi.Nd universally unique identifier (UUID) operations
389d6ca396SRobert Mustacchi.Sh LIBRARY
399d6ca396SRobert Mustacchi.Lb libuuid
409d6ca396SRobert Mustacchi.Sh SYNOPSIS
419d6ca396SRobert Mustacchi.In uuid/uuid.h
429d6ca396SRobert Mustacchi.Ft void
439d6ca396SRobert Mustacchi.Fo uuid_clear
449d6ca396SRobert Mustacchi.Fa "uuid_t uu"
459d6ca396SRobert Mustacchi.Fc
469d6ca396SRobert Mustacchi.Ft int
479d6ca396SRobert Mustacchi.Fo uuid_compare
489d6ca396SRobert Mustacchi.Fa "uuid_t uu1"
499d6ca396SRobert Mustacchi.Fa "uuid_t uu2"
509d6ca396SRobert Mustacchi.Fc
519d6ca396SRobert Mustacchi.Ft void
529d6ca396SRobert Mustacchi.Fo uuid_copy
539d6ca396SRobert Mustacchi.Fa "uuid_t dst"
549d6ca396SRobert Mustacchi.Fa "uuid_t src"
559d6ca396SRobert Mustacchi.Fc
569d6ca396SRobert Mustacchi.Ft void
579d6ca396SRobert Mustacchi.Fo uuid_generate
589d6ca396SRobert Mustacchi.Fa "uuid_t out"
599d6ca396SRobert Mustacchi.Fc
609d6ca396SRobert Mustacchi.Ft void
619d6ca396SRobert Mustacchi.Fo uuid_generate_random
629d6ca396SRobert Mustacchi.Fa "uuid_t out"
639d6ca396SRobert Mustacchi.Fc
649d6ca396SRobert Mustacchi.Ft void
659d6ca396SRobert Mustacchi.Fo uuid_generate_time
669d6ca396SRobert Mustacchi.Fa "uuid_t out"
679d6ca396SRobert Mustacchi.Fc
689d6ca396SRobert Mustacchi.Ft int
699d6ca396SRobert Mustacchi.Fo uuid_is_null
709d6ca396SRobert Mustacchi.Fa "uuid_t uu"
719d6ca396SRobert Mustacchi.Fc
729d6ca396SRobert Mustacchi.Ft int
739d6ca396SRobert Mustacchi.Fo uuid_parse
749d6ca396SRobert Mustacchi.Fa "char *int"
759d6ca396SRobert Mustacchi.Fa "uuid_t uu"
769d6ca396SRobert Mustacchi.Fc
779d6ca396SRobert Mustacchi.Ft time_t
789d6ca396SRobert Mustacchi.Fo uuid_time
799d6ca396SRobert Mustacchi.Fa "uuid_t uu"
809d6ca396SRobert Mustacchi.Fa "struct timeval *ret_tv"
819d6ca396SRobert Mustacchi.Fc
829d6ca396SRobert Mustacchi.Ft void
839d6ca396SRobert Mustacchi.Fo uuid_unparse
849d6ca396SRobert Mustacchi.Fa "uuid_t uu"
859d6ca396SRobert Mustacchi.Fa "char *out"
869d6ca396SRobert Mustacchi.Fc
879d6ca396SRobert Mustacchi.Ft void
889d6ca396SRobert Mustacchi.Fo uuid_unparse_lower
899d6ca396SRobert Mustacchi.Fa "uuid_t uu"
909d6ca396SRobert Mustacchi.Fa "char *out"
919d6ca396SRobert Mustacchi.Fc
929d6ca396SRobert Mustacchi.Ft void
939d6ca396SRobert Mustacchi.Fo uuid_unparse_upper
949d6ca396SRobert Mustacchi.Fa "uuid_t uu"
959d6ca396SRobert Mustacchi.Fa "char *out"
969d6ca396SRobert Mustacchi.Fc
979d6ca396SRobert Mustacchi.Sh DESCRIPTION
989d6ca396SRobert MustacchiThe
999d6ca396SRobert Mustacchi.Fn uuid_clear
1009d6ca396SRobert Mustacchifunction sets the value of the specified universally unique identifier
1019d6ca396SRobert Mustacchi.Pq UUID
1029d6ca396SRobert Mustacchivariable
1039d6ca396SRobert Mustacchi.Fa uu
1049d6ca396SRobert Mustacchito the NULL value.
1059d6ca396SRobert Mustacchi.Pp
1069d6ca396SRobert MustacchiThe
1079d6ca396SRobert Mustacchi.Fn uuid_compare
1089d6ca396SRobert Mustacchifunction compares the two specified UUID variables
1099d6ca396SRobert Mustacchi.Fa uu1
1109d6ca396SRobert Mustacchiand
1119d6ca396SRobert Mustacchi.Fa uu2
1129d6ca396SRobert Mustacchito each other.
1139d6ca396SRobert MustacchiIt returns an integer less than, equal to, or greater than zero if
1149d6ca396SRobert Mustacchi.Fa uu1
1159d6ca396SRobert Mustacchiis found to be, respectively, lexicographically less than, equal, or greater
1169d6ca396SRobert Mustacchithan
1179d6ca396SRobert Mustacchi.Fa uu2 .
1189d6ca396SRobert Mustacchi.Pp
1199d6ca396SRobert MustacchiThe
1209d6ca396SRobert Mustacchi.Fn uuid_copy
1219d6ca396SRobert Mustacchifunction copies the UUID variable
1229d6ca396SRobert Mustacchi.Fa src
1239d6ca396SRobert Mustacchito
1249d6ca396SRobert Mustacchi.Fa dst .
1259d6ca396SRobert Mustacchi.Pp
1269d6ca396SRobert MustacchiThe
1279d6ca396SRobert Mustacchi.Fn uuid_generate
1289d6ca396SRobert Mustacchiand
1299d6ca396SRobert Mustacchi.Fn uuid_generate_random
1309d6ca396SRobert Mustacchifunctions create a new UUID that is generated based on high-quality randomness
1319d6ca396SRobert Mustacchiutilizing the
1329d6ca396SRobert Mustacchi.Xr arc4random 3C
1339d6ca396SRobert Mustacchifunction.
1349d6ca396SRobert MustacchiThese correspond to a DCE version 4 UUID.
1359d6ca396SRobert MustacchiOn some implementations it is possible that the
1369d6ca396SRobert Mustacchi.Fn uuid_generate
1379d6ca396SRobert Mustacchifunction will fall back to generating a version 1 UUID.
1389d6ca396SRobert MustacchiWhile in our current implementation this is not possible, applications should
1399d6ca396SRobert Mustacchinot assume a guaranteed format when calling the
1409d6ca396SRobert Mustacchi.Fn uuid_generate
1419d6ca396SRobert Mustacchifunction.
1429d6ca396SRobert Mustacchi.Pp
1439d6ca396SRobert MustacchiThe
1449d6ca396SRobert Mustacchi.Fn uuid_generate_time
1459d6ca396SRobert Mustacchifunction uses the current time and the local Ethernet MAC address
1469d6ca396SRobert Mustacchi.Pq if available, otherwise a MAC address is fabricated
1479d6ca396SRobert Mustacchithat corresponds to a DCE version 1 UUID.
1489d6ca396SRobert MustacchiIf the UUID is not guaranteed to be unique, the multicast bit is set
1499d6ca396SRobert Mustacchi.Pq the high-order bit of octet number 10 .
1509d6ca396SRobert Mustacchi.Pp
1519d6ca396SRobert MustacchiThe
1529d6ca396SRobert Mustacchi.Fn uuid_is_null
1539d6ca396SRobert Mustacchifunction compares the value of the specified UUID variable
1549d6ca396SRobert Mustacchi.Fa uu
1559d6ca396SRobert Mustacchito the NULL value.
1569d6ca396SRobert MustacchiIf the value is equal to the NULL UUID,
1579d6ca396SRobert Mustacchi.Sy 1
158c10c16deSRichard Loweis returned.
1599d6ca396SRobert MustacchiOtherwise
1609d6ca396SRobert Mustacchi.Sy 0
1619d6ca396SRobert Mustacchiis returned.
1629d6ca396SRobert Mustacchi.Pp
1639d6ca396SRobert MustacchiThe
1649d6ca396SRobert Mustacchi.Fn uuid_parse
1659d6ca396SRobert Mustacchifunction converts the UUID string specified by
1669d6ca396SRobert Mustacchi.Fa in
1679d6ca396SRobert Mustacchito the internal
1689d6ca396SRobert Mustacchi.Vt uuid_t
1699d6ca396SRobert Mustacchiformat.
1709d6ca396SRobert MustacchiThe input UUID is a string of the form
1719d6ca396SRobert Mustacchi.Sy cefa7a9c-1dd2-11b2-8350-880020adbeef .
1729d6ca396SRobert MustacchiIn
1739d6ca396SRobert Mustacchi.Xr printf 3C
1749d6ca396SRobert Mustacchiformat, the string is
1759d6ca396SRobert Mustacchi.Dq Sy %08x-%04x-%04x-%04x-%012x ,
1769d6ca396SRobert Mustacchi36 bytes plus the trailing null character.
1779d6ca396SRobert MustacchiIf the input string is parsed successfully,
1789d6ca396SRobert Mustacchi.Sy 0
1799d6ca396SRobert Mustacchiis returned and the UUID is stored in the location pointed to by
1809d6ca396SRobert Mustacchi.Fa uu .
1819d6ca396SRobert MustacchiOtherwise
1829d6ca396SRobert Mustacchi.Sy -1
1839d6ca396SRobert Mustacchiis returned.
1849d6ca396SRobert Mustacchi.Pp
1859d6ca396SRobert MustacchiThe
1869d6ca396SRobert Mustacchi.Fn uuid_time
1879d6ca396SRobert Mustacchifunction extracts the time at which the specified UUID
1889d6ca396SRobert Mustacchi.Fa uu
1899d6ca396SRobert Mustacchiwas created.
1909d6ca396SRobert MustacchiSince the UUID creation time is encoded within the UUID, this function can
1919d6ca396SRobert Mustacchireasonably be expected to extract the creation time only for UUIDs created with
1929d6ca396SRobert Mustacchithe
1939d6ca396SRobert Mustacchi.Fn uuid_generate_time
1949d6ca396SRobert Mustacchifunction.
1959d6ca396SRobert MustacchiThe time at which the UUID was created, in seconds since January 1, 1970 GMT
1969d6ca396SRobert Mustacchi.Pq the epoch ,
1979d6ca396SRobert Mustacchiis returned
1989d6ca396SRobert Mustacchi.Po
1999d6ca396SRobert Mustacchisee
2009d6ca396SRobert Mustacchi.Xr time 2
2019d6ca396SRobert Mustacchi.Pc .
2029d6ca396SRobert MustacchiThe time at which the UUID was created, in seconds and microseconds since the
2039d6ca396SRobert Mustacchiepoch is also stored in the location pointed to by
2049d6ca396SRobert Mustacchi.Fa ret_tv
2059d6ca396SRobert Mustacchi.Po
2069d6ca396SRobert Mustacchisee
2079d6ca396SRobert Mustacchi.Xr gettimeofday 3C
2089d6ca396SRobert Mustacchi.Pc .
2099d6ca396SRobert Mustacchi.Pp
2109d6ca396SRobert MustacchiThe
2119d6ca396SRobert Mustacchi.Fn uuid_unparse
2129d6ca396SRobert Mustacchiand
2139d6ca396SRobert Mustacchi.Fn uuid_unparse_lower
2149d6ca396SRobert Mustacchifunctions convert the specified UUID
2159d6ca396SRobert Mustacchi.Fa uu
2169d6ca396SRobert Mustacchifrom the internal binary format to a lower case string of the length defined in
2179d6ca396SRobert Mustacchithe
2189d6ca396SRobert Mustacchi.In uuid/uuid.h
2199d6ca396SRobert Mustacchimacro,
2209d6ca396SRobert Mustacchi.Dv UUID_PRINTABLE_STRING_LENGTH ,
2219d6ca396SRobert Mustacchiwhich includes the trailing null character.
2229d6ca396SRobert MustacchiThe resulting value is stored in the character string pointed to by
2239d6ca396SRobert Mustacchi.Fa out .
2249d6ca396SRobert Mustacchi.Pp
2259d6ca396SRobert MustacchiThe uuid_unparse_upper
2269d6ca396SRobert Mustacchifunction converts the specified UUID
2279d6ca396SRobert Mustacchi.Fa uu
2280b5ce10aSAndy Stormontfrom the internal binary format to a upper case string of the length defined in
2299d6ca396SRobert Mustacchithe
2309d6ca396SRobert Mustacchi.In uuid/uuid.h
2319d6ca396SRobert Mustacchimacro,
2329d6ca396SRobert Mustacchi.Dv UUID_PRINTABLE_STRING_LENGTH ,
2339d6ca396SRobert Mustacchiwhich includes the trailing null character.
2349d6ca396SRobert MustacchiThe resulting value is stored in the character string pointed to by
2359d6ca396SRobert Mustacchi.Fa out .
2369d6ca396SRobert Mustacchi.Sh INTERFACE STABILITY
2379d6ca396SRobert Mustacchi.Sy Evolving
2389d6ca396SRobert Mustacchi.Sh MT-LEVEL
2399d6ca396SRobert Mustacchi.Sy Safe
2409d6ca396SRobert Mustacchi.Sh SEE ALSO
2419d6ca396SRobert Mustacchi.Xr time 2 ,
2429d6ca396SRobert Mustacchi.Xr arc4random 3C ,
2439d6ca396SRobert Mustacchi.Xr gettimeofday 3C ,
2449d6ca396SRobert Mustacchi.Xr printf 3C ,
2459d6ca396SRobert Mustacchi.Xr libuuid 3LIB ,
246*bbf21555SRichard Lowe.Xr attributes 7
247