[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 |