xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: xen-devel@lists.xensource.com
Cc: Ian Campbell <ian.campbell@citrix.com>
Subject: [PATCH 1 of 4] tools/blktap2: push uuid wrapper functions down into libvhd
Date: Tue, 15 Mar 2011 16:16:04 +0000	[thread overview]
Message-ID: <83a1d6598fa3617085ba.1300205764@localhost.localdomain> (raw)
In-Reply-To: <patchbomb.1300205763@localhost.localdomain>

# HG changeset patch
# User Ian Campbell <ian.campbell@citrix.com>
# Date 1300201970 0
# Node ID 83a1d6598fa3617085baecec1cda1e4caa518c92
# Parent  452c744798f4bb73d9a2286ac03971a48ab275a1
tools/blktap2: push uuid wrapper functions down into libvhd.

Nothing else uses them.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>

diff -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/drivers/block-vhd.c
--- a/tools/blktap2/drivers/block-vhd.c	Tue Mar 15 14:42:17 2011 +0000
+++ b/tools/blktap2/drivers/block-vhd.c	Tue Mar 15 15:12:50 2011 +0000
@@ -807,7 +807,7 @@ vhd_validate_parent(td_driver_t *child_d
 	}
 	*/
 
-	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 -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/include/blk_uuid.h
--- a/tools/blktap2/include/blk_uuid.h	Tue Mar 15 14:42:17 2011 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -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 <uuid/uuid.h>
-
-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 <uuid.h>
-#include <string.h>
-#include <stdlib.h>
-
-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 -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/include/libvhd-journal.h
--- a/tools/blktap2/include/libvhd-journal.h	Tue Mar 15 14:42:17 2011 +0000
+++ b/tools/blktap2/include/libvhd-journal.h	Tue Mar 15 15:12:50 2011 +0000
@@ -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 -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/include/libvhd.h
--- a/tools/blktap2/include/libvhd.h	Tue Mar 15 14:42:17 2011 +0000
+++ b/tools/blktap2/include/libvhd.h	Tue Mar 15 15:12:50 2011 +0000
@@ -36,7 +36,7 @@
 #include <sys/bswap.h>
 #endif
 
-#include "blk_uuid.h"
+#include "vhd-uuid.h"
 #include "vhd.h"
 
 #ifndef O_LARGEFILE
@@ -216,7 +216,7 @@ static inline int
 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 -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/include/vhd-uuid.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/blktap2/include/vhd-uuid.h	Tue Mar 15 15:12:50 2011 +0000
@@ -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 <uuid/uuid.h>
+
+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 <uuid.h>
+#include <string.h>
+#include <stdlib.h>
+
+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 -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/include/vhd.h
--- a/tools/blktap2/include/vhd.h	Tue Mar 15 14:42:17 2011 +0000
+++ b/tools/blktap2/include/vhd.h	Tue Mar 15 15:12:50 2011 +0000
@@ -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 -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/vhd/lib/libvhd-journal.c
--- a/tools/blktap2/vhd/lib/libvhd-journal.c	Tue Mar 15 14:42:17 2011 +0000
+++ b/tools/blktap2/vhd/lib/libvhd-journal.c	Tue Mar 15 15:12:50 2011 +0000
@@ -237,7 +237,7 @@ vhd_journal_add_journal_header(vhd_journ
 	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 -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/vhd/lib/libvhd.c
--- a/tools/blktap2/vhd/lib/libvhd.c	Tue Mar 15 14:42:17 2011 +0000
+++ b/tools/blktap2/vhd/lib/libvhd.c	Tue Mar 15 15:12:50 2011 +0000
@@ -2454,7 +2454,7 @@ vhd_initialize_footer(vhd_context_t *ctx
 	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
 			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, 
 	}
 
 	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, 
 			       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 -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/vhd/lib/vhd-util-check.c
--- a/tools/blktap2/vhd/lib/vhd-util-check.c	Tue Mar 15 14:42:17 2011 +0000
+++ b/tools/blktap2/vhd/lib/vhd-util-check.c	Tue Mar 15 15:12:50 2011 +0000
@@ -218,7 +218,7 @@ vhd_util_check_validate_differencing_hea
 		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_conte
 				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 -r 452c744798f4 -r 83a1d6598fa3 tools/blktap2/vhd/lib/vhd-util-read.c
--- a/tools/blktap2/vhd/lib/vhd-util-read.c	Tue Mar 15 14:42:17 2011 +0000
+++ b/tools/blktap2/vhd/lib/vhd-util-read.c	Tue Mar 15 15:12:50 2011 +0000
@@ -78,7 +78,7 @@ vhd_print_header(vhd_context_t *vhd, vhd
 	       (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 he
 	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");

  reply	other threads:[~2011-03-15 16:16 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-15 16:16 [PATCH 0 of 4] tools: build system fix indirect library usage and --as-needed Ian Campbell
2011-03-15 16:16 ` Ian Campbell [this message]
2011-03-15 16:16 ` [PATCH 2 of 4] tools/blktap2/libvhd: move uuid wrapper functions out of line Ian Campbell
2011-03-15 16:42   ` Daniel Stodden
2011-03-15 16:16 ` [PATCH 3 of 4] tools: link each shared library or binary only against the libraries it uses Ian Campbell
2011-03-15 16:16 ` [PATCH 4 of 4] tools: support building with --as-needed Ian Campbell
2011-03-15 16:18 ` [PATCH 0 of 4] tools: build system fix indirect library usage and --as-needed Ian Campbell
2011-03-17 19:17   ` Ian Jackson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83a1d6598fa3617085ba.1300205764@localhost.localdomain \
    --to=ian.campbell@citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).