[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH V3 00/13] JSON infrastructure and new "xl-json" format
This series contains my original patches to add in JSON parser and a new patch to add "xl-json" format. The last patch makes use of JSON parser. The first few patches are bug fix, documentation improvement and prerequisit code movement. For the JSON parser (taken from my earlier email): 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. 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. Last patch makes use of the new parser and introduces "xl-json" format. Please refer to commit log for details. Currently it's restricted to internal use only, that is, user is not allowed to supply a config file in JSON format. Wei. Changes in V3: * remove libxl__integer_parse_json and add functions for specific integer types * relax some checkings on invalid inputs * libxl__json_parse_callback now takes gc instead of ctx * rewrite "allow basic JSON type objects generation" * ... and address some other misc things mentioned by IanC Changes in V2: * address IanC's comments on JSON parser * add "xl-json" format patch Wei Liu (13): libxl: fix memory leak in libxl_cpuid_dispose libxl.h: document the paradigm of using libxl types libxl.h: move / add some libxl defbool #define here libxl IDL: rename json_fn to json_gen_fn libxl_json: introduce libx__object_from_json libxl_internal: make JSON_* types a bit-field 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: include discriminator in JSON output libxl IDL: generate code to parse libxl__json_object to libxl_FOO struct libxl/gentest.py: test JSON parser xl: introduce "xl-json" format docs/man/xl.cfg.pod.5 | 3 +- tools/libxl/gentest.py | 27 ++- tools/libxl/gentypes.py | 131 +++++++++++- tools/libxl/idl.py | 25 ++- tools/libxl/idl.txt | 9 +- tools/libxl/libxl.c | 10 +- tools/libxl/libxl.h | 12 ++ tools/libxl/libxl_cpuid.c | 93 +++++++-- tools/libxl/libxl_internal.h | 40 +++- tools/libxl/libxl_json.c | 364 +++++++++++++++++++++++++++++----- tools/libxl/libxl_json.h | 36 +++- tools/libxl/libxl_nocpuid.c | 7 + tools/libxl/libxl_types.idl | 31 +-- tools/libxl/libxl_types_internal.idl | 4 +- tools/libxl/xl_cmdimpl.c | 112 ++++++++--- 15 files changed, 763 insertions(+), 141 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 |