X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Fguid.h;fp=include%2Fwimlib%2Fguid.h;h=be9a10f7e1dd205a339fc876367c1e3fff2fd550;hp=0000000000000000000000000000000000000000;hb=3df2989aaef4c627f4fea630859ae9f72e9c307e;hpb=b2eba082865fb3bec25cdedaf617bc4d209407f8 diff --git a/include/wimlib/guid.h b/include/wimlib/guid.h new file mode 100644 index 00000000..be9a10f7 --- /dev/null +++ b/include/wimlib/guid.h @@ -0,0 +1,40 @@ +/* + * guid.h + * + * Utility functions for handling 16-byte globally unique identifiers (GUIDs). + */ + +#ifndef _WIMLIB_GUID_H +#define _WIMLIB_GUID_H + +#include + +#include "wimlib/util.h" + +#define GUID_SIZE 16 + +static inline void +copy_guid(u8 dest[GUID_SIZE], const u8 src[GUID_SIZE]) +{ + memcpy(dest, src, GUID_SIZE); +} + +static inline int +cmp_guids(const u8 guid1[GUID_SIZE], const u8 guid2[GUID_SIZE]) +{ + return memcmp(guid1, guid2, GUID_SIZE); +} + +static inline bool +guids_equal(const u8 guid1[GUID_SIZE], const u8 guid2[GUID_SIZE]) +{ + return !cmp_guids(guid1, guid2); +} + +static inline void +generate_guid(u8 guid[GUID_SIZE]) +{ + return randomize_byte_array(guid, GUID_SIZE); +} + +#endif /* _WIMLIB_GUID_H */