aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxen
diff options
context:
space:
mode:
authorewan@localhost.localdomain <ewan@localhost.localdomain>2007-04-21 12:21:06 -0700
committerewan@localhost.localdomain <ewan@localhost.localdomain>2007-04-21 12:21:06 -0700
commite83be1159570416909d74bca47175a30a13534f8 (patch)
tree19f11bd4afd52f260e4fef177a4938fcae43e8a4 /tools/libxen
parent5c8b4287a45c0f0215d188769ab46458399351f5 (diff)
downloadxen-e83be1159570416909d74bca47175a30a13534f8.tar.gz
xen-e83be1159570416909d74bca47175a30a13534f8.tar.bz2
xen-e83be1159570416909d74bca47175a30a13534f8.zip
Move all internal header files to a separate directory, so that it's clear what
forms the public API. Tidy up a couple of macros in xen_internal.h. Remove test_hvm_bindings, which no longer builds, and which has had its functionality subsumed into test_bindings. Bump the library version to 0.9. Signed-off-by: Ewan Mellor <ewan@xensource.com>
Diffstat (limited to 'tools/libxen')
-rw-r--r--tools/libxen/Makefile33
-rw-r--r--tools/libxen/include/xen/api/xen_all.h39
-rw-r--r--tools/libxen/include/xen/api/xen_common.h (renamed from tools/libxen/include/xen_common.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_console.h (renamed from tools/libxen/include/xen_console.h)10
-rw-r--r--tools/libxen/include/xen/api/xen_console_decl.h (renamed from tools/libxen/include/xen_console_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_console_protocol.h (renamed from tools/libxen/include/xen_console_protocol.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_crashdump.h (renamed from tools/libxen/include/xen_crashdump.h)10
-rw-r--r--tools/libxen/include/xen/api/xen_crashdump_decl.h (renamed from tools/libxen/include/xen_crashdump_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_event.h (renamed from tools/libxen/include/xen_event.h)8
-rw-r--r--tools/libxen/include/xen/api/xen_event_decl.h (renamed from tools/libxen/include/xen_event_decl.h)0
-rw-r--r--tools/libxen/include/xen/api/xen_event_operation.h (renamed from tools/libxen/include/xen_event_operation.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_host.h (renamed from tools/libxen/include/xen_host.h)20
-rw-r--r--tools/libxen/include/xen/api/xen_host_cpu.h (renamed from tools/libxen/include/xen_host_cpu.h)6
-rw-r--r--tools/libxen/include/xen/api/xen_host_cpu_decl.h (renamed from tools/libxen/include/xen_host_cpu_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_host_decl.h (renamed from tools/libxen/include/xen_host_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_host_metrics.h (renamed from tools/libxen/include/xen_host_metrics.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_host_metrics_decl.h (renamed from tools/libxen/include/xen_host_metrics_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_int_float_map.h (renamed from tools/libxen/include/xen_int_float_map.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_int_int_map.h (renamed from tools/libxen/include/xen_int_int_map.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_int_string_set_map.h (renamed from tools/libxen/include/xen_int_string_set_map.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_network.h (renamed from tools/libxen/include/xen_network.h)10
-rw-r--r--tools/libxen/include/xen/api/xen_network_decl.h (renamed from tools/libxen/include/xen_network_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_on_crash_behaviour.h (renamed from tools/libxen/include/xen_on_crash_behaviour.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_on_normal_exit.h (renamed from tools/libxen/include/xen_on_normal_exit.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_pbd.h (renamed from tools/libxen/include/xen_pbd.h)10
-rw-r--r--tools/libxen/include/xen/api/xen_pbd_decl.h (renamed from tools/libxen/include/xen_pbd_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_pif.h (renamed from tools/libxen/include/xen_pif.h)14
-rw-r--r--tools/libxen/include/xen/api/xen_pif_decl.h (renamed from tools/libxen/include/xen_pif_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_pif_metrics.h (renamed from tools/libxen/include/xen_pif_metrics.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_pif_metrics_decl.h (renamed from tools/libxen/include/xen_pif_metrics_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_sr.h (renamed from tools/libxen/include/xen_sr.h)10
-rw-r--r--tools/libxen/include/xen/api/xen_sr_decl.h (renamed from tools/libxen/include/xen_sr_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_string_set.h (renamed from tools/libxen/include/xen_string_set.h)0
-rw-r--r--tools/libxen/include/xen/api/xen_string_string_map.h (renamed from tools/libxen/include/xen_string_string_map.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_user.h (renamed from tools/libxen/include/xen_user.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_user_decl.h (renamed from tools/libxen/include/xen_user_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_vbd.h (renamed from tools/libxen/include/xen_vbd.h)24
-rw-r--r--tools/libxen/include/xen/api/xen_vbd_decl.h (renamed from tools/libxen/include/xen_vbd_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_vbd_metrics.h (renamed from tools/libxen/include/xen_vbd_metrics.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_vbd_metrics_decl.h (renamed from tools/libxen/include/xen_vbd_metrics_decl.h)0
-rw-r--r--tools/libxen/include/xen/api/xen_vbd_mode.h (renamed from tools/libxen/include/xen_vbd_mode.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_vbd_type.h (renamed from tools/libxen/include/xen_vbd_type.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_vdi.h (renamed from tools/libxen/include/xen_vdi.h)14
-rw-r--r--tools/libxen/include/xen/api/xen_vdi_decl.h (renamed from tools/libxen/include/xen_vdi_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_vdi_type.h (renamed from tools/libxen/include/xen_vdi_type.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_vif.h (renamed from tools/libxen/include/xen_vif.h)14
-rw-r--r--tools/libxen/include/xen/api/xen_vif_decl.h (renamed from tools/libxen/include/xen_vif_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_vif_metrics.h (renamed from tools/libxen/include/xen_vif_metrics.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_vif_metrics_decl.h (renamed from tools/libxen/include/xen_vif_metrics_decl.h)0
-rw-r--r--tools/libxen/include/xen/api/xen_vm.h (renamed from tools/libxen/include/xen_vm.h)30
-rw-r--r--tools/libxen/include/xen/api/xen_vm_decl.h (renamed from tools/libxen/include/xen_vm_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_vm_guest_metrics.h (renamed from tools/libxen/include/xen_vm_guest_metrics.h)6
-rw-r--r--tools/libxen/include/xen/api/xen_vm_guest_metrics_decl.h (renamed from tools/libxen/include/xen_vm_guest_metrics_decl.h)0
-rw-r--r--tools/libxen/include/xen/api/xen_vm_metrics.h (renamed from tools/libxen/include/xen_vm_metrics.h)14
-rw-r--r--tools/libxen/include/xen/api/xen_vm_metrics_decl.h (renamed from tools/libxen/include/xen_vm_metrics_decl.h)2
-rw-r--r--tools/libxen/include/xen/api/xen_vm_power_state.h (renamed from tools/libxen/include/xen_vm_power_state.h)4
-rw-r--r--tools/libxen/include/xen/api/xen_vtpm.h (renamed from tools/libxen/include/xen_vtpm.h)13
-rw-r--r--tools/libxen/include/xen/api/xen_vtpm_decl.h (renamed from tools/libxen/include/xen_vtpm_decl.h)0
-rw-r--r--tools/libxen/include/xen_console_protocol_internal.h2
-rw-r--r--tools/libxen/include/xen_internal.h61
-rw-r--r--tools/libxen/include/xen_on_crash_behaviour_internal.h2
-rw-r--r--tools/libxen/include/xen_on_normal_exit_internal.h2
-rw-r--r--tools/libxen/include/xen_vbd_mode_internal.h2
-rw-r--r--tools/libxen/include/xen_vdi_type_internal.h2
-rw-r--r--tools/libxen/include/xen_vm_power_state_internal.h2
-rw-r--r--tools/libxen/src/xen_common.c12
-rw-r--r--tools/libxen/src/xen_console.c8
-rw-r--r--tools/libxen/src/xen_console_protocol.c4
-rw-r--r--tools/libxen/src/xen_crashdump.c8
-rw-r--r--tools/libxen/src/xen_event.c4
-rw-r--r--tools/libxen/src/xen_event_operation.c2
-rw-r--r--tools/libxen/src/xen_host.c18
-rw-r--r--tools/libxen/src/xen_host_cpu.c6
-rw-r--r--tools/libxen/src/xen_host_metrics.c4
-rw-r--r--tools/libxen/src/xen_int_float_map.c6
-rw-r--r--tools/libxen/src/xen_int_int_map.c4
-rw-r--r--tools/libxen/src/xen_int_string_set_map.c6
-rw-r--r--tools/libxen/src/xen_network.c10
-rw-r--r--tools/libxen/src/xen_on_crash_behaviour.c4
-rw-r--r--tools/libxen/src/xen_on_normal_exit.c4
-rw-r--r--tools/libxen/src/xen_pbd.c10
-rw-r--r--tools/libxen/src/xen_pif.c10
-rw-r--r--tools/libxen/src/xen_pif_metrics.c4
-rw-r--r--tools/libxen/src/xen_sr.c8
-rw-r--r--tools/libxen/src/xen_string_set.c2
-rw-r--r--tools/libxen/src/xen_string_string_map.c6
-rw-r--r--tools/libxen/src/xen_user.c4
-rw-r--r--tools/libxen/src/xen_vbd.c12
-rw-r--r--tools/libxen/src/xen_vbd_metrics.c4
-rw-r--r--tools/libxen/src/xen_vbd_mode.c4
-rw-r--r--tools/libxen/src/xen_vbd_type.c2
-rw-r--r--tools/libxen/src/xen_vdi.c12
-rw-r--r--tools/libxen/src/xen_vdi_type.c4
-rw-r--r--tools/libxen/src/xen_vif.c12
-rw-r--r--tools/libxen/src/xen_vif_metrics.c4
-rw-r--r--tools/libxen/src/xen_vm.c24
-rw-r--r--tools/libxen/src/xen_vm_guest_metrics.c6
-rw-r--r--tools/libxen/src/xen_vm_metrics.c12
-rw-r--r--tools/libxen/src/xen_vm_power_state.c4
-rw-r--r--tools/libxen/src/xen_vtpm.c8
-rw-r--r--tools/libxen/test/test_bindings.c9
-rw-r--r--tools/libxen/test/test_event_handling.c3
-rw-r--r--tools/libxen/test/test_hvm_bindings.c445
103 files changed, 373 insertions, 788 deletions
diff --git a/tools/libxen/Makefile b/tools/libxen/Makefile
index 51062d7c5b..d91be3c33d 100644
--- a/tools/libxen/Makefile
+++ b/tools/libxen/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006, XenSource Inc.
+# Copyright (c) 2006-2007, XenSource Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -18,20 +18,21 @@
XEN_ROOT=../..
include $(XEN_ROOT)/tools/Rules.mk
-MAJOR = 0.1
-MINOR = 0
+MAJOR = 0.9
+MINOR = 1
CFLAGS = -Iinclude \
- $(shell xml2-config --cflags) \
+ $(shell xml2-config --cflags) \
$(shell curl-config --cflags) \
-W -Wall -Wmissing-prototypes -Werror -std=c99 -O2 -fPIC
LDFLAGS = $(shell xml2-config --libs) \
$(shell curl-config --libs)
-LIBXENAPI_HDRS = $(wildcard include/*.h)
+LIBXENAPI_HDRS = $(wildcard include/xen/api/*.h) include/xen/api/xen_all.h
LIBXENAPI_OBJS = $(patsubst %.c, %.o, $(wildcard src/*.c))
+TEST_PROGRAMS = test/test_bindings test/test_event_handling
.PHONY: all
all: libxenapi.so libxenapi.a
@@ -48,13 +49,7 @@ libxenapi.so.$(MAJOR).$(MINOR): $(LIBXENAPI_OBJS)
libxenapi.a: $(LIBXENAPI_OBJS)
$(AR) rcs libxenapi.a $^
-test/test_bindings: test/test_bindings.o libxenapi.so
- $(CC) $(LDFLAGS) -o $@ $< -L . -lxenapi
-
-test/test_event_handling: test/test_event_handling.o libxenapi.so
- $(CC) $(LDFLAGS) -o $@ $< -L . -lxenapi
-
-test/test_hvm_bindings: test/test_hvm_bindings.o libxenapi.so
+$(TEST_PROGRAMS): test/%: test/%.o libxenapi.so
$(CC) $(LDFLAGS) -o $@ $< -L . -lxenapi
@@ -70,9 +65,21 @@ install: all
$(INSTALL_DATA) $$i $(DESTDIR)/usr/include/xen/api; \
done
+
.PHONY: clean
clean:
rm -f `find -name *.o`
rm -f libxenapi.so*
rm -f libxenapi.a
- rm -f test/test_bindings
+ rm -f $(TEST_PROGRAMS)
+
+
+.PHONY: uberheader
+uberheader: include/xen/api/xen_all.h
+include/xen/api/xen_all.h::
+ echo "/* This file is autogenerated */" >$@
+ echo "#ifndef XEN_API_XEN_ALL_H" >>$@
+ echo "#define XEN_API_XEN_ALL_H" >>$@
+ ls include/xen/api/*.h | grep -v xen_all.h | grep -v _decl.h | \
+ sed 's,^include/\(.*\)$$,#include <\1>,g' >>$@
+ echo "#endif" >>$@
diff --git a/tools/libxen/include/xen/api/xen_all.h b/tools/libxen/include/xen/api/xen_all.h
new file mode 100644
index 0000000000..8f0c1b83bc
--- /dev/null
+++ b/tools/libxen/include/xen/api/xen_all.h
@@ -0,0 +1,39 @@
+/* This file is autogenerated */
+#ifndef XEN_API_XEN_ALL_H
+#define XEN_API_XEN_ALL_H
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_console.h>
+#include <xen/api/xen_console_protocol.h>
+#include <xen/api/xen_crashdump.h>
+#include <xen/api/xen_event.h>
+#include <xen/api/xen_event_operation.h>
+#include <xen/api/xen_host_cpu.h>
+#include <xen/api/xen_host.h>
+#include <xen/api/xen_host_metrics.h>
+#include <xen/api/xen_int_float_map.h>
+#include <xen/api/xen_int_int_map.h>
+#include <xen/api/xen_int_string_set_map.h>
+#include <xen/api/xen_network.h>
+#include <xen/api/xen_on_crash_behaviour.h>
+#include <xen/api/xen_on_normal_exit.h>
+#include <xen/api/xen_pbd.h>
+#include <xen/api/xen_pif.h>
+#include <xen/api/xen_pif_metrics.h>
+#include <xen/api/xen_sr.h>
+#include <xen/api/xen_string_set.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_user.h>
+#include <xen/api/xen_vbd.h>
+#include <xen/api/xen_vbd_metrics.h>
+#include <xen/api/xen_vbd_mode.h>
+#include <xen/api/xen_vbd_type.h>
+#include <xen/api/xen_vdi.h>
+#include <xen/api/xen_vdi_type.h>
+#include <xen/api/xen_vif.h>
+#include <xen/api/xen_vif_metrics.h>
+#include <xen/api/xen_vm_guest_metrics.h>
+#include <xen/api/xen_vm.h>
+#include <xen/api/xen_vm_metrics.h>
+#include <xen/api/xen_vm_power_state.h>
+#include <xen/api/xen_vtpm.h>
+#endif
diff --git a/tools/libxen/include/xen_common.h b/tools/libxen/include/xen/api/xen_common.h
index fc8d092e74..89d92cacc4 100644
--- a/tools/libxen/include/xen_common.h
+++ b/tools/libxen/include/xen/api/xen_common.h
@@ -25,7 +25,7 @@
#include <stdint.h>
#include <time.h>
-#include "xen_host_decl.h"
+#include "xen/api/xen_host_decl.h"
typedef bool (*xen_result_func)(const void *data, size_t len,
diff --git a/tools/libxen/include/xen_console.h b/tools/libxen/include/xen/api/xen_console.h
index 5402ae9fbe..19bfdeb082 100644
--- a/tools/libxen/include/xen_console.h
+++ b/tools/libxen/include/xen/api/xen_console.h
@@ -19,11 +19,11 @@
#ifndef XEN_CONSOLE_H
#define XEN_CONSOLE_H
-#include "xen_common.h"
-#include "xen_console_decl.h"
-#include "xen_console_protocol.h"
-#include "xen_string_string_map.h"
-#include "xen_vm_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_console_decl.h>
+#include <xen/api/xen_console_protocol.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vm_decl.h>
/*
diff --git a/tools/libxen/include/xen_console_decl.h b/tools/libxen/include/xen/api/xen_console_decl.h
index 1392164593..432ff76919 100644
--- a/tools/libxen/include/xen_console_decl.h
+++ b/tools/libxen/include/xen/api/xen_console_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_console_protocol.h b/tools/libxen/include/xen/api/xen_console_protocol.h
index e6fcf62b4a..413ad7aa9b 100644
--- a/tools/libxen/include/xen_console_protocol.h
+++ b/tools/libxen/include/xen/api/xen_console_protocol.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
#define XEN_CONSOLE_PROTOCOL_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
enum xen_console_protocol
diff --git a/tools/libxen/include/xen_crashdump.h b/tools/libxen/include/xen/api/xen_crashdump.h
index 00869dbb4c..145e0419a7 100644
--- a/tools/libxen/include/xen_crashdump.h
+++ b/tools/libxen/include/xen/api/xen_crashdump.h
@@ -19,10 +19,10 @@
#ifndef XEN_CRASHDUMP_H
#define XEN_CRASHDUMP_H
-#include "xen_common.h"
-#include "xen_crashdump_decl.h"
-#include "xen_vdi_decl.h"
-#include "xen_vm_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_crashdump_decl.h>
+#include <xen/api/xen_vdi_decl.h>
+#include <xen/api/xen_vm_decl.h>
/*
@@ -183,7 +183,7 @@ xen_crashdump_get_vdi(xen_session *session, xen_vdi *result, xen_crashdump crash
/**
- * Destroy the specified crashdump
+ * Destroy the specified crashdump.
*/
extern bool
xen_crashdump_destroy(xen_session *session, xen_crashdump self);
diff --git a/tools/libxen/include/xen_crashdump_decl.h b/tools/libxen/include/xen/api/xen_crashdump_decl.h
index 3087715c4f..4eb6d5493f 100644
--- a/tools/libxen/include/xen_crashdump_decl.h
+++ b/tools/libxen/include/xen/api/xen_crashdump_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_event.h b/tools/libxen/include/xen/api/xen_event.h
index 1e171b8d26..6a2845b4b2 100644
--- a/tools/libxen/include/xen_event.h
+++ b/tools/libxen/include/xen/api/xen_event.h
@@ -19,10 +19,10 @@
#ifndef XEN_EVENT_H
#define XEN_EVENT_H
-#include "xen_common.h"
-#include "xen_event_decl.h"
-#include "xen_event_operation.h"
-#include "xen_string_set.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_event_decl.h>
+#include <xen/api/xen_event_operation.h>
+#include <xen/api/xen_string_set.h>
/*
diff --git a/tools/libxen/include/xen_event_decl.h b/tools/libxen/include/xen/api/xen_event_decl.h
index 856991fd09..856991fd09 100644
--- a/tools/libxen/include/xen_event_decl.h
+++ b/tools/libxen/include/xen/api/xen_event_decl.h
diff --git a/tools/libxen/include/xen_event_operation.h b/tools/libxen/include/xen/api/xen_event_operation.h
index 05319ef58a..31cce20b8a 100644
--- a/tools/libxen/include/xen_event_operation.h
+++ b/tools/libxen/include/xen/api/xen_event_operation.h
@@ -20,7 +20,7 @@
#define XEN_EVENT_OPERATION_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
enum xen_event_operation
diff --git a/tools/libxen/include/xen_host.h b/tools/libxen/include/xen/api/xen_host.h
index cb2c447fc4..9ca40d700e 100644
--- a/tools/libxen/include/xen_host.h
+++ b/tools/libxen/include/xen/api/xen_host.h
@@ -19,16 +19,16 @@
#ifndef XEN_HOST_H
#define XEN_HOST_H
-#include "xen_common.h"
-#include "xen_host_cpu_decl.h"
-#include "xen_host_decl.h"
-#include "xen_host_metrics_decl.h"
-#include "xen_pbd_decl.h"
-#include "xen_pif_decl.h"
-#include "xen_sr_decl.h"
-#include "xen_string_set.h"
-#include "xen_string_string_map.h"
-#include "xen_vm_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host_cpu_decl.h>
+#include <xen/api/xen_host_decl.h>
+#include <xen/api/xen_host_metrics_decl.h>
+#include <xen/api/xen_pbd_decl.h>
+#include <xen/api/xen_pif_decl.h>
+#include <xen/api/xen_sr_decl.h>
+#include <xen/api/xen_string_set.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vm_decl.h>
/*
diff --git a/tools/libxen/include/xen_host_cpu.h b/tools/libxen/include/xen/api/xen_host_cpu.h
index b484793782..f1bdb7134f 100644
--- a/tools/libxen/include/xen_host_cpu.h
+++ b/tools/libxen/include/xen/api/xen_host_cpu.h
@@ -19,9 +19,9 @@
#ifndef XEN_HOST_CPU_H
#define XEN_HOST_CPU_H
-#include "xen_common.h"
-#include "xen_host_cpu_decl.h"
-#include "xen_host_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host_cpu_decl.h>
+#include <xen/api/xen_host_decl.h>
/*
diff --git a/tools/libxen/include/xen_host_cpu_decl.h b/tools/libxen/include/xen/api/xen_host_cpu_decl.h
index 1d24953ecc..1e9be29004 100644
--- a/tools/libxen/include/xen_host_cpu_decl.h
+++ b/tools/libxen/include/xen/api/xen_host_cpu_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_host_decl.h b/tools/libxen/include/xen/api/xen_host_decl.h
index affb676869..79d974b471 100644
--- a/tools/libxen/include/xen_host_decl.h
+++ b/tools/libxen/include/xen/api/xen_host_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_host_metrics.h b/tools/libxen/include/xen/api/xen_host_metrics.h
index 84121332c7..2055362672 100644
--- a/tools/libxen/include/xen_host_metrics.h
+++ b/tools/libxen/include/xen/api/xen_host_metrics.h
@@ -19,8 +19,8 @@
#ifndef XEN_HOST_METRICS_H
#define XEN_HOST_METRICS_H
-#include "xen_common.h"
-#include "xen_host_metrics_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host_metrics_decl.h>
/*
diff --git a/tools/libxen/include/xen_host_metrics_decl.h b/tools/libxen/include/xen/api/xen_host_metrics_decl.h
index e9137160ed..8b73554e69 100644
--- a/tools/libxen/include/xen_host_metrics_decl.h
+++ b/tools/libxen/include/xen/api/xen_host_metrics_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_int_float_map.h b/tools/libxen/include/xen/api/xen_int_float_map.h
index 9cc4769d48..058c45e459 100644
--- a/tools/libxen/include/xen_int_float_map.h
+++ b/tools/libxen/include/xen/api/xen_int_float_map.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
#define XEN_INT_FLOAT_MAP_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
typedef struct xen_int_float_map_contents
diff --git a/tools/libxen/include/xen_int_int_map.h b/tools/libxen/include/xen/api/xen_int_int_map.h
index 5d11e146b0..71295a62b8 100644
--- a/tools/libxen/include/xen_int_int_map.h
+++ b/tools/libxen/include/xen/api/xen_int_int_map.h
@@ -20,7 +20,7 @@
#define XEN_INT_INT_MAP_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
typedef struct xen_int_int_map_contents
diff --git a/tools/libxen/include/xen_int_string_set_map.h b/tools/libxen/include/xen/api/xen_int_string_set_map.h
index 7a784fd070..bca1a6bb7e 100644
--- a/tools/libxen/include/xen_int_string_set_map.h
+++ b/tools/libxen/include/xen/api/xen_int_string_set_map.h
@@ -20,7 +20,7 @@
#define XEN_INT_STRING_SET_MAP_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
typedef struct xen_int_string_set_map_contents
diff --git a/tools/libxen/include/xen_network.h b/tools/libxen/include/xen/api/xen_network.h
index 988495f2f4..bf8295afe0 100644
--- a/tools/libxen/include/xen_network.h
+++ b/tools/libxen/include/xen/api/xen_network.h
@@ -19,11 +19,11 @@
#ifndef XEN_NETWORK_H
#define XEN_NETWORK_H
-#include "xen_common.h"
-#include "xen_network_decl.h"
-#include "xen_pif_decl.h"
-#include "xen_string_string_map.h"
-#include "xen_vif_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_network_decl.h>
+#include <xen/api/xen_pif_decl.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vif_decl.h>
/*
diff --git a/tools/libxen/include/xen_network_decl.h b/tools/libxen/include/xen/api/xen_network_decl.h
index d970c2af15..dbfb3e919e 100644
--- a/tools/libxen/include/xen_network_decl.h
+++ b/tools/libxen/include/xen/api/xen_network_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_on_crash_behaviour.h b/tools/libxen/include/xen/api/xen_on_crash_behaviour.h
index 8286488659..47792c6a01 100644
--- a/tools/libxen/include/xen_on_crash_behaviour.h
+++ b/tools/libxen/include/xen/api/xen_on_crash_behaviour.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
#define XEN_ON_CRASH_BEHAVIOUR_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
enum xen_on_crash_behaviour
diff --git a/tools/libxen/include/xen_on_normal_exit.h b/tools/libxen/include/xen/api/xen_on_normal_exit.h
index 3897fef24c..cd5a813ff0 100644
--- a/tools/libxen/include/xen_on_normal_exit.h
+++ b/tools/libxen/include/xen/api/xen_on_normal_exit.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
#define XEN_ON_NORMAL_EXIT_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
enum xen_on_normal_exit
diff --git a/tools/libxen/include/xen_pbd.h b/tools/libxen/include/xen/api/xen_pbd.h
index 335d20b2ff..224d2d4a40 100644
--- a/tools/libxen/include/xen_pbd.h
+++ b/tools/libxen/include/xen/api/xen_pbd.h
@@ -19,11 +19,11 @@
#ifndef XEN_PBD_H
#define XEN_PBD_H
-#include "xen_common.h"
-#include "xen_host_decl.h"
-#include "xen_pbd_decl.h"
-#include "xen_sr_decl.h"
-#include "xen_string_string_map.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host_decl.h>
+#include <xen/api/xen_pbd_decl.h>
+#include <xen/api/xen_sr_decl.h>
+#include <xen/api/xen_string_string_map.h>
/*
diff --git a/tools/libxen/include/xen_pbd_decl.h b/tools/libxen/include/xen/api/xen_pbd_decl.h
index 81f8f4b300..c7e324e94e 100644
--- a/tools/libxen/include/xen_pbd_decl.h
+++ b/tools/libxen/include/xen/api/xen_pbd_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_pif.h b/tools/libxen/include/xen/api/xen_pif.h
index 63fc88477b..d36efd0699 100644
--- a/tools/libxen/include/xen_pif.h
+++ b/tools/libxen/include/xen/api/xen_pif.h
@@ -19,11 +19,11 @@
#ifndef XEN_PIF_H
#define XEN_PIF_H
-#include "xen_common.h"
-#include "xen_host_decl.h"
-#include "xen_network_decl.h"
-#include "xen_pif_decl.h"
-#include "xen_pif_metrics_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host_decl.h>
+#include <xen/api/xen_network_decl.h>
+#include <xen/api/xen_pif_decl.h>
+#include <xen/api/xen_pif_metrics_decl.h>
/*
@@ -253,7 +253,7 @@ xen_pif_set_vlan(xen_session *session, xen_pif pif, int64_t vlan);
/**
- * Create a VLAN interface from an existing physical interface
+ * Create a VLAN interface from an existing physical interface.
*/
extern bool
xen_pif_create_vlan(xen_session *session, xen_pif *result, char *device, xen_network network, xen_host host, int64_t vlan);
@@ -261,7 +261,7 @@ xen_pif_create_vlan(xen_session *session, xen_pif *result, char *device, xen_net
/**
* Destroy the interface (provided it is a synthetic interface like a
- * VLAN; fail if it is a physical interface)
+ * VLAN; fail if it is a physical interface).
*/
extern bool
xen_pif_destroy(xen_session *session, xen_pif self);
diff --git a/tools/libxen/include/xen_pif_decl.h b/tools/libxen/include/xen/api/xen_pif_decl.h
index b326bea3bc..6d49bdb6c3 100644
--- a/tools/libxen/include/xen_pif_decl.h
+++ b/tools/libxen/include/xen/api/xen_pif_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_pif_metrics.h b/tools/libxen/include/xen/api/xen_pif_metrics.h
index 970700feb1..06b9d268b4 100644
--- a/tools/libxen/include/xen_pif_metrics.h
+++ b/tools/libxen/include/xen/api/xen_pif_metrics.h
@@ -19,8 +19,8 @@
#ifndef XEN_PIF_METRICS_H
#define XEN_PIF_METRICS_H
-#include "xen_common.h"
-#include "xen_pif_metrics_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_pif_metrics_decl.h>
/*
diff --git a/tools/libxen/include/xen_pif_metrics_decl.h b/tools/libxen/include/xen/api/xen_pif_metrics_decl.h
index 71afe69d53..f6ef2fd276 100644
--- a/tools/libxen/include/xen_pif_metrics_decl.h
+++ b/tools/libxen/include/xen/api/xen_pif_metrics_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_sr.h b/tools/libxen/include/xen/api/xen_sr.h
index 39a8dd6650..08204a29f6 100644
--- a/tools/libxen/include/xen_sr.h
+++ b/tools/libxen/include/xen/api/xen_sr.h
@@ -19,11 +19,11 @@
#ifndef XEN_SR_H
#define XEN_SR_H
-#include "xen_common.h"
-#include "xen_pbd_decl.h"
-#include "xen_sr_decl.h"
-#include "xen_string_set.h"
-#include "xen_vdi_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_pbd_decl.h>
+#include <xen/api/xen_sr_decl.h>
+#include <xen/api/xen_string_set.h>
+#include <xen/api/xen_vdi_decl.h>
/*
diff --git a/tools/libxen/include/xen_sr_decl.h b/tools/libxen/include/xen/api/xen_sr_decl.h
index 533e90c49e..ae7d4f6b1c 100644
--- a/tools/libxen/include/xen_sr_decl.h
+++ b/tools/libxen/include/xen/api/xen_sr_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_string_set.h b/tools/libxen/include/xen/api/xen_string_set.h
index a14af9412b..a14af9412b 100644
--- a/tools/libxen/include/xen_string_set.h
+++ b/tools/libxen/include/xen/api/xen_string_set.h
diff --git a/tools/libxen/include/xen_string_string_map.h b/tools/libxen/include/xen/api/xen_string_string_map.h
index e3e5f6890b..d800442c90 100644
--- a/tools/libxen/include/xen_string_string_map.h
+++ b/tools/libxen/include/xen/api/xen_string_string_map.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
#define XEN_STRING_STRING_MAP_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
typedef struct xen_string_string_map_contents
diff --git a/tools/libxen/include/xen_user.h b/tools/libxen/include/xen/api/xen_user.h
index 9669e07116..a6d9dd99e5 100644
--- a/tools/libxen/include/xen_user.h
+++ b/tools/libxen/include/xen/api/xen_user.h
@@ -19,8 +19,8 @@
#ifndef XEN_USER_H
#define XEN_USER_H
-#include "xen_common.h"
-#include "xen_user_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_user_decl.h>
/*
diff --git a/tools/libxen/include/xen_user_decl.h b/tools/libxen/include/xen/api/xen_user_decl.h
index e5caae473b..723a8bfa68 100644
--- a/tools/libxen/include/xen_user_decl.h
+++ b/tools/libxen/include/xen/api/xen_user_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_vbd.h b/tools/libxen/include/xen/api/xen_vbd.h
index d40af36796..9806c5ee73 100644
--- a/tools/libxen/include/xen_vbd.h
+++ b/tools/libxen/include/xen/api/xen_vbd.h
@@ -19,15 +19,15 @@
#ifndef XEN_VBD_H
#define XEN_VBD_H
-#include "xen_common.h"
-#include "xen_string_set.h"
-#include "xen_string_string_map.h"
-#include "xen_vbd_decl.h"
-#include "xen_vbd_metrics_decl.h"
-#include "xen_vbd_mode.h"
-#include "xen_vbd_type.h"
-#include "xen_vdi_decl.h"
-#include "xen_vm_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_string_set.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vbd_decl.h>
+#include <xen/api/xen_vbd_metrics_decl.h>
+#include <xen/api/xen_vbd_mode.h>
+#include <xen/api/xen_vbd_type.h>
+#include <xen/api/xen_vdi_decl.h>
+#include <xen/api/xen_vm_decl.h>
/*
@@ -358,7 +358,7 @@ xen_vbd_remove_from_qos_algorithm_params(xen_session *session, xen_vbd vbd, char
/**
* Change the media in the device for CDROM-like devices only. For
- * other devices, detach the VBD and attach a new one
+ * other devices, detach the VBD and attach a new one.
*/
extern bool
xen_vbd_media_change(xen_session *session, xen_vbd vbd, xen_vdi vdi);
@@ -366,7 +366,7 @@ xen_vbd_media_change(xen_session *session, xen_vbd vbd, xen_vdi vdi);
/**
* Hotplug the specified VBD, dynamically attaching it to the running
- * VM
+ * VM.
*/
extern bool
xen_vbd_plug(xen_session *session, xen_vbd self);
@@ -374,7 +374,7 @@ xen_vbd_plug(xen_session *session, xen_vbd self);
/**
* Hot-unplug the specified VBD, dynamically unattaching it from the
- * running VM
+ * running VM.
*/
extern bool
xen_vbd_unplug(xen_session *session, xen_vbd self);
diff --git a/tools/libxen/include/xen_vbd_decl.h b/tools/libxen/include/xen/api/xen_vbd_decl.h
index c6877866b6..018af3b85d 100644
--- a/tools/libxen/include/xen_vbd_decl.h
+++ b/tools/libxen/include/xen/api/xen_vbd_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_vbd_metrics.h b/tools/libxen/include/xen/api/xen_vbd_metrics.h
index f1aa420a34..1cb1a2bc85 100644
--- a/tools/libxen/include/xen_vbd_metrics.h
+++ b/tools/libxen/include/xen/api/xen_vbd_metrics.h
@@ -19,8 +19,8 @@
#ifndef XEN_VBD_METRICS_H
#define XEN_VBD_METRICS_H
-#include "xen_common.h"
-#include "xen_vbd_metrics_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_vbd_metrics_decl.h>
/*
diff --git a/tools/libxen/include/xen_vbd_metrics_decl.h b/tools/libxen/include/xen/api/xen_vbd_metrics_decl.h
index 501aa8f60c..501aa8f60c 100644
--- a/tools/libxen/include/xen_vbd_metrics_decl.h
+++ b/tools/libxen/include/xen/api/xen_vbd_metrics_decl.h
diff --git a/tools/libxen/include/xen_vbd_mode.h b/tools/libxen/include/xen/api/xen_vbd_mode.h
index b0cd1c2cf3..8cab27ec73 100644
--- a/tools/libxen/include/xen_vbd_mode.h
+++ b/tools/libxen/include/xen/api/xen_vbd_mode.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
#define XEN_VBD_MODE_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
enum xen_vbd_mode
diff --git a/tools/libxen/include/xen_vbd_type.h b/tools/libxen/include/xen/api/xen_vbd_type.h
index 656fa16316..d19aef83bf 100644
--- a/tools/libxen/include/xen_vbd_type.h
+++ b/tools/libxen/include/xen/api/xen_vbd_type.h
@@ -20,7 +20,7 @@
#define XEN_VBD_TYPE_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
enum xen_vbd_type
diff --git a/tools/libxen/include/xen_vdi.h b/tools/libxen/include/xen/api/xen_vdi.h
index 74b63542e6..c40dcfc4be 100644
--- a/tools/libxen/include/xen_vdi.h
+++ b/tools/libxen/include/xen/api/xen_vdi.h
@@ -19,13 +19,13 @@
#ifndef XEN_VDI_H
#define XEN_VDI_H
-#include "xen_common.h"
-#include "xen_crashdump_decl.h"
-#include "xen_sr_decl.h"
-#include "xen_string_string_map.h"
-#include "xen_vbd_decl.h"
-#include "xen_vdi_decl.h"
-#include "xen_vdi_type.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_crashdump_decl.h>
+#include <xen/api/xen_sr_decl.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vbd_decl.h>
+#include <xen/api/xen_vdi_decl.h>
+#include <xen/api/xen_vdi_type.h>
/*
diff --git a/tools/libxen/include/xen_vdi_decl.h b/tools/libxen/include/xen/api/xen_vdi_decl.h
index 34692a2495..13a328e044 100644
--- a/tools/libxen/include/xen_vdi_decl.h
+++ b/tools/libxen/include/xen/api/xen_vdi_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_vdi_type.h b/tools/libxen/include/xen/api/xen_vdi_type.h
index 01168491ee..d98a2abc51 100644
--- a/tools/libxen/include/xen_vdi_type.h
+++ b/tools/libxen/include/xen/api/xen_vdi_type.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
#define XEN_VDI_TYPE_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
enum xen_vdi_type
diff --git a/tools/libxen/include/xen_vif.h b/tools/libxen/include/xen/api/xen_vif.h
index e9ad6b4369..26608f0af9 100644
--- a/tools/libxen/include/xen_vif.h
+++ b/tools/libxen/include/xen/api/xen_vif.h
@@ -19,13 +19,13 @@
#ifndef XEN_VIF_H
#define XEN_VIF_H
-#include "xen_common.h"
-#include "xen_network_decl.h"
-#include "xen_string_set.h"
-#include "xen_string_string_map.h"
-#include "xen_vif_decl.h"
-#include "xen_vif_metrics_decl.h"
-#include "xen_vm_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_network_decl.h>
+#include <xen/api/xen_string_set.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vif_decl.h>
+#include <xen/api/xen_vif_metrics_decl.h>
+#include <xen/api/xen_vm_decl.h>
/*
diff --git a/tools/libxen/include/xen_vif_decl.h b/tools/libxen/include/xen/api/xen_vif_decl.h
index 6a130f7154..0d4c59d668 100644
--- a/tools/libxen/include/xen_vif_decl.h
+++ b/tools/libxen/include/xen/api/xen_vif_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_vif_metrics.h b/tools/libxen/include/xen/api/xen_vif_metrics.h
index 2febab468d..a363137816 100644
--- a/tools/libxen/include/xen_vif_metrics.h
+++ b/tools/libxen/include/xen/api/xen_vif_metrics.h
@@ -19,8 +19,8 @@
#ifndef XEN_VIF_METRICS_H
#define XEN_VIF_METRICS_H
-#include "xen_common.h"
-#include "xen_vif_metrics_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_vif_metrics_decl.h>
/*
diff --git a/tools/libxen/include/xen_vif_metrics_decl.h b/tools/libxen/include/xen/api/xen_vif_metrics_decl.h
index 5734723adf..5734723adf 100644
--- a/tools/libxen/include/xen_vif_metrics_decl.h
+++ b/tools/libxen/include/xen/api/xen_vif_metrics_decl.h
diff --git a/tools/libxen/include/xen_vm.h b/tools/libxen/include/xen/api/xen_vm.h
index d33f31b860..35448afd9f 100644
--- a/tools/libxen/include/xen_vm.h
+++ b/tools/libxen/include/xen/api/xen_vm.h
@@ -19,21 +19,21 @@
#ifndef XEN_VM_H
#define XEN_VM_H
-#include "xen_common.h"
-#include "xen_console_decl.h"
-#include "xen_crashdump_decl.h"
-#include "xen_host_decl.h"
-#include "xen_on_crash_behaviour.h"
-#include "xen_on_normal_exit.h"
-#include "xen_string_string_map.h"
-#include "xen_vbd_decl.h"
-#include "xen_vdi_decl.h"
-#include "xen_vif_decl.h"
-#include "xen_vm_decl.h"
-#include "xen_vm_guest_metrics_decl.h"
-#include "xen_vm_metrics_decl.h"
-#include "xen_vm_power_state.h"
-#include "xen_vtpm_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_console_decl.h>
+#include <xen/api/xen_crashdump_decl.h>
+#include <xen/api/xen_host_decl.h>
+#include <xen/api/xen_on_crash_behaviour.h>
+#include <xen/api/xen_on_normal_exit.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vbd_decl.h>
+#include <xen/api/xen_vdi_decl.h>
+#include <xen/api/xen_vif_decl.h>
+#include <xen/api/xen_vm_decl.h>
+#include <xen/api/xen_vm_guest_metrics_decl.h>
+#include <xen/api/xen_vm_metrics_decl.h>
+#include <xen/api/xen_vm_power_state.h>
+#include <xen/api/xen_vtpm_decl.h>
/*
diff --git a/tools/libxen/include/xen_vm_decl.h b/tools/libxen/include/xen/api/xen_vm_decl.h
index 815b036ea5..f4ca986b62 100644
--- a/tools/libxen/include/xen_vm_decl.h
+++ b/tools/libxen/include/xen/api/xen_vm_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_vm_guest_metrics.h b/tools/libxen/include/xen/api/xen_vm_guest_metrics.h
index 2734764526..fd4d23a24c 100644
--- a/tools/libxen/include/xen_vm_guest_metrics.h
+++ b/tools/libxen/include/xen/api/xen_vm_guest_metrics.h
@@ -19,9 +19,9 @@
#ifndef XEN_VM_GUEST_METRICS_H
#define XEN_VM_GUEST_METRICS_H
-#include "xen_common.h"
-#include "xen_string_string_map.h"
-#include "xen_vm_guest_metrics_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vm_guest_metrics_decl.h>
/*
diff --git a/tools/libxen/include/xen_vm_guest_metrics_decl.h b/tools/libxen/include/xen/api/xen_vm_guest_metrics_decl.h
index 837528b919..837528b919 100644
--- a/tools/libxen/include/xen_vm_guest_metrics_decl.h
+++ b/tools/libxen/include/xen/api/xen_vm_guest_metrics_decl.h
diff --git a/tools/libxen/include/xen_vm_metrics.h b/tools/libxen/include/xen/api/xen_vm_metrics.h
index 3350a66807..128c1a3a3a 100644
--- a/tools/libxen/include/xen_vm_metrics.h
+++ b/tools/libxen/include/xen/api/xen_vm_metrics.h
@@ -19,13 +19,13 @@
#ifndef XEN_VM_METRICS_H
#define XEN_VM_METRICS_H
-#include "xen_common.h"
-#include "xen_int_float_map.h"
-#include "xen_int_int_map.h"
-#include "xen_int_string_set_map.h"
-#include "xen_string_set.h"
-#include "xen_string_string_map.h"
-#include "xen_vm_metrics_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_int_float_map.h>
+#include <xen/api/xen_int_int_map.h>
+#include <xen/api/xen_int_string_set_map.h>
+#include <xen/api/xen_string_set.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vm_metrics_decl.h>
/*
diff --git a/tools/libxen/include/xen_vm_metrics_decl.h b/tools/libxen/include/xen/api/xen_vm_metrics_decl.h
index ea1bcb51f7..76810b5ba6 100644
--- a/tools/libxen/include/xen_vm_metrics_decl.h
+++ b/tools/libxen/include/xen/api/xen_vm_metrics_decl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_vm_power_state.h b/tools/libxen/include/xen/api/xen_vm_power_state.h
index c5404b89cf..649f49a7f1 100644
--- a/tools/libxen/include/xen_vm_power_state.h
+++ b/tools/libxen/include/xen/api/xen_vm_power_state.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,7 @@
#define XEN_VM_POWER_STATE_H
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
enum xen_vm_power_state
diff --git a/tools/libxen/include/xen_vtpm.h b/tools/libxen/include/xen/api/xen_vtpm.h
index add504221f..920948d134 100644
--- a/tools/libxen/include/xen_vtpm.h
+++ b/tools/libxen/include/xen/api/xen_vtpm.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
* Copyright (c) 2006, IBM Corp.
*
* This library is free software; you can redistribute it and/or
@@ -20,14 +20,14 @@
#ifndef XEN_VTPM_H
#define XEN_VTPM_H
-#include "xen_common.h"
-#include "xen_vm_decl.h"
-#include "xen_vtpm_decl.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_vm_decl.h>
+#include <xen/api/xen_vtpm_decl.h>
/*
- * The VTPM class.
- *
+ * The VTPM class.
+ *
* A virtual TPM device.
*/
@@ -195,4 +195,5 @@ xen_vtpm_get_vm(xen_session *session, xen_vm *result, xen_vtpm vtpm);
extern bool
xen_vtpm_get_backend(xen_session *session, xen_vm *result, xen_vtpm vtpm);
+
#endif
diff --git a/tools/libxen/include/xen_vtpm_decl.h b/tools/libxen/include/xen/api/xen_vtpm_decl.h
index 7798e3856d..7798e3856d 100644
--- a/tools/libxen/include/xen_vtpm_decl.h
+++ b/tools/libxen/include/xen/api/xen_vtpm_decl.h
diff --git a/tools/libxen/include/xen_console_protocol_internal.h b/tools/libxen/include/xen_console_protocol_internal.h
index 70cdae37af..d2ddaa0319 100644
--- a/tools/libxen/include/xen_console_protocol_internal.h
+++ b/tools/libxen/include/xen_console_protocol_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_internal.h b/tools/libxen/include/xen_internal.h
index ea326b29de..21f75de5fe 100644
--- a/tools/libxen/include/xen_internal.h
+++ b/tools/libxen/include/xen_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006 XenSource, Inc.
+ * Copyright (c) 2006-2007 XenSource, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -24,7 +24,7 @@
#include <stdbool.h>
#include <stdlib.h>
-#include "xen_common.h"
+#include <xen/api/xen_common.h>
enum abstract_typename
@@ -147,7 +147,12 @@ type__ ## _free(type__ handle) \
} \
-#define XEN_SET_ALLOC_FREE(type__) \
+#define XEN_SET_ALLOC_FREE(type__) \
+ XEN_SET_ALLOC(type__) \
+ XEN_SET_FREE(type__)
+
+
+#define XEN_SET_ALLOC(type__) \
type__ ## _set * \
type__ ## _set_alloc(size_t size) \
{ \
@@ -155,43 +160,29 @@ type__ ## _set_alloc(size_t size) \
size * sizeof(type__)); \
result->size = size; \
return result; \
-} \
- \
-void \
-type__ ## _set_free(type__ ## _set *set) \
+}
+
+
+#define XEN_SET_FREE(type__) \
+void type__ ## _set_free(type__ ## _set *set) \
{ \
if (set == NULL) \
- { \
return; \
- } \
- size_t n = set->size; \
- for (size_t i = 0; i < n; i++) \
- { \
+ for (size_t i = 0; i < set->size; i++) \
type__ ## _free(set->contents[i]); \
- } \
- \
free(set); \
-} \
-
-
-#define XEN_RECORD_OPT_FREE(type__) \
-void \
-type__ ## _record_opt_free(type__ ## _record_opt *opt) \
-{ \
- if (opt == NULL) \
- { \
- return; \
- } \
- if (opt->is_record) \
- { \
- type__ ## _record_free(opt->u.record); \
- } \
- else \
- { \
- type__ ## _free(opt->u.handle); \
- } \
- free(opt); \
-} \
+}
+
+
+#define XEN_RECORD_OPT_FREE(type__) \
+void type__ ## _record_opt_free(type__ ## _record_opt *opt) { \
+ if (opt == NULL) return; \
+ if (opt->is_record) \
+ type__ ## _record_free(opt->u.record); \
+ else \
+ type__ ## _free(opt->u.handle); \
+ free(opt); \
+}
#endif
diff --git a/tools/libxen/include/xen_on_crash_behaviour_internal.h b/tools/libxen/include/xen_on_crash_behaviour_internal.h
index 012398b814..bd6f1faa7a 100644
--- a/tools/libxen/include/xen_on_crash_behaviour_internal.h
+++ b/tools/libxen/include/xen_on_crash_behaviour_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_on_normal_exit_internal.h b/tools/libxen/include/xen_on_normal_exit_internal.h
index 3a94f8919c..ffff46a869 100644
--- a/tools/libxen/include/xen_on_normal_exit_internal.h
+++ b/tools/libxen/include/xen_on_normal_exit_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_vbd_mode_internal.h b/tools/libxen/include/xen_vbd_mode_internal.h
index 3efd4a63d5..4f05681118 100644
--- a/tools/libxen/include/xen_vbd_mode_internal.h
+++ b/tools/libxen/include/xen_vbd_mode_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_vdi_type_internal.h b/tools/libxen/include/xen_vdi_type_internal.h
index 1de23c8c83..9c575ffaab 100644
--- a/tools/libxen/include/xen_vdi_type_internal.h
+++ b/tools/libxen/include/xen_vdi_type_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/include/xen_vm_power_state_internal.h b/tools/libxen/include/xen_vm_power_state_internal.h
index 2c88856c08..a3f5af114c 100644
--- a/tools/libxen/include/xen_vm_power_state_internal.h
+++ b/tools/libxen/include/xen_vm_power_state_internal.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/tools/libxen/src/xen_common.c b/tools/libxen/src/xen_common.c
index f0fc4cce33..1819381640 100644
--- a/tools/libxen/src/xen_common.c
+++ b/tools/libxen/src/xen_common.c
@@ -31,13 +31,13 @@
#include <libxml/xmlstring.h>
#include <libxml/xpath.h>
-#include "xen_common.h"
-#include "xen_host.h"
+#include "xen/api/xen_common.h"
+#include "xen/api/xen_host.h"
#include "xen_internal.h"
-#include "xen_int_float_map.h"
-#include "xen_int_int_map.h"
-#include "xen_int_string_set_map.h"
-#include "xen_string_string_map.h"
+#include "xen/api/xen_int_float_map.h"
+#include "xen/api/xen_int_int_map.h"
+#include "xen/api/xen_int_string_set_map.h"
+#include "xen/api/xen_string_string_map.h"
/*
diff --git a/tools/libxen/src/xen_console.c b/tools/libxen/src/xen_console.c
index 9d0764a2d6..2b45498295 100644
--- a/tools/libxen/src/xen_console.c
+++ b/tools/libxen/src/xen_console.c
@@ -20,12 +20,12 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_console.h"
#include "xen_console_protocol_internal.h"
#include "xen_internal.h"
-#include "xen_string_string_map.h"
-#include "xen_vm.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_console.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vm.h>
XEN_FREE(xen_console)
diff --git a/tools/libxen/src/xen_console_protocol.c b/tools/libxen/src/xen_console_protocol.c
index cb87ac01c9..031d64d9a5 100644
--- a/tools/libxen/src/xen_console_protocol.c
+++ b/tools/libxen/src/xen_console_protocol.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
#include <string.h>
#include "xen_internal.h"
-#include "xen_console_protocol.h"
+#include <xen/api/xen_console_protocol.h>
#include "xen_console_protocol_internal.h"
diff --git a/tools/libxen/src/xen_crashdump.c b/tools/libxen/src/xen_crashdump.c
index 5d8f70a2ea..ba2121bcde 100644
--- a/tools/libxen/src/xen_crashdump.c
+++ b/tools/libxen/src/xen_crashdump.c
@@ -20,11 +20,11 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_crashdump.h"
#include "xen_internal.h"
-#include "xen_vdi.h"
-#include "xen_vm.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_crashdump.h>
+#include <xen/api/xen_vdi.h>
+#include <xen/api/xen_vm.h>
XEN_FREE(xen_crashdump)
diff --git a/tools/libxen/src/xen_event.c b/tools/libxen/src/xen_event.c
index 3022caffed..30e8d60820 100644
--- a/tools/libxen/src/xen_event.c
+++ b/tools/libxen/src/xen_event.c
@@ -20,10 +20,10 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_event.h"
#include "xen_event_operation_internal.h"
#include "xen_internal.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_event.h>
XEN_ALLOC(xen_event_record)
diff --git a/tools/libxen/src/xen_event_operation.c b/tools/libxen/src/xen_event_operation.c
index c338af0930..48a7c362ac 100644
--- a/tools/libxen/src/xen_event_operation.c
+++ b/tools/libxen/src/xen_event_operation.c
@@ -19,7 +19,7 @@
#include <string.h>
#include "xen_internal.h"
-#include "xen_event_operation.h"
+#include <xen/api/xen_event_operation.h>
#include "xen_event_operation_internal.h"
diff --git a/tools/libxen/src/xen_host.c b/tools/libxen/src/xen_host.c
index 331ed2105b..0739c4fe4e 100644
--- a/tools/libxen/src/xen_host.c
+++ b/tools/libxen/src/xen_host.c
@@ -20,16 +20,16 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_host.h"
-#include "xen_host_cpu.h"
-#include "xen_host_metrics.h"
#include "xen_internal.h"
-#include "xen_pbd.h"
-#include "xen_pif.h"
-#include "xen_sr.h"
-#include "xen_string_string_map.h"
-#include "xen_vm.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host.h>
+#include <xen/api/xen_host_cpu.h>
+#include <xen/api/xen_host_metrics.h>
+#include <xen/api/xen_pbd.h>
+#include <xen/api/xen_pif.h>
+#include <xen/api/xen_sr.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vm.h>
XEN_FREE(xen_host)
diff --git a/tools/libxen/src/xen_host_cpu.c b/tools/libxen/src/xen_host_cpu.c
index 9509c570e4..6e84b49f63 100644
--- a/tools/libxen/src/xen_host_cpu.c
+++ b/tools/libxen/src/xen_host_cpu.c
@@ -20,10 +20,10 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_host.h"
-#include "xen_host_cpu.h"
#include "xen_internal.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host.h>
+#include <xen/api/xen_host_cpu.h>
XEN_FREE(xen_host_cpu)
diff --git a/tools/libxen/src/xen_host_metrics.c b/tools/libxen/src/xen_host_metrics.c
index 203f25ed0a..976f4c5e40 100644
--- a/tools/libxen/src/xen_host_metrics.c
+++ b/tools/libxen/src/xen_host_metrics.c
@@ -20,9 +20,9 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_host_metrics.h"
#include "xen_internal.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host_metrics.h>
XEN_FREE(xen_host_metrics)
diff --git a/tools/libxen/src/xen_int_float_map.c b/tools/libxen/src/xen_int_float_map.c
index 33ff29de62..ed3bf48243 100644
--- a/tools/libxen/src/xen_int_float_map.c
+++ b/tools/libxen/src/xen_int_float_map.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,9 +17,9 @@
*/
-#include "xen_common.h"
-#include "xen_int_float_map.h"
#include "xen_internal.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_int_float_map.h>
xen_int_float_map *
diff --git a/tools/libxen/src/xen_int_int_map.c b/tools/libxen/src/xen_int_int_map.c
index b7eeba6e96..3d87c22885 100644
--- a/tools/libxen/src/xen_int_int_map.c
+++ b/tools/libxen/src/xen_int_int_map.c
@@ -17,9 +17,9 @@
*/
-#include "xen_common.h"
-#include "xen_int_int_map.h"
#include "xen_internal.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_int_int_map.h>
xen_int_int_map *
diff --git a/tools/libxen/src/xen_int_string_set_map.c b/tools/libxen/src/xen_int_string_set_map.c
index 1b37927034..ba61c81268 100644
--- a/tools/libxen/src/xen_int_string_set_map.c
+++ b/tools/libxen/src/xen_int_string_set_map.c
@@ -17,10 +17,10 @@
*/
-#include "xen_common.h"
-#include "xen_int_string_set_map.h"
#include "xen_internal.h"
-#include "xen_string_set.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_int_string_set_map.h>
+#include <xen/api/xen_string_set.h>
xen_int_string_set_map *
diff --git a/tools/libxen/src/xen_network.c b/tools/libxen/src/xen_network.c
index 01393f6773..4b03ead0e4 100644
--- a/tools/libxen/src/xen_network.c
+++ b/tools/libxen/src/xen_network.c
@@ -20,12 +20,12 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_network.h"
-#include "xen_pif.h"
-#include "xen_string_string_map.h"
-#include "xen_vif.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_network.h>
+#include <xen/api/xen_pif.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vif.h>
XEN_FREE(xen_network)
diff --git a/tools/libxen/src/xen_on_crash_behaviour.c b/tools/libxen/src/xen_on_crash_behaviour.c
index cb1d0deca9..abd25db47e 100644
--- a/tools/libxen/src/xen_on_crash_behaviour.c
+++ b/tools/libxen/src/xen_on_crash_behaviour.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
#include <string.h>
#include "xen_internal.h"
-#include "xen_on_crash_behaviour.h"
+#include <xen/api/xen_on_crash_behaviour.h>
#include "xen_on_crash_behaviour_internal.h"
diff --git a/tools/libxen/src/xen_on_normal_exit.c b/tools/libxen/src/xen_on_normal_exit.c
index 3cfe09766b..bbb4e276dc 100644
--- a/tools/libxen/src/xen_on_normal_exit.c
+++ b/tools/libxen/src/xen_on_normal_exit.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
#include <string.h>
#include "xen_internal.h"
-#include "xen_on_normal_exit.h"
+#include <xen/api/xen_on_normal_exit.h>
#include "xen_on_normal_exit_internal.h"
diff --git a/tools/libxen/src/xen_pbd.c b/tools/libxen/src/xen_pbd.c
index 2b8bbd5b44..d3702ef4e2 100644
--- a/tools/libxen/src/xen_pbd.c
+++ b/tools/libxen/src/xen_pbd.c
@@ -20,12 +20,12 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_host.h"
#include "xen_internal.h"
-#include "xen_pbd.h"
-#include "xen_sr.h"
-#include "xen_string_string_map.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host.h>
+#include <xen/api/xen_pbd.h>
+#include <xen/api/xen_sr.h>
+#include <xen/api/xen_string_string_map.h>
XEN_FREE(xen_pbd)
diff --git a/tools/libxen/src/xen_pif.c b/tools/libxen/src/xen_pif.c
index 9dfaec7b51..7cf9a744ab 100644
--- a/tools/libxen/src/xen_pif.c
+++ b/tools/libxen/src/xen_pif.c
@@ -20,12 +20,12 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_host.h"
#include "xen_internal.h"
-#include "xen_network.h"
-#include "xen_pif.h"
-#include "xen_pif_metrics.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_host.h>
+#include <xen/api/xen_network.h>
+#include <xen/api/xen_pif.h>
+#include <xen/api/xen_pif_metrics.h>
XEN_FREE(xen_pif)
diff --git a/tools/libxen/src/xen_pif_metrics.c b/tools/libxen/src/xen_pif_metrics.c
index c1413442ca..f150f7f5e9 100644
--- a/tools/libxen/src/xen_pif_metrics.c
+++ b/tools/libxen/src/xen_pif_metrics.c
@@ -20,9 +20,9 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_pif_metrics.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_pif_metrics.h>
XEN_FREE(xen_pif_metrics)
diff --git a/tools/libxen/src/xen_sr.c b/tools/libxen/src/xen_sr.c
index 5220fa3019..b2ff310f7e 100644
--- a/tools/libxen/src/xen_sr.c
+++ b/tools/libxen/src/xen_sr.c
@@ -20,11 +20,11 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_pbd.h"
-#include "xen_sr.h"
-#include "xen_vdi.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_pbd.h>
+#include <xen/api/xen_sr.h>
+#include <xen/api/xen_vdi.h>
XEN_FREE(xen_sr)
diff --git a/tools/libxen/src/xen_string_set.c b/tools/libxen/src/xen_string_set.c
index 882943356c..7af0f882a6 100644
--- a/tools/libxen/src/xen_string_set.c
+++ b/tools/libxen/src/xen_string_set.c
@@ -18,7 +18,7 @@
#include "xen_internal.h"
-#include "xen_string_set.h"
+#include <xen/api/xen_string_set.h>
xen_string_set *
diff --git a/tools/libxen/src/xen_string_string_map.c b/tools/libxen/src/xen_string_string_map.c
index b07acfbf7c..84ae0fcd19 100644
--- a/tools/libxen/src/xen_string_string_map.c
+++ b/tools/libxen/src/xen_string_string_map.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,9 +17,9 @@
*/
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_string_string_map.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_string_string_map.h>
xen_string_string_map *
diff --git a/tools/libxen/src/xen_user.c b/tools/libxen/src/xen_user.c
index b4dde9d74e..377f8f89ca 100644
--- a/tools/libxen/src/xen_user.c
+++ b/tools/libxen/src/xen_user.c
@@ -20,9 +20,9 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_user.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_user.h>
XEN_FREE(xen_user)
diff --git a/tools/libxen/src/xen_vbd.c b/tools/libxen/src/xen_vbd.c
index facedad94f..85b034b45a 100644
--- a/tools/libxen/src/xen_vbd.c
+++ b/tools/libxen/src/xen_vbd.c
@@ -20,15 +20,15 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_string_string_map.h"
-#include "xen_vbd.h"
-#include "xen_vbd_metrics.h"
#include "xen_vbd_mode_internal.h"
#include "xen_vbd_type_internal.h"
-#include "xen_vdi.h"
-#include "xen_vm.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vbd.h>
+#include <xen/api/xen_vbd_metrics.h>
+#include <xen/api/xen_vdi.h>
+#include <xen/api/xen_vm.h>
XEN_FREE(xen_vbd)
diff --git a/tools/libxen/src/xen_vbd_metrics.c b/tools/libxen/src/xen_vbd_metrics.c
index fb5395d309..c4f336c82e 100644
--- a/tools/libxen/src/xen_vbd_metrics.c
+++ b/tools/libxen/src/xen_vbd_metrics.c
@@ -20,9 +20,9 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_vbd_metrics.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_vbd_metrics.h>
XEN_FREE(xen_vbd_metrics)
diff --git a/tools/libxen/src/xen_vbd_mode.c b/tools/libxen/src/xen_vbd_mode.c
index e9fa71140a..71abc42465 100644
--- a/tools/libxen/src/xen_vbd_mode.c
+++ b/tools/libxen/src/xen_vbd_mode.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
#include <string.h>
#include "xen_internal.h"
-#include "xen_vbd_mode.h"
+#include <xen/api/xen_vbd_mode.h>
#include "xen_vbd_mode_internal.h"
diff --git a/tools/libxen/src/xen_vbd_type.c b/tools/libxen/src/xen_vbd_type.c
index 874eb096ef..0572635ffb 100644
--- a/tools/libxen/src/xen_vbd_type.c
+++ b/tools/libxen/src/xen_vbd_type.c
@@ -19,7 +19,7 @@
#include <string.h>
#include "xen_internal.h"
-#include "xen_vbd_type.h"
+#include <xen/api/xen_vbd_type.h>
#include "xen_vbd_type_internal.h"
diff --git a/tools/libxen/src/xen_vdi.c b/tools/libxen/src/xen_vdi.c
index 66a524c9c3..9c161a4c8d 100644
--- a/tools/libxen/src/xen_vdi.c
+++ b/tools/libxen/src/xen_vdi.c
@@ -20,14 +20,14 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_crashdump.h"
#include "xen_internal.h"
-#include "xen_sr.h"
-#include "xen_string_string_map.h"
-#include "xen_vbd.h"
-#include "xen_vdi.h"
#include "xen_vdi_type_internal.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_crashdump.h>
+#include <xen/api/xen_sr.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vbd.h>
+#include <xen/api/xen_vdi.h>
XEN_FREE(xen_vdi)
diff --git a/tools/libxen/src/xen_vdi_type.c b/tools/libxen/src/xen_vdi_type.c
index 79e855fa59..4f0bda7b3a 100644
--- a/tools/libxen/src/xen_vdi_type.c
+++ b/tools/libxen/src/xen_vdi_type.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
#include <string.h>
#include "xen_internal.h"
-#include "xen_vdi_type.h"
+#include <xen/api/xen_vdi_type.h>
#include "xen_vdi_type_internal.h"
diff --git a/tools/libxen/src/xen_vif.c b/tools/libxen/src/xen_vif.c
index b0ea376a4b..bc9dd0dd2f 100644
--- a/tools/libxen/src/xen_vif.c
+++ b/tools/libxen/src/xen_vif.c
@@ -20,13 +20,13 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_network.h"
-#include "xen_string_string_map.h"
-#include "xen_vif.h"
-#include "xen_vif_metrics.h"
-#include "xen_vm.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_network.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vif.h>
+#include <xen/api/xen_vif_metrics.h>
+#include <xen/api/xen_vm.h>
XEN_FREE(xen_vif)
diff --git a/tools/libxen/src/xen_vif_metrics.c b/tools/libxen/src/xen_vif_metrics.c
index 7c101f8933..9b876e52f8 100644
--- a/tools/libxen/src/xen_vif_metrics.c
+++ b/tools/libxen/src/xen_vif_metrics.c
@@ -20,9 +20,9 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_vif_metrics.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_vif_metrics.h>
XEN_FREE(xen_vif_metrics)
diff --git a/tools/libxen/src/xen_vm.c b/tools/libxen/src/xen_vm.c
index d2a4309a0d..495103c9a9 100644
--- a/tools/libxen/src/xen_vm.c
+++ b/tools/libxen/src/xen_vm.c
@@ -20,22 +20,22 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_console.h"
-#include "xen_crashdump.h"
-#include "xen_host.h"
#include "xen_internal.h"
#include "xen_on_crash_behaviour_internal.h"
#include "xen_on_normal_exit_internal.h"
-#include "xen_string_string_map.h"
-#include "xen_vbd.h"
-#include "xen_vdi.h"
-#include "xen_vif.h"
-#include "xen_vm.h"
-#include "xen_vm_guest_metrics.h"
-#include "xen_vm_metrics.h"
#include "xen_vm_power_state_internal.h"
-#include "xen_vtpm.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_console.h>
+#include <xen/api/xen_crashdump.h>
+#include <xen/api/xen_host.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vbd.h>
+#include <xen/api/xen_vdi.h>
+#include <xen/api/xen_vif.h>
+#include <xen/api/xen_vm.h>
+#include <xen/api/xen_vm_guest_metrics.h>
+#include <xen/api/xen_vm_metrics.h>
+#include <xen/api/xen_vtpm.h>
XEN_FREE(xen_vm)
diff --git a/tools/libxen/src/xen_vm_guest_metrics.c b/tools/libxen/src/xen_vm_guest_metrics.c
index 0e60926bab..251b65e1b5 100644
--- a/tools/libxen/src/xen_vm_guest_metrics.c
+++ b/tools/libxen/src/xen_vm_guest_metrics.c
@@ -20,10 +20,10 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_string_string_map.h"
-#include "xen_vm_guest_metrics.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vm_guest_metrics.h>
XEN_FREE(xen_vm_guest_metrics)
diff --git a/tools/libxen/src/xen_vm_metrics.c b/tools/libxen/src/xen_vm_metrics.c
index 267393a935..7f2ab94441 100644
--- a/tools/libxen/src/xen_vm_metrics.c
+++ b/tools/libxen/src/xen_vm_metrics.c
@@ -20,13 +20,13 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
-#include "xen_int_float_map.h"
-#include "xen_int_int_map.h"
-#include "xen_int_string_set_map.h"
#include "xen_internal.h"
-#include "xen_string_string_map.h"
-#include "xen_vm_metrics.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_int_float_map.h>
+#include <xen/api/xen_int_int_map.h>
+#include <xen/api/xen_int_string_set_map.h>
+#include <xen/api/xen_string_string_map.h>
+#include <xen/api/xen_vm_metrics.h>
XEN_FREE(xen_vm_metrics)
diff --git a/tools/libxen/src/xen_vm_power_state.c b/tools/libxen/src/xen_vm_power_state.c
index 9f96f34f9b..9797e63163 100644
--- a/tools/libxen/src/xen_vm_power_state.c
+++ b/tools/libxen/src/xen_vm_power_state.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,7 +19,7 @@
#include <string.h>
#include "xen_internal.h"
-#include "xen_vm_power_state.h"
+#include <xen/api/xen_vm_power_state.h>
#include "xen_vm_power_state_internal.h"
diff --git a/tools/libxen/src/xen_vtpm.c b/tools/libxen/src/xen_vtpm.c
index 28d849ae1c..5ed3692234 100644
--- a/tools/libxen/src/xen_vtpm.c
+++ b/tools/libxen/src/xen_vtpm.c
@@ -21,10 +21,10 @@
#include <stddef.h>
#include <stdlib.h>
-#include "xen_common.h"
#include "xen_internal.h"
-#include "xen_vm.h"
-#include "xen_vtpm.h"
+#include <xen/api/xen_common.h>
+#include <xen/api/xen_vm.h>
+#include <xen/api/xen_vtpm.h>
XEN_FREE(xen_vtpm)
@@ -46,7 +46,7 @@ static const struct_member xen_vtpm_record_struct_members[] =
.offset = offsetof(xen_vtpm_record, vm) },
{ .key = "backend",
.type = &abstract_type_ref,
- .offset = offsetof(xen_vtpm_record, backend) },
+ .offset = offsetof(xen_vtpm_record, backend) }
};
const abstract_type xen_vtpm_record_abstract_type_ =
diff --git a/tools/libxen/test/test_bindings.c b/tools/libxen/test/test_bindings.c
index 0659cd89e1..566a0388fa 100644
--- a/tools/libxen/test/test_bindings.c
+++ b/tools/libxen/test/test_bindings.c
@@ -25,14 +25,7 @@
#include <libxml/parser.h>
#include <curl/curl.h>
-
-#include "xen_host.h"
-#include "xen_sr.h"
-#include "xen_vbd.h"
-#include "xen_vdi.h"
-#include "xen_console.h"
-#include "xen_vm.h"
-#include "xen_vm_metrics.h"
+#include <xen/api/xen_all.h>
//#define PRINT_XML
diff --git a/tools/libxen/test/test_event_handling.c b/tools/libxen/test/test_event_handling.c
index 16ba293da6..188b585d0b 100644
--- a/tools/libxen/test/test_event_handling.c
+++ b/tools/libxen/test/test_event_handling.c
@@ -25,8 +25,7 @@
#include <libxml/parser.h>
#include <curl/curl.h>
-
-#include "xen_event.h"
+#include <xen/api/xen_event.h>
//#define PRINT_XML
diff --git a/tools/libxen/test/test_hvm_bindings.c b/tools/libxen/test/test_hvm_bindings.c
deleted file mode 100644
index 8bc8e7c347..0000000000
--- a/tools/libxen/test/test_hvm_bindings.c
+++ /dev/null
@@ -1,445 +0,0 @@
-/*
- * Copyright (c) 2006 XenSource, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#define _GNU_SOURCE
-#include <inttypes.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <libxml/parser.h>
-#include <curl/curl.h>
-
-#include "xen_host.h"
-#include "xen_sr.h"
-#include "xen_vbd.h"
-#include "xen_vdi.h"
-#include "xen_vm.h"
-
-
-static void usage()
-{
- fprintf(stderr,
-"Usage:\n"
-"\n"
-" test_bindings <url> <username> <password>\n"
-"\n"
-"where\n"
-" <url> is a fragment of the server's URL, e.g. localhost:8005/RPC2;\n"
-" <username> is the username to use at the server; and\n"
-" <password> is the password.\n");
-
- exit(EXIT_FAILURE);
-}
-
-
-static char *url;
-
-
-typedef struct
-{
- xen_result_func func;
- void *handle;
-} xen_comms;
-
-
-static xen_vm create_new_vm(xen_session *session);
-static void print_vm_power_state(xen_session *session, xen_vm vm);
-
-
-static size_t
-write_func(void *ptr, size_t size, size_t nmemb, xen_comms *comms)
-{
- size_t n = size * nmemb;
- return comms->func(ptr, n, comms->handle) ? n : 0;
-}
-
-
-static int
-call_func(const void *data, size_t len, void *user_handle,
- void *result_handle, xen_result_func result_func)
-{
- (void)user_handle;
-
- CURL *curl = curl_easy_init();
- if (!curl) {
- return -1;
- }
-
- xen_comms comms = {
- .func = result_func,
- .handle = result_handle
- };
-
- curl_easy_setopt(curl, CURLOPT_URL, url);
- curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1);
- curl_easy_setopt(curl, CURLOPT_MUTE, 1);
- curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &write_func);
- curl_easy_setopt(curl, CURLOPT_WRITEDATA, &comms);
- curl_easy_setopt(curl, CURLOPT_POST, 1);
- curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
- curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, len);
-
- CURLcode result = curl_easy_perform(curl);
-
- curl_easy_cleanup(curl);
-
- return result;
-}
-
-
-static void print_error(xen_session *session)
-{
- fprintf(stderr, "Error: %d", session->error_description_count);
- for (int i = 0; i < session->error_description_count; i++)
- {
- fprintf(stderr, "%s ", session->error_description[i]);
- }
- fprintf(stderr, "\n");
-}
-
-
-int main(int argc, char **argv)
-{
- if (argc != 4)
- {
- usage();
- }
-
- url = argv[1];
- char *username = argv[2];
- char *password = argv[3];
-
- xmlInitParser();
- xen_init();
- curl_global_init(CURL_GLOBAL_ALL);
-
-#define CLEANUP \
- do { \
- xen_session_logout(session); \
- curl_global_cleanup(); \
- xen_fini(); \
- xmlCleanupParser(); \
- } while(0) \
-
-
- xen_session *session =
- xen_session_login_with_password(call_func, NULL, username, password);
-
- xen_vm vm;
- if (!xen_vm_get_by_uuid(session, &vm,
- "00000000-0000-0000-0000-000000000000"))
- {
- print_error(session);
- CLEANUP;
- return 1;
- }
-
- char *vm_uuid;
- if (!xen_vm_get_uuid(session, &vm_uuid, vm))
- {
- print_error(session);
- xen_vm_free(vm);
- CLEANUP;
- return 1;
- }
-
- char *vm_uuid_bytes;
- if (!xen_uuid_string_to_bytes(vm_uuid, &vm_uuid_bytes))
- {
- fprintf(stderr, "xen_uuid_string_to_bytes failed.\n");
- xen_uuid_free(vm_uuid);
- xen_vm_free(vm);
- CLEANUP;
- return 1;
- }
-
- xen_vm_record *vm_record;
- if (!xen_vm_get_record(session, &vm_record, vm))
- {
- print_error(session);
- xen_uuid_bytes_free(vm_uuid_bytes);
- xen_uuid_free(vm_uuid);
- xen_vm_free(vm);
- CLEANUP;
- return 1;
- }
-
- xen_host host;
- if (!xen_session_get_this_host(session, &host))
- {
- print_error(session);
- xen_vm_record_free(vm_record);
- xen_uuid_bytes_free(vm_uuid_bytes);
- xen_uuid_free(vm_uuid);
- xen_vm_free(vm);
- CLEANUP;
- return 1;
- }
-
- xen_string_string_map *versions;
- if (!xen_host_get_software_version(session, &versions, host))
- {
- print_error(session);
- xen_host_free(host);
- xen_vm_record_free(vm_record);
- xen_uuid_bytes_free(vm_uuid_bytes);
- xen_uuid_free(vm_uuid);
- xen_vm_free(vm);
- CLEANUP;
- return 1;
- }
-
- printf("%s.\n", vm_uuid);
-
- fprintf(stderr, "In bytes, the VM UUID is ");
- for (int i = 0; i < 15; i++)
- {
- fprintf(stderr, "%x, ", (unsigned int)vm_uuid_bytes[i]);
- }
- fprintf(stderr, "%x.\n", (unsigned int)vm_uuid_bytes[15]);
-
- printf("%zd.\n", versions->size);
-
- for (size_t i = 0; i < versions->size; i++)
- {
- printf("%s -> %s.\n", versions->contents[i].key,
- versions->contents[i].val);
- }
-
- printf("%s.\n", vm_record->uuid);
-
- printf("Resident on %s.\n", (char *)vm_record->resident_on->u.handle);
-
- printf("%s.\n", xen_vm_power_state_to_string(vm_record->power_state));
-
- for (size_t i = 0; i < vm_record->vcpus_utilisation->size; i++)
- {
- printf("%"PRId64" -> %lf.\n",
- vm_record->vcpus_utilisation->contents[i].key,
- vm_record->vcpus_utilisation->contents[i].val);
- }
-
- xen_uuid_bytes_free(vm_uuid_bytes);
- xen_uuid_free(vm_uuid);
- xen_vm_free(vm);
-
- xen_vm_record_free(vm_record);
-
- xen_host_free(host);
- xen_string_string_map_free(versions);
-
-
- xen_vm new_vm = create_new_vm(session);
- if (!session->ok)
- {
- /* Error has been logged, just clean up. */
- CLEANUP;
- return 1;
- }
-
- print_vm_power_state(session, new_vm);
- if (!session->ok)
- {
- /* Error has been logged, just clean up. */
- xen_vm_free(new_vm);
- CLEANUP;
- return 1;
- }
-
- xen_vm_free(new_vm);
- CLEANUP;
-
- return 0;
-}
-
-
-/**
- * Creation of a new VM, using the Named Parameters idiom. Allocate the
- * xen_vm_record here, but the sets through the library. Either
- * allocation patterns can be used, as long as the allocation and free are
- * paired correctly.
- */
-static xen_vm create_new_vm(xen_session *session)
-{
- xen_string_string_map *vcpus_params = xen_string_string_map_alloc(1);
- xen_vm_record vm_record =
- {
- .name_label = "NewHVM",
- .name_description = "New HVM Description",
- .user_version = 1,
- .is_a_template = false,
- .memory_static_max = 256,
- .memory_dynamic_max = 256,
- .memory_dynamic_min = 128,
- .memory_static_min = 128,
- .vcpus_policy = "credit",
- .vcpus_params = vcpus_params,
- .vcpus_number = 2,
- .actions_after_shutdown = XEN_ON_NORMAL_EXIT_DESTROY,
- .actions_after_reboot = XEN_ON_NORMAL_EXIT_RESTART,
- .actions_after_crash = XEN_ON_CRASH_BEHAVIOUR_PRESERVE,
- .hvm_boot = "cda",
- };
-
-
- xen_vm vm;
- xen_vm_create(session, &vm, &vm_record);
-
- if (!session->ok)
- {
- fprintf(stderr, "VM creation failed.\n");
- print_error(session);
- return NULL;
- }
-
-
- /*
- * Create a new disk for the new VM.
- */
- xen_sr_set *srs;
- if (!xen_sr_get_by_name_label(session, &srs, "Local") ||
- srs->size < 1)
- {
- fprintf(stderr, "SR lookup failed.\n");
- print_error(session);
- xen_vm_free(vm);
- return NULL;
- }
-
- xen_sr_record_opt sr_record =
- {
- .u.handle = srs->contents[0]
- };
- xen_vdi_record vdi0_record =
- {
- .name_label = "MyRootFS",
- .name_description = "MyRootFS description",
- .sr = &sr_record,
- .virtual_size = (1 << 21), // 1GiB / 512 bytes/sector
- .sector_size = 512,
- .location = "file:/root/gentoo.amd64.hvm.img",
- .type = XEN_VDI_TYPE_SYSTEM,
- .sharable = false,
- .read_only = false
- };
-
- xen_vdi vdi0;
- if (!xen_vdi_create(session, &vdi0, &vdi0_record))
- {
- fprintf(stderr, "VDI creation failed.\n");
- print_error(session);
-
- xen_sr_set_free(srs);
- xen_vm_free(vm);
- return NULL;
- }
-
-
- xen_vm_record_opt vm_record_opt =
- {
- .u.handle = vm
- };
- xen_vdi_record_opt vdi0_record_opt =
- {
- .u.handle = vdi0
- };
- xen_vbd_record vbd0_record =
- {
- .vm = &vm_record_opt,
- .vdi = &vdi0_record_opt,
- .device = "xvda1",
- .mode = XEN_VBD_MODE_RW
- };
-
- xen_vbd vbd0;
- if (!xen_vbd_create(session, &vbd0, &vbd0_record))
- {
- fprintf(stderr, "VBD creation failed.\n");
- print_error(session);
-
- xen_vdi_free(vdi0);
- xen_sr_set_free(srs);
- xen_vm_free(vm);
- return NULL;
- }
-
- char *vm_uuid;
- char *vdi0_uuid;
- char *vbd0_uuid;
-
- xen_vm_get_uuid(session, &vm_uuid, vm);
- xen_vdi_get_uuid(session, &vdi0_uuid, vdi0);
- xen_vbd_get_uuid(session, &vbd0_uuid, vbd0);
-
- if (!session->ok)
- {
- fprintf(stderr, "get_uuid call failed.\n");
- print_error(session);
-
- xen_uuid_free(vm_uuid);
- xen_uuid_free(vdi0_uuid);
- xen_uuid_free(vbd0_uuid);
- xen_vbd_free(vbd0);
- xen_vdi_free(vdi0);
- xen_sr_set_free(srs);
- xen_vm_free(vm);
- return NULL;
- }
-
- fprintf(stderr,
- "Created a new VM, with UUID %s, VDI UUID %s, and VBD UUID %s.\n",
- vm_uuid, vdi0_uuid, vbd0_uuid);
-
- xen_uuid_free(vm_uuid);
- xen_uuid_free(vdi0_uuid);
- xen_uuid_free(vbd0_uuid);
- xen_vbd_free(vbd0);
- xen_vdi_free(vdi0);
- xen_sr_set_free(srs);
-
- return vm;
-}
-
-
-/**
- * Print the power state for the given VM.
- */
-static void print_vm_power_state(xen_session *session, xen_vm vm)
-{
- char *vm_uuid;
- enum xen_vm_power_state power_state;
-
- if (!xen_vm_get_uuid(session, &vm_uuid, vm))
- {
- print_error(session);
- return;
- }
-
- if (!xen_vm_get_power_state(session, &power_state, vm))
- {
- xen_uuid_free(vm_uuid);
- print_error(session);
- return;
- }
-
- printf("VM %s power state is %s.\n", vm_uuid,
- xen_vm_power_state_to_string(power_state));
-
- xen_uuid_free(vm_uuid);
-}