From: Ian Campbell Date: Wed, 23 Mar 2011 16:55:56 +0000 (+0000) Subject: tools/libxl: move uuid wrapper functions out of line. X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=7025d6fbfcd3a92fbbb4d87686bbedcc75c4664a;p=xen.git 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 Acked-by: Ian Jackson Committed-by: Ian Jackson --- diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile index 39f53f6c03..fc4efd871f 100644 --- a/tools/libxl/Makefile +++ b/tools/libxl/Makefile @@ -35,7 +35,7 @@ LIBXL_OBJS-$(CONFIG_IA64) += libxl_nocpuid.o LIBXL_OBJS = flexarray.o libxl.o libxl_create.o libxl_dm.o libxl_pci.o \ libxl_dom.o libxl_exec.o libxl_xshelp.o libxl_device.o \ - libxl_internal.o libxl_utils.o $(LIBXL_OBJS-y) + libxl_internal.o libxl_utils.o libxl_uuid.o $(LIBXL_OBJS-y) LIBXL_OBJS += _libxl_types.o AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h 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 +#include 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 @@ -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__ */