diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2011-03-23 16:55:56 +0000 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2011-03-23 16:55:56 +0000 |
commit | 7025d6fbfcd3a92fbbb4d87686bbedcc75c4664a (patch) | |
tree | b79d0348d95ced903c40715051a662ca5c0af430 /tools/libxl/libxl_uuid.h | |
parent | 5ba627e3ab07793506dd71bac2ae377e3cdd74be (diff) | |
download | xen-7025d6fbfcd3a92fbbb4d87686bbedcc75c4664a.tar.gz xen-7025d6fbfcd3a92fbbb4d87686bbedcc75c4664a.tar.bz2 xen-7025d6fbfcd3a92fbbb4d87686bbedcc75c4664a.zip |
tools/libxl: move uuid wrapper functions out of line.
This isolates users of libxenlight from the need to know about the
different OS schemes for UUIDs, in particular the linkage
requirements.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxl_uuid.h')
-rw-r--r-- | tools/libxl/libxl_uuid.h | 89 |
1 files changed, 9 insertions, 80 deletions
diff --git a/tools/libxl/libxl_uuid.h b/tools/libxl/libxl_uuid.h index e2cafea030..e68ab6c14e 100644 --- a/tools/libxl/libxl_uuid.h +++ b/tools/libxl/libxl_uuid.h @@ -24,6 +24,7 @@ #if defined(__linux__) #include <uuid/uuid.h> +#include <stdint.h> typedef struct { uuid_t uuid; @@ -31,41 +32,6 @@ typedef struct { #define LIBXL_UUID_BYTES(arg) LIBXL__UUID_BYTES(((uint8_t *)arg.uuid)) -static inline int libxl_uuid_is_nil(libxl_uuid *uuid) -{ - return uuid_is_null(uuid->uuid); -} - -static inline void libxl_uuid_generate(libxl_uuid *uuid) -{ - uuid_generate(uuid->uuid); -} - -static inline int libxl_uuid_from_string(libxl_uuid *uuid, const char *in) -{ - return uuid_parse(in, uuid->uuid); -} - -static inline void libxl_uuid_copy(libxl_uuid *dst, libxl_uuid *src) -{ - uuid_copy(dst->uuid, src->uuid); -} - -static inline void libxl_uuid_clear(libxl_uuid *uuid) -{ - uuid_clear(uuid->uuid); -} - -static inline int libxl_uuid_compare(libxl_uuid *uuid1, libxl_uuid *uuid2) -{ - return uuid_compare(uuid1->uuid, uuid2->uuid); -} - -static inline uint8_t *libxl_uuid_bytearray(libxl_uuid *uuid) -{ - return uuid->uuid; -} - #elif defined(__NetBSD__) #include <uuid.h> @@ -80,55 +46,18 @@ typedef struct { uint8_t uuid[16]; } libxl_uuid; -static inline int libxl_uuid_is_nil(libxl_uuid *uuid) -{ - uint32_t status; - return uuid_is_nil((uuid_t *)uuid->uuid, &status); -} - -static inline void libxl_uuid_generate(libxl_uuid *uuid) -{ - uint32_t status; - uuid_create((uuid_t *)uuid->uuid, &status); - assert(status == uuid_s_ok); -} - -#define LIBXL__UUID_PTRS(uuid) &uuid[0], &uuid[1], &uuid[2], &uuid[3], \ - &uuid[4], &uuid[5], &uuid[6], &uuid[7], \ - &uuid[8], &uuid[9], &uuid[10],&uuid[11], \ - &uuid[12],&uuid[13],&uuid[14],&uuid[15] -static inline int libxl_uuid_from_string(libxl_uuid *uuid, const char *in) -{ - if ( sscanf(in, LIBXL_UUID_FMT, LIBXL__UUID_PTRS(uuid->uuid)) != sizeof(uuid->uuid) ) - return -1; - return 0; -} -#undef LIBXL__UUID_PTRS - -static inline void libxl_uuid_copy(libxl_uuid *dst, libxl_uuid *src) -{ - memcpy(dst->uuid, src->uuid, sizeof(dst->uuid)); -} - -static inline void libxl_uuid_clear(libxl_uuid *uuid) -{ - memset(uuid->uuid, 0, sizeof(uuid->uuid)); -} - -static inline int libxl_uuid_compare(libxl_uuid *uuid1, libxl_uuid *uuid2) -{ - return memcmp(uuid1->uuid, uuid2->uuid, sizeof(uuid1->uuid)); -} - -static inline uint8_t *libxl_uuid_bytearray(libxl_uuid *uuid) -{ - return uuid->uuid; -} - #else #error "Please update libxl_uuid.h for your OS" #endif +int libxl_uuid_is_nil(libxl_uuid *uuid); +void libxl_uuid_generate(libxl_uuid *uuid); +int libxl_uuid_from_string(libxl_uuid *uuid, const char *in); +void libxl_uuid_copy(libxl_uuid *dst, libxl_uuid *src); +void libxl_uuid_clear(libxl_uuid *uuid); +int libxl_uuid_compare(libxl_uuid *uuid1, libxl_uuid *uuid2); +uint8_t *libxl_uuid_bytearray(libxl_uuid *uuid); + #endif /* __LIBXL_UUID_H__ */ |