All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC 0/9] libxl: JSON infrastructure improvement
@ 2014-04-10 15:40 Wei Liu
  2014-04-10 15:40 ` [PATCH RFC 1/9] libxl IDL: rename json_fn to json_gen_fn Wei Liu
                   ` (9 more replies)
  0 siblings, 10 replies; 20+ messages in thread
From: Wei Liu @ 2014-04-10 15:40 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

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

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2014-04-15  9:35 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-10 15:40 [PATCH RFC 0/9] libxl: JSON infrastructure improvement Wei Liu
2014-04-10 15:40 ` [PATCH RFC 1/9] libxl IDL: rename json_fn to json_gen_fn Wei Liu
2014-04-14 16:55   ` Ian Campbell
2014-04-10 15:40 ` [PATCH RFC 2/9] libxl_json: function to convert JSON object to libxl object Wei Liu
2014-04-10 15:40 ` [PATCH RFC 2/9] libxl_json: introduce libx__object_from_json Wei Liu
2014-04-14 16:59   ` Ian Campbell
2014-04-15  9:19     ` Wei Liu
2014-04-15  9:24       ` Ian Campbell
2014-04-10 15:40 ` [PATCH RFC 3/9] libxl_internal: make JSON_* types or-able Wei Liu
2014-04-14 17:03   ` Ian Campbell
2014-04-15  9:22     ` Wei Liu
2014-04-10 15:40 ` [PATCH RFC 4/9] libxl_internal: introduce libxl__json_object_is_{null, number, double} Wei Liu
2014-04-14 17:04   ` Ian Campbell
2014-04-15  9:29     ` Wei Liu
2014-04-15  9:35       ` Ian Campbell
2014-04-10 15:40 ` [PATCH RFC 5/9] libxl_json: introduce parser functions for builtin types Wei Liu
2014-04-10 15:40 ` [PATCH RFC 6/9] libxl_json: allow basic JSON type objects generation Wei Liu
2014-04-10 15:40 ` [PATCH RFC 7/9] libxl/gentypes.py: generate JSON object for keyed-union discriminator Wei Liu
2014-04-10 15:40 ` [PATCH RFC 8/9] libxl IDL: generate code to parse libxl__json_object to libxl_FOO struct Wei Liu
2014-04-10 15:40 ` [PATCH RFC 9/9] libxl/gentest.py: test JSON parser Wei Liu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.