00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef SU_UNIQUEID_H
00026
00027 #define SU_UNIQUEID_H
00028
00029
00041 #ifndef SU_TYPES_H
00042 #include <sofia-sip/su_types.h>
00043 #endif
00044
00045 SOFIA_BEGIN_DECLS
00046
00048 typedef union GloballyUniqueIdentifier {
00049 unsigned char id[16];
00050 struct {
00051 uint32_t time_low;
00052 uint16_t time_mid;
00053 uint16_t time_high_and_version;
00054 uint8_t clock_seq_hi_and_reserved;
00055 uint8_t clock_seq_low;
00056 uint8_t node[6];
00057 } s;
00058 } su_guid_t;
00059
00061 SOFIAPUBFUN size_t su_node_identifier(void *address, size_t addrlen);
00062
00072 SOFIAPUBFUN void su_guid_generate(su_guid_t *guid);
00073
00090 SOFIAPUBFUN int su_guid_sprintf(char* buf, size_t len, su_guid_t const *guid);
00091
00092 enum {
00094 su_guid_strlen = 8 + 5 + 5 + 5 + 13
00095 };
00096
00108 SOFIAPUBFUN int su_randint(int lb, int ub);
00109
00117 SOFIAPUBFUN void *su_randmem(void *mem, size_t siz);
00118
00119 SOFIA_END_DECLS
00120
00121 #endif