From 05dbcc741d966ea8596e1c07735c653f391d27ef Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Thu, 17 Mar 2011 19:13:53 +0000 Subject: tools/blktap2: push uuid wrapper functions down into libvhd. Nothing else uses them. Signed-off-by: Ian Campbell Committed-by: Ian Jackson --- tools/blktap2/drivers/block-vhd.c | 2 +- tools/blktap2/include/blk_uuid.h | 130 --------------------------------- tools/blktap2/include/libvhd-journal.h | 2 +- tools/blktap2/include/libvhd.h | 4 +- tools/blktap2/include/vhd-uuid.h | 130 +++++++++++++++++++++++++++++++++ tools/blktap2/include/vhd.h | 4 +- tools/blktap2/vhd/lib/libvhd-journal.c | 2 +- tools/blktap2/vhd/lib/libvhd.c | 8 +- tools/blktap2/vhd/lib/vhd-util-check.c | 4 +- tools/blktap2/vhd/lib/vhd-util-read.c | 4 +- 10 files changed, 145 insertions(+), 145 deletions(-) delete mode 100644 tools/blktap2/include/blk_uuid.h create mode 100644 tools/blktap2/include/vhd-uuid.h (limited to 'tools/blktap2') diff --git a/tools/blktap2/drivers/block-vhd.c b/tools/blktap2/drivers/block-vhd.c index 649664a8a5..76ea5bd4f1 100644 --- a/tools/blktap2/drivers/block-vhd.c +++ b/tools/blktap2/drivers/block-vhd.c @@ -807,7 +807,7 @@ vhd_validate_parent(td_driver_t *child_driver, } */ - if (blk_uuid_compare(&child->vhd.header.prt_uuid, &parent->vhd.footer.uuid)) { + if (vhd_uuid_compare(&child->vhd.header.prt_uuid, &parent->vhd.footer.uuid)) { DPRINTF("ERROR: %s: %s, %s: parent uuid has changed since " "snapshot. Child image no longer valid.\n", __func__, child->vhd.file, parent->vhd.file); diff --git a/tools/blktap2/include/blk_uuid.h b/tools/blktap2/include/blk_uuid.h deleted file mode 100644 index 9d554a9ce5..0000000000 --- a/tools/blktap2/include/blk_uuid.h +++ /dev/null @@ -1,130 +0,0 @@ -/* Copyright (c) 2008, XenSource Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of XenSource Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -#ifndef __BLKTAP2_UUID_H__ -#define __BLKTAP2_UUID_H__ - -#if defined(__linux__) - -#include - -typedef struct { - uuid_t uuid; -} blk_uuid_t; - -static inline int blk_uuid_is_nil(blk_uuid_t *uuid) -{ - return uuid_is_null(uuid->uuid); -} - -static inline void blk_uuid_generate(blk_uuid_t *uuid) -{ - uuid_generate(uuid->uuid); -} - -static inline void blk_uuid_to_string(blk_uuid_t *uuid, char *out, size_t size) -{ - uuid_unparse(uuid->uuid, out); -} - -static inline void blk_uuid_from_string(blk_uuid_t *uuid, const char *in) -{ - uuid_parse(in, uuid->uuid); -} - -static inline void blk_uuid_copy(blk_uuid_t *dst, blk_uuid_t *src) -{ - uuid_copy(dst->uuid, src->uuid); -} - -static inline void blk_uuid_clear(blk_uuid_t *uuid) -{ - uuid_clear(uuid->uuid); -} - -static inline int blk_uuid_compare(blk_uuid_t *uuid1, blk_uuid_t *uuid2) -{ - return uuid_compare(uuid1->uuid, uuid2->uuid); -} - -#elif defined(__NetBSD__) - -#include -#include -#include - -typedef uuid_t blk_uuid_t; - -static inline int blk_uuid_is_nil(blk_uuid_t *uuid) -{ - uint32_t status; - return uuid_is_nil((uuid_t *)uuid, &status); -} - -static inline void blk_uuid_generate(blk_uuid_t *uuid) -{ - uint32_t status; - uuid_create((uuid_t *)uuid, &status); -} - -static inline void blk_uuid_to_string(blk_uuid_t *uuid, char *out, size_t size) -{ - uint32_t status; - char *_out = NULL; - uuid_to_string((uuid_t *)uuid, &_out, &status); - strlcpy(out, _out, size); - free(_out); -} - -static inline void blk_uuid_from_string(blk_uuid_t *uuid, const char *in) -{ - uint32_t status; - uuid_from_string(in, (uuid_t *)uuid, &status); -} - -static inline void blk_uuid_copy(blk_uuid_t *dst, blk_uuid_t *src) -{ - memcpy((uuid_t *)dst, (uuid_t *)src, sizeof(uuid_t)); -} - -static inline void blk_uuid_clear(blk_uuid_t *uuid) -{ - memset((uuid_t *)uuid, 0, sizeof(uuid_t)); -} - -static inline int blk_uuid_compare(blk_uuid_t *uuid1, blk_uuid_t *uuid2) -{ - uint32_t status; - return uuid_compare((uuid_t *)uuid1, (uuid_t *)uuid2, &status); -} - -#else - -#error "Please update blk_uuid.h for your OS" - -#endif - -#endif /* __BLKTAP2_UUID_H__ */ diff --git a/tools/blktap2/include/libvhd-journal.h b/tools/blktap2/include/libvhd-journal.h index 75852523c9..78e45a2c24 100644 --- a/tools/blktap2/include/libvhd-journal.h +++ b/tools/blktap2/include/libvhd-journal.h @@ -39,7 +39,7 @@ typedef struct vhd_journal_header { char cookie[8]; - blk_uuid_t uuid; + vhd_uuid_t uuid; uint64_t vhd_footer_offset; uint32_t journal_data_entries; uint32_t journal_metadata_entries; diff --git a/tools/blktap2/include/libvhd.h b/tools/blktap2/include/libvhd.h index ac6908415e..8e854e413f 100644 --- a/tools/blktap2/include/libvhd.h +++ b/tools/blktap2/include/libvhd.h @@ -36,7 +36,7 @@ #include #endif -#include "blk_uuid.h" +#include "vhd-uuid.h" #include "vhd.h" #ifndef O_LARGEFILE @@ -216,7 +216,7 @@ vhd_parent_locator_size(vhd_parent_locator_t *loc) static inline int vhd_parent_raw(vhd_context_t *ctx) { - return blk_uuid_is_nil(&ctx->header.prt_uuid); + return vhd_uuid_is_nil(&ctx->header.prt_uuid); } void libvhd_set_log_level(int); diff --git a/tools/blktap2/include/vhd-uuid.h b/tools/blktap2/include/vhd-uuid.h new file mode 100644 index 0000000000..655ea8fabd --- /dev/null +++ b/tools/blktap2/include/vhd-uuid.h @@ -0,0 +1,130 @@ +/* Copyright (c) 2008, XenSource Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of XenSource Inc. nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +#ifndef __BLKTAP2_VHD_UUID_H__ +#define __BLKTAP2_VHDUUID_H__ + +#if defined(__linux__) + +#include + +typedef struct { + uuid_t uuid; +} vhd_uuid_t; + +static inline int vhd_uuid_is_nil(vhd_uuid_t *uuid) +{ + return uuid_is_null(uuid->uuid); +} + +static inline void vhd_uuid_generate(vhd_uuid_t *uuid) +{ + uuid_generate(uuid->uuid); +} + +static inline void vhd_uuid_to_string(vhd_uuid_t *uuid, char *out, size_t size) +{ + uuid_unparse(uuid->uuid, out); +} + +static inline void vhd_uuid_from_string(vhd_uuid_t *uuid, const char *in) +{ + uuid_parse(in, uuid->uuid); +} + +static inline void vhd_uuid_copy(vhd_uuid_t *dst, vhd_uuid_t *src) +{ + uuid_copy(dst->uuid, src->uuid); +} + +static inline void vhd_uuid_clear(vhd_uuid_t *uuid) +{ + uuid_clear(uuid->uuid); +} + +static inline int vhd_uuid_compare(vhd_uuid_t *uuid1, vhd_uuid_t *uuid2) +{ + return uuid_compare(uuid1->uuid, uuid2->uuid); +} + +#elif defined(__NetBSD__) + +#include +#include +#include + +typedef uuid_t vhd_uuid_t; + +static inline int vhd_uuid_is_nil(vhd_uuid_t *uuid) +{ + uint32_t status; + return uuid_is_nil((uuid_t *)uuid, &status); +} + +static inline void vhd_uuid_generate(vhd_uuid_t *uuid) +{ + uint32_t status; + uuid_create((uuid_t *)uuid, &status); +} + +static inline void vhd_uuid_to_string(vhd_uuid_t *uuid, char *out, size_t size) +{ + uint32_t status; + char *_out = NULL; + uuid_to_string((uuid_t *)uuid, &_out, &status); + strlcpy(out, _out, size); + free(_out); +} + +static inline void vhd_uuid_from_string(vhd_uuid_t *uuid, const char *in) +{ + uint32_t status; + uuid_from_string(in, (uuid_t *)uuid, &status); +} + +static inline void vhd_uuid_copy(vhd_uuid_t *dst, vhd_uuid_t *src) +{ + memcpy((uuid_t *)dst, (uuid_t *)src, sizeof(uuid_t)); +} + +static inline void vhd_uuid_clear(vhd_uuid_t *uuid) +{ + memset((uuid_t *)uuid, 0, sizeof(uuid_t)); +} + +static inline int vhd_uuid_compare(vhd_uuid_t *uuid1, vhd_uuid_t *uuid2) +{ + uint32_t status; + return uuid_compare((uuid_t *)uuid1, (uuid_t *)uuid2, &status); +} + +#else + +#error "Please update vhd-uuid.h for your OS" + +#endif + +#endif /* __BLKTAP2_VHD_UUID_H__ */ diff --git a/tools/blktap2/include/vhd.h b/tools/blktap2/include/vhd.h index a31aadf491..c06442545b 100644 --- a/tools/blktap2/include/vhd.h +++ b/tools/blktap2/include/vhd.h @@ -59,7 +59,7 @@ struct hd_ftr { u32 geometry; /* Disk geometry */ u32 type; /* Disk type */ u32 checksum; /* 1's comp sum of this struct. */ - blk_uuid_t uuid; /* Unique disk ID, used for naming parents */ + vhd_uuid_t uuid; /* Unique disk ID, used for naming parents */ char saved; /* one-bit -- is this disk/VM in a saved state? */ char hidden; /* tapdisk-specific field: is this vdi hidden? */ char reserved[426]; /* padding */ @@ -147,7 +147,7 @@ struct dd_hdr { u32 max_bat_size; /* Maximum number of entries in the BAT */ u32 block_size; /* Block size in bytes. Must be power of 2. */ u32 checksum; /* Header checksum. 1's comp of all fields. */ - blk_uuid_t prt_uuid; /* ID of the parent disk. */ + vhd_uuid_t prt_uuid; /* ID of the parent disk. */ u32 prt_ts; /* Modification time of the parent disk */ u32 res1; /* Reserved. */ char prt_name[512]; /* Parent unicode name. */ diff --git a/tools/blktap2/vhd/lib/libvhd-journal.c b/tools/blktap2/vhd/lib/libvhd-journal.c index 24383ff62b..7edd182dc3 100644 --- a/tools/blktap2/vhd/lib/libvhd-journal.c +++ b/tools/blktap2/vhd/lib/libvhd-journal.c @@ -237,7 +237,7 @@ vhd_journal_add_journal_header(vhd_journal_t *j) if (err) return err; - blk_uuid_copy(&j->header.uuid, &vhd->footer.uuid); + vhd_uuid_copy(&j->header.uuid, &vhd->footer.uuid); memcpy(j->header.cookie, VHD_JOURNAL_HEADER_COOKIE, sizeof(j->header.cookie)); j->header.vhd_footer_offset = off - sizeof(vhd_footer_t); diff --git a/tools/blktap2/vhd/lib/libvhd.c b/tools/blktap2/vhd/lib/libvhd.c index bc9649a639..3511cb4f80 100644 --- a/tools/blktap2/vhd/lib/libvhd.c +++ b/tools/blktap2/vhd/lib/libvhd.c @@ -2454,7 +2454,7 @@ vhd_initialize_footer(vhd_context_t *ctx, int type, uint64_t size) ctx->footer.saved = 0; ctx->footer.data_offset = 0xFFFFFFFFFFFFFFFF; strcpy(ctx->footer.crtr_app, "tap"); - blk_uuid_generate(&ctx->footer.uuid); + vhd_uuid_generate(&ctx->footer.uuid); } static int @@ -2569,7 +2569,7 @@ vhd_initialize_header(vhd_context_t *ctx, const char *parent_path, return err; ctx->header.prt_ts = vhd_time(stats.st_mtime); - blk_uuid_copy(&ctx->header.prt_uuid, &parent.footer.uuid); + vhd_uuid_copy(&ctx->header.prt_uuid, &parent.footer.uuid); if (!size) size = parent.footer.curr_size; vhd_close(&parent); @@ -2651,7 +2651,7 @@ vhd_change_parent(vhd_context_t *child, char *parent_path, int raw) } if (raw) { - blk_uuid_clear(&child->header.prt_uuid); + vhd_uuid_clear(&child->header.prt_uuid); } else { err = vhd_open(&parent, ppath, VHD_OPEN_RDONLY); if (err) { @@ -2659,7 +2659,7 @@ vhd_change_parent(vhd_context_t *child, char *parent_path, int raw) ppath, child->file, err); goto out; } - blk_uuid_copy(&child->header.prt_uuid, &parent.footer.uuid); + vhd_uuid_copy(&child->header.prt_uuid, &parent.footer.uuid); vhd_close(&parent); } diff --git a/tools/blktap2/vhd/lib/vhd-util-check.c b/tools/blktap2/vhd/lib/vhd-util-check.c index 59a1a47329..af07426d5b 100644 --- a/tools/blktap2/vhd/lib/vhd-util-check.c +++ b/tools/blktap2/vhd/lib/vhd-util-check.c @@ -218,7 +218,7 @@ vhd_util_check_validate_differencing_header(vhd_context_t *vhd) if (vhd_util_check_zeros(header->loc, sizeof(header->loc))) return "invalid non-null parent locators"; - if (!blk_uuid_is_nil(&header->prt_uuid)) + if (!vhd_uuid_is_nil(&header->prt_uuid)) return "invalid non-null parent uuid"; if (header->prt_ts) @@ -320,7 +320,7 @@ vhd_util_check_validate_parent(vhd_context_t *vhd, const char *ppath) VHD_OPEN_RDONLY | VHD_OPEN_IGNORE_DISABLED)) return "error opening parent"; - if (blk_uuid_compare(&vhd->header.prt_uuid, &parent.footer.uuid)) { + if (vhd_uuid_compare(&vhd->header.prt_uuid, &parent.footer.uuid)) { msg = "invalid parent uuid"; goto out; } diff --git a/tools/blktap2/vhd/lib/vhd-util-read.c b/tools/blktap2/vhd/lib/vhd-util-read.c index 2e8dc8b786..ac4d833cbc 100644 --- a/tools/blktap2/vhd/lib/vhd-util-read.c +++ b/tools/blktap2/vhd/lib/vhd-util-read.c @@ -78,7 +78,7 @@ vhd_print_header(vhd_context_t *vhd, vhd_header_t *h, int hex) (err ? "failed to read name" : name)); free(name); - blk_uuid_to_string(&h->prt_uuid, uuid, sizeof(uuid)); + vhd_uuid_to_string(&h->prt_uuid, uuid, sizeof(uuid)); printf("Parent UUID : %s\n", uuid); vhd_time_to_string(h->prt_ts, time_str); @@ -153,7 +153,7 @@ vhd_print_footer(vhd_footer_t *f, int hex) printf("Checksum : 0x%x|0x%x (%s)\n", f->checksum, cksm, f->checksum == cksm ? "Good!" : "Bad!"); - blk_uuid_to_string(&f->uuid, uuid, sizeof(uuid)); + vhd_uuid_to_string(&f->uuid, uuid, sizeof(uuid)); printf("UUID : %s\n", uuid); printf("Saved state : %s\n", f->saved == 0 ? "No" : "Yes"); -- cgit v1.2.3