[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 0/9] libxl: JSON infrastructure improvement
This is the first step to tackle the problem that domain runtime configurations are not preserved across save / restore. There's not existing user in libxl that makes use of the new code yet. Libxl introduced JSON infrastructure to communicate with upstream QEMU. The ability of exisiting JSON infrastructure is to convert libxl_FOO struct to libxl JSON object and parse JSON object (string) returned by QEMU. This series makes libxl able to convert a JSON string to libxl_FOO struct. The conversion is done in two macro steps: 1. convert JSON string to libxl JSON object (libxl__json_object) 2. convert libxl JSON object to libxl_FOO struct The first stage is done with existing infrastructure. This series focuses on the second stage. To break things down: * Patch 1 is only mechanical change * Patch 2, 3, 4 and 6 are changes to generic libxl JSON infrastructure * Patch 5 introduces parser functions for builtin types * Patch 7 and 8 are changes to code generator * Patch 9 contains changes to test code generator Now we have the ability to do the following transformation: libxl_FOO struct -> libxl_FOO JSON object -> libxl JSON internal object -> libxl_FOO struct This full cycle can be used to preserved runtime configurations of a domain. Wei. Wei Liu (9): libxl IDL: rename json_fn to json_gen_fn libxl_json: introduce libx__object_from_json libxl_internal: make JSON_* types or-able libxl_internal: introduce libxl__json_object_is_{null,number,double} libxl_json: introduce parser functions for builtin types libxl_json: allow basic JSON type objects generation libxl/gentypes.py: generate JSON object for keyed-union discriminator libxl IDL: generate code to parse libxl__json_object to libxl_FOO struct libxl/gentest.py: test JSON parser tools/libxl/gentest.py | 27 +++- tools/libxl/gentypes.py | 119 ++++++++++++++- tools/libxl/idl.py | 23 ++- tools/libxl/libxl_cpuid.c | 92 ++++++++++-- tools/libxl/libxl_internal.h | 39 +++-- tools/libxl/libxl_json.c | 267 ++++++++++++++++++++++++++++++++-- tools/libxl/libxl_json.h | 27 +++- tools/libxl/libxl_nocpuid.c | 7 + tools/libxl/libxl_types.idl | 31 ++-- tools/libxl/libxl_types_internal.idl | 4 +- 10 files changed, 571 insertions(+), 65 deletions(-) -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |