diff options
Diffstat (limited to 'man/sd-id128.xml')
-rw-r--r-- | man/sd-id128.xml | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/man/sd-id128.xml b/man/sd-id128.xml deleted file mode 100644 index ac2000e275..0000000000 --- a/man/sd-id128.xml +++ /dev/null @@ -1,181 +0,0 @@ -<?xml version='1.0'?> <!--*-nxml-*--> -<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" - "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> - -<!-- - This file is part of systemd. - - Copyright 2012 Lennart Poettering - - systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - systemd is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with systemd; If not, see <http://www.gnu.org/licenses/>. ---> - -<refentry id="sd-id128"> - - <refentryinfo> - <title>sd-id128</title> - <productname>systemd</productname> - - <authorgroup> - <author> - <contrib>Developer</contrib> - <firstname>Lennart</firstname> - <surname>Poettering</surname> - <email>lennart@poettering.net</email> - </author> - </authorgroup> - </refentryinfo> - - <refmeta> - <refentrytitle>sd-id128</refentrytitle> - <manvolnum>3</manvolnum> - </refmeta> - - <refnamediv> - <refname>sd-id128</refname> - <refname>sd_id128_t</refname> - <refname>SD_ID128_MAKE</refname> - <refname>SD_ID128_CONST_STR</refname> - <refname>SD_ID128_FORMAT_STR</refname> - <refname>SD_ID128_FORMAT_VAL</refname> - <refname>sd_id128_equal</refname> - <refpurpose>APIs for processing 128 bit IDs</refpurpose> - </refnamediv> - - <refsynopsisdiv> - <funcsynopsis> - <funcsynopsisinfo>#include <systemd/sd-id128.h></funcsynopsisinfo> - </funcsynopsis> - - <cmdsynopsis> - <command>pkg-config --cflags --libs libsystemd-id128</command> - </cmdsynopsis> - - </refsynopsisdiv> - - <refsect1> - <title>Description</title> - - <para><filename>sd-id128.h</filename> provides APIs to - process and generate 128 bit ID values. The 128 bit ID - values processed and generated by these APIs are a - generalization of OSF UUIDs as defined by <ulink - url="http://tools.ietf.org/html/rfc4122">RFC - 4122</ulink>, though use a simpler string - formatting. These functions impose no structure on the - used IDs, much unlike OSF UUIDs or Microsoft GUIDs, - but are fully compatible with those types of IDs. - </para> - - <para>See - <citerefentry><refentrytitle>sd_id128_to_string</refentrytitle><manvolnum>3</manvolnum></citerefentry>, - <citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry> and - <citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry> - for more information about the implemented - functions.</para> - - <para>A 128 bit ID is implemented as the following - union type:</para> - - <programlisting>typedef union sd_id128 { - uint8_t bytes[16]; - uint64_t qwords[2]; -} sd_id128_t;</programlisting> - - <para>This union type allows accessing the 128 bit ID - as 16 separate bytes or two 64 bit words. It is generally - safer to access the ID components by their 8 bit array - to avoid endianness issues. This union is intended to - be passed call-by-value (as opposed to - call-by-reference) and may be directly manipulated by - clients.</para> - - <para>A couple of macros are defined to denote and - decode 128 bit IDs:</para> - - <para><function>SD_ID128_MAKE()</function> may be used - to denote a constant 128 bit ID in source code. A - commonly used idiom is to assign a name to a 128 bit - ID using this macro:</para> - - <programlisting>#define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1)</programlisting> - - <para><function>SD_ID128_CONST_STR()</function> may be - used to convert constant 128bit IDs into constant - strings for output. The following example code will - output the string - "fc2e22bc6ee647b6b90729ab34a250b1":</para> - <programlisting>int main(int argc, char *argv[]) { - puts(SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP)); -}</programlisting> - - <para><function>SD_ID128_FORMAT_STR</function> and - <function>SD_ID128_FORMAT_VAL()</function> may be used - to format a 128 bit ID in a - <citerefentry><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry> - format string, as shown in the following - example:</para> - - <programlisting>int main(int argc, char *argv[]) { - sd_id128_t id; - id = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07); - printf("The ID encoded in this C file is " SD_ID128_FORMAT_STR ".\n", SD_ID128_FORMAT_VAL(id)); - return 0; -}</programlisting> - - <para>Use <function>sd_id128_equal()</function> to compare two 128 bit IDs:</para> - - <programlisting>int main(int argc, char *argv[]) { - sd_id128_t a, b, c; - a = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07); - b = SD_ID128_MAKE(f2,28,88,9c,5f,09,44,15,9d,d7,04,77,58,cb,e7,3e); - c = a; - assert(sd_id128_equal(a, c)); - assert(!sd_id128_equal(a, b)); - return 0; -}</programlisting> - - <para>Note that new, randomized IDs may be generated - with - <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s - <literal>--new-id</literal> option.</para> - </refsect1> - - <refsect1> - <title>Notes</title> - - <para>These APIs are implemented as a shared library, - which can be compiled and linked to with the - <literal>libsystemd-id128</literal> - <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry> - file.</para> - - </refsect1> - - <refsect1> - <title>See Also</title> - <para> - <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, - <citerefentry><refentrytitle>sd_id128_to_string</refentrytitle><manvolnum>3</manvolnum></citerefentry>, - <citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry>, - <citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>, - <citerefentry><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>, - <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, - <citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>7</manvolnum></citerefentry>, - <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>, - <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> - </para> - </refsect1> - -</refentry> |