aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xcutils/readnotes.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-05-28 09:30:19 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-05-28 09:30:19 +0100
commit5cc436c1d2b3b0be3f42104582f53eec3969b43a (patch)
tree1e30ade146ee7287c486d1309b5d3d2c69a2d9b9 /tools/xcutils/readnotes.c
parent7f9a888af4b65cb8c22cea3c8295d30d0fedd623 (diff)
downloadxen-5cc436c1d2b3b0be3f42104582f53eec3969b43a.tar.gz
xen-5cc436c1d2b3b0be3f42104582f53eec3969b43a.tar.bz2
xen-5cc436c1d2b3b0be3f42104582f53eec3969b43a.zip
libxc: eliminate static variables, use xentoollog; API change
This patch eliminate the global variables in libxenctrl (used for logging and error reporting). Instead the information which was in the global variables is now in a new xc_interface* opaque structure, which xc_interface open returns instead of the raw file descriptor; furthermore, logging is done via xentoollog. There are three new parameters to xc_interface_open to control the logging, but existing callers can just pass "0" for all three to get the old behaviour. All libxc callers have been adjusted accordingly. Also update QEMU_TAG for corresponding qemu change. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/xcutils/readnotes.c')
-rw-r--r--tools/xcutils/readnotes.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/tools/xcutils/readnotes.c b/tools/xcutils/readnotes.c
index 270c48b017..26376854b2 100644
--- a/tools/xcutils/readnotes.c
+++ b/tools/xcutils/readnotes.c
@@ -5,6 +5,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdarg.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -15,6 +16,8 @@
#include <xen/libelf/libelf.h>
+static xc_interface *xch;
+
static void print_string_note(const char *prefix, struct elf_binary *elf,
const elf_note *note)
{
@@ -135,6 +138,8 @@ int main(int argc, char **argv)
}
f = argv[1];
+ xch = xc_interface_open(0,0,XC_OPENFLAG_DUMMY);
+
fd = open(f, O_RDONLY);
if (fd == -1)
{
@@ -156,11 +161,11 @@ int main(int argc, char **argv)
}
size = st.st_size;
- usize = xc_dom_check_gzip(image, st.st_size);
+ usize = xc_dom_check_gzip(xch, image, st.st_size);
if (usize)
{
tmp = malloc(usize);
- xc_dom_do_gunzip(image, st.st_size, tmp, usize);
+ xc_dom_do_gunzip(xch, image, st.st_size, tmp, usize);
image = tmp;
size = usize;
}
@@ -170,7 +175,7 @@ int main(int argc, char **argv)
fprintf(stderr, "File %s is not an ELF image\n", f);
return 1;
}
- xc_elf_set_logfile(&elf, stderr, 0);
+ xc_elf_set_logfile(xch, &elf, 0);
count = elf_phdr_count(&elf);
for ( h=0; h < count; h++)