X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=man%2Fsd-id128.xml;h=22d5e0e3ed718fb2ba2ef23c67cc179a57aaf3cd;hb=a6991726f80c299ac7275f4570e310e1dd5bce96;hp=abd2004d1caeb244d1554f48c9fd34cbf12f8db0;hpb=183de6d7d9def43ec90b94e775fdc49539a950ba;p=thirdparty%2Fsystemd.git diff --git a/man/sd-id128.xml b/man/sd-id128.xml index abd2004d1ca..22d5e0e3ed7 100644 --- a/man/sd-id128.xml +++ b/man/sd-id128.xml @@ -1,142 +1,133 @@ - - - - - - - - sd-id128 - systemd - - - - Developer - Lennart - Poettering - lennart@poettering.net - - - - - - sd-id128 - 3 - - - - sd-id128 - sd_id128_t - SD_ID128_MAKE - SD_ID128_CONST_STR - SD_ID128_FORMAT_STR - SD_ID128_FORMAT_VAL - sd_id128_equal - APIs for processing 128 bit IDs - - - - - #include <systemd/sd-id128.h> - - - - pkg-config --cflags --libs libsystemd-id128 - - - - - - Description - - sd-id128.h 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 RFC - 4122, 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. - - - See - sd_id128_to_string3, - sd_id128_randomize3 and - sd_id128_get_machine3 - for more information about the implemented - functions. - - A 128 bit ID is implemented as the following - union type: - - typedef union sd_id128 { + + + + + + + sd-id128 + systemd + + + + sd-id128 + 3 + + + + sd-id128 + sd_id128_t + SD_ID128_MAKE + SD_ID128_MAKE_STR + SD_ID128_NULL + SD_ID128_CONST_STR + SD_ID128_FORMAT_STR + SD_ID128_UUID_FORMAT_STR + SD_ID128_FORMAT_VAL + sd_id128_equal + sd_id128_is_null + APIs for processing 128-bit IDs + + + + + #include <systemd/sd-id128.h> + + + + pkg-config --cflags --libs libsystemd + + + + + + Description + + sd-id128.h 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 RFC + 4122 but use a simpler string format. 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. + + + See + sd_id128_to_string3, + sd_id128_randomize3 + and + sd_id128_get_machine3 + for more information about the implemented functions. + + A 128-bit ID is implemented as the following + union type: + + typedef union sd_id128 { uint8_t bytes[16]; uint64_t qwords[2]; } sd_id128_t; - 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. - - A couple of macros are defined to denote and - decode 128 bit IDs: - - SD_ID128_MAKE() 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: - - #define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1) - - SD_ID128_CONST_STR() may be - use to convert constant 128bit IDs into constant - strings for output. The following example code will - output the string - "fc2e22bc6ee647b6b90729ab34a250b1": - int main(int argc, char *argv[]) { - puts(SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP)); + 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. + + A couple of macros are defined to denote and decode 128-bit + IDs: + + SD_ID128_MAKE() 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: + + #define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1) + + SD_ID128_NULL may be used to refer to the 128bit ID consisting of only NUL + bytes. + + SD_ID128_MAKE_STR() is similar to SD_ID128_MAKE(), but creates a + const char* expression that can be conveniently used in message formats and such: + + #include <stdio.h> +#define SD_MESSAGE_COREDUMP_STR SD_ID128_MAKE_STR(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1) + +int main(int argc, char **argv) { + puts("Match for coredumps: MESSAGE_ID=" SD_MESSAGE_COREDUMP_STR); +} + + + SD_ID128_CONST_STR() may be used to + convert constant 128-bit IDs into constant strings for output. The + following example code will output the string + "fc2e22bc6ee647b6b90729ab34a250b1": + int main(int argc, char *argv[]) { + puts("Match for coredumps: %s", SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP)); } - SD_ID128_FORMAT_STR and - SD_ID128_FORMAT_VAL() may be used - to format a 128 bit ID in a - printf3 - format string, as shown in the following - example: + SD_ID128_FORMAT_STR() and + SD_ID128_FORMAT_VAL() may be used to format a + 128-bit ID in a + printf3 + format string, as shown in the following example: - int main(int argc, char *argv[]) { + 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; } - Use sd_id128_equal() to compare two 128 bit IDs: + SD_ID128_UUID_FORMAT_STR() is similar to + SD_ID128_FORMAT_STR() but includes separating hyphens to conform to the + "canonical representation". + + + Use sd_id128_equal() to compare two 128-bit IDs: - int main(int argc, char *argv[]) { + 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); @@ -146,36 +137,32 @@ return 0; } - Note that new, randomized IDs may be generated - with - journalctl1's - --new-id option. - - - - Notes - - These APIs are implemented as a shared library, - which can be compiled and linked to with the - libsystemd-id128 - pkg-config1 - file. - - - - - See Also - - systemd1, - sd_id128_to_string3, - sd_id128_randomize3, - sd_id128_get_machine3, - printf3, - journalctl1, - sd-journal7, - pkg-config1, - machine-id5 - - + Use sd_id128_is_null() to check if an 128bit ID consists of only NUL bytes: + + int main(int argc, char *argv[]) { + assert(sd_id128_is_null(SD_ID128_NULL)); +} + + Note that new, randomized IDs may be generated with + systemd-id1281's + new command. + + + + + + See Also + + systemd1, + sd_id128_to_string3, + sd_id128_randomize3, + sd_id128_get_machine3, + printf3, + journalctl1, + sd-journal7, + pkg-config1, + machine-id5 + +