|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v7 4/8] arm: compile libxl
libxl_cpuid_destroy has been renamed to libxl_cpuid_dispose; also cpuid
functions are only available on x86, so ifdef the new cpuid related
function in libxl_json.c.
Changes in v3:
- move libxl_cpuid_policy_list_gen_json to libxl_(no)cpuid.c.
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
tools/libxl/Makefile | 1 +
tools/libxl/libxl_cpuid.c | 60 +++++++++++++++++++++++++++++++++++++++++++
tools/libxl/libxl_json.c | 60 -------------------------------------------
tools/libxl/libxl_nocpuid.c | 8 +++++-
4 files changed, 68 insertions(+), 61 deletions(-)
diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
index 5d9227e..f9cc9fd 100644
--- a/tools/libxl/Makefile
+++ b/tools/libxl/Makefile
@@ -36,6 +36,7 @@ LIBXL_OBJS-y += libxl_noblktap2.o
endif
LIBXL_OBJS-$(CONFIG_X86) += libxl_cpuid.o
LIBXL_OBJS-$(CONFIG_IA64) += libxl_nocpuid.o
+LIBXL_OBJS-$(CONFIG_ARM) += libxl_nocpuid.o
ifeq ($(CONFIG_NetBSD),y)
LIBXL_OBJS-y += libxl_netbsd.o
diff --git a/tools/libxl/libxl_cpuid.c b/tools/libxl/libxl_cpuid.c
index dcdb9d02..ff7531f 100644
--- a/tools/libxl/libxl_cpuid.c
+++ b/tools/libxl/libxl_cpuid.c
@@ -333,6 +333,66 @@ void libxl_cpuid_set(libxl_ctx *ctx, uint32_t domid,
(const char**)(cpuid[i].policy), cpuid_res);
}
+yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
+ libxl_cpuid_policy_list *pcpuid)
+{
+ libxl_cpuid_policy_list cpuid = *pcpuid;
+ yajl_gen_status s;
+ const char *input_names[2] = { "leaf", "subleaf" };
+ const char *policy_names[4] = { "eax", "ebx", "ecx", "edx" };
+ int i, j;
+
+ /*
+ * Aiming for:
+ * [
+ * { 'leaf': 'val-eax',
+ * 'subleaf': 'val-ecx',
+ * 'eax': 'filter',
+ * 'ebx': 'filter',
+ * 'ecx': 'filter',
+ * 'edx': 'filter' },
+ * { 'leaf': 'val-eax', ..., 'eax': 'filter', ... },
+ * ... etc ...
+ * ]
+ */
+
+ s = yajl_gen_array_open(hand);
+ if (s != yajl_gen_status_ok) goto out;
+
+ if (cpuid == NULL) goto empty;
+
+ for (i = 0; cpuid[i].input[0] != XEN_CPUID_INPUT_UNUSED; i++) {
+ s = yajl_gen_map_open(hand);
+ if (s != yajl_gen_status_ok) goto out;
+
+ for (j = 0; j < 2; j++) {
+ if (cpuid[i].input[j] != XEN_CPUID_INPUT_UNUSED) {
+ s = libxl__yajl_gen_asciiz(hand, input_names[j]);
+ if (s != yajl_gen_status_ok) goto out;
+ s = yajl_gen_integer(hand, cpuid[i].input[j]);
+ if (s != yajl_gen_status_ok) goto out;
+ }
+ }
+
+ for (j = 0; j < 4; j++) {
+ if (cpuid[i].policy[j] != NULL) {
+ s = libxl__yajl_gen_asciiz(hand, policy_names[j]);
+ if (s != yajl_gen_status_ok) goto out;
+ s = yajl_gen_string(hand,
+ (const unsigned char *)cpuid[i].policy[j], 32);
+ if (s != yajl_gen_status_ok) goto out;
+ }
+ }
+ s = yajl_gen_map_close(hand);
+ if (s != yajl_gen_status_ok) goto out;
+ }
+
+empty:
+ s = yajl_gen_array_close(hand);
+out:
+ return s;
+}
+
/*
* Local variables:
* mode: C
diff --git a/tools/libxl/libxl_json.c b/tools/libxl/libxl_json.c
index 7c068d3..f430d4a 100644
--- a/tools/libxl/libxl_json.c
+++ b/tools/libxl/libxl_json.c
@@ -146,66 +146,6 @@ out:
return s;
}
-yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
- libxl_cpuid_policy_list *pcpuid)
-{
- libxl_cpuid_policy_list cpuid = *pcpuid;
- yajl_gen_status s;
- const char *input_names[2] = { "leaf", "subleaf" };
- const char *policy_names[4] = { "eax", "ebx", "ecx", "edx" };
- int i, j;
-
- /*
- * Aiming for:
- * [
- * { 'leaf': 'val-eax',
- * 'subleaf': 'val-ecx',
- * 'eax': 'filter',
- * 'ebx': 'filter',
- * 'ecx': 'filter',
- * 'edx': 'filter' },
- * { 'leaf': 'val-eax', ..., 'eax': 'filter', ... },
- * ... etc ...
- * ]
- */
-
- s = yajl_gen_array_open(hand);
- if (s != yajl_gen_status_ok) goto out;
-
- if (cpuid == NULL) goto empty;
-
- for (i = 0; cpuid[i].input[0] != XEN_CPUID_INPUT_UNUSED; i++) {
- s = yajl_gen_map_open(hand);
- if (s != yajl_gen_status_ok) goto out;
-
- for (j = 0; j < 2; j++) {
- if (cpuid[i].input[j] != XEN_CPUID_INPUT_UNUSED) {
- s = libxl__yajl_gen_asciiz(hand, input_names[j]);
- if (s != yajl_gen_status_ok) goto out;
- s = yajl_gen_integer(hand, cpuid[i].input[j]);
- if (s != yajl_gen_status_ok) goto out;
- }
- }
-
- for (j = 0; j < 4; j++) {
- if (cpuid[i].policy[j] != NULL) {
- s = libxl__yajl_gen_asciiz(hand, policy_names[j]);
- if (s != yajl_gen_status_ok) goto out;
- s = yajl_gen_string(hand,
- (const unsigned char *)cpuid[i].policy[j], 32);
- if (s != yajl_gen_status_ok) goto out;
- }
- }
- s = yajl_gen_map_close(hand);
- if (s != yajl_gen_status_ok) goto out;
- }
-
-empty:
- s = yajl_gen_array_close(hand);
-out:
- return s;
-}
-
yajl_gen_status libxl_string_list_gen_json(yajl_gen hand, libxl_string_list
*pl)
{
libxl_string_list l = *pl;
diff --git a/tools/libxl/libxl_nocpuid.c b/tools/libxl/libxl_nocpuid.c
index 9e52f8d..5f7cb6a 100644
--- a/tools/libxl/libxl_nocpuid.c
+++ b/tools/libxl/libxl_nocpuid.c
@@ -14,7 +14,7 @@
#include "libxl_internal.h"
-void libxl_cpuid_destroy(libxl_cpuid_policy_list *p_cpuid_list)
+void libxl_cpuid_dispose(libxl_cpuid_policy_list *p_cpuid_list)
{
}
@@ -38,6 +38,12 @@ void libxl_cpuid_set(libxl_ctx *ctx, uint32_t domid,
{
}
+yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
+ libxl_cpuid_policy_list *pcpuid)
+{
+ return 0;
+}
+
/*
* Local variables:
* mode: C
--
1.7.2.5
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |