60 #define LUMIERA_UID_INITIALIZER(l) \ 62 l[0], l[1], l[2], l[3], l[4], l[5], l[6], l[7], \ 63 l[8], l[9], l[10], l[11], l[12], l[13], l[14], l[15] \ 66 #define LUMIERA_UID_INITIALIZER(l) l 69 #define LUMIERA_UID_FMT \ 70 "\\%.3hho\\%.3hho\\%.3hho\\%.3hho" \ 71 "\\%.3hho\\%.3hho\\%.3hho\\%.3hho" \ 72 "\\%.3hho\\%.3hho\\%.3hho\\%.3hho" \ 73 "\\%.3hho\\%.3hho\\%.3hho\\%.3hho" 75 #define LUMIERA_UID_CHAR(l,n) ((unsigned char*)l)[n] 78 #define LUMIERA_UID_ELEMENTS(l) \ 79 LUMIERA_UID_CHAR(l,0), LUMIERA_UID_CHAR(l,1), LUMIERA_UID_CHAR(l,2), LUMIERA_UID_CHAR(l,3), \ 80 LUMIERA_UID_CHAR(l,4), LUMIERA_UID_CHAR(l,5), LUMIERA_UID_CHAR(l,6), LUMIERA_UID_CHAR(l,7), \ 81 LUMIERA_UID_CHAR(l,8), LUMIERA_UID_CHAR(l,9), LUMIERA_UID_CHAR(l,10), LUMIERA_UID_CHAR(l,11), \ 82 LUMIERA_UID_CHAR(l,12), LUMIERA_UID_CHAR(l,13), LUMIERA_UID_CHAR(l,14), LUMIERA_UID_CHAR(l,15) 87 #define LUIDGEN PLEASE_RUN_THE_LUIDGEN_TOOL_ON_THIS_FILE void lumiera_uid_set_ptr(lumiera_uid *luid, void *ptr)
Store a generic pointer in a luid.
void lumiera_uid_copy(lumiera_uid *dest, lumiera_uid *src)
Copy an luid.
size_t lumiera_uid_hash(const lumiera_uid *luid)
Generate a hash sum over an luid.
void * lumiera_uid_ptr_get(const lumiera_uid *luid)
Retrieve a generic pointer stored in a luid.
Hash value types and utilities.
unsigned char lumiera_uid[16]
storage for a Lumiera unique ID, based on a 128bit random number
int lumiera_uid_eq(const lumiera_uid *luida, const lumiera_uid *luidb)
Test 2 luid's for equality.
void lumiera_uid_gen(lumiera_uid *luid)
Generate a new luid.