From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:42717) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UaczP-0001Tl-5w for qemu-devel@nongnu.org; Thu, 09 May 2013 22:23:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UaczO-0007W8-36 for qemu-devel@nongnu.org; Thu, 09 May 2013 22:23:19 -0400 Received: from mail-ie0-x230.google.com ([2607:f8b0:4001:c03::230]:45986) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UaczN-0007V6-Uc for qemu-devel@nongnu.org; Thu, 09 May 2013 22:23:18 -0400 Received: by mail-ie0-f176.google.com with SMTP id at1so7006395iec.35 for ; Thu, 09 May 2013 19:23:17 -0700 (PDT) Sender: fluxion From: Michael Roth Date: Thu, 9 May 2013 21:20:52 -0500 Message-Id: <1368152462-13219-1-git-send-email-mdroth@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH v2 00/10] qapi: add support for lists of native types List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: akong@redhat.com, lersek@redhat.com, lcapitulino@redhat.com These patches apply on top of qemu.git master, and can also be obtained from: git://github.com/mdroth/qemu.git qapi-native-lists Sending this now since a number of series have popped up in the past that wanted this, and Amos has some pending patches (query-mac-tables) that rely on this as well. These patches add support for specifying lists of native qapi types (int/bool/str/number) like so: { 'type': 'foo', 'data': { 'bar': ['int'] }} for a 'bar' field that is a list of type 'int', { 'type': 'foo2', 'data': { 'bar2': ['str'] }} for a 'bar2' field that is a list of type 'str', and so on. This uses linked list types for the native C representations, just as we do for complex schema-defined types. In the future we may add schema annotations of some sort to specify a more natural/efficient array type for the C representations, but this should serve the majority of uses-cases for now. v1->v2: * fixed do-nothing float tests in pre-existing code and updated new unit tests accordingly (Laszlo) * added a fix for a bug in json parser that was exposed by above change * fixed misuse of string format parameters for float testing (Laszlo) * fixed extra characters in comment (Laszlo) * removed unused variant from UserDefNativeListUnion QAPI type Makefile | 6 +- qapi-schema-test.json | 7 + qobject/json-parser.c | 26 +++- scripts/qapi-types.py | 43 +++++- scripts/qapi-visit.py | 36 ++++- scripts/qapi.py | 21 +++ tests/test-qmp-input-visitor.c | 186 ++++++++++++++++++++++++ tests/test-qmp-output-visitor.c | 176 ++++++++++++++++++++++ tests/test-visitor-serialization.c | 282 +++++++++++++++++++++++++++++++----- 9 files changed, 731 insertions(+), 52 deletions(-)