From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nv97O-0006bQ-Gp for qemu-devel@nongnu.org; Fri, 26 Mar 2010 08:58:30 -0400 Received: from [140.186.70.92] (port=56059 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nv97N-0006QV-5P for qemu-devel@nongnu.org; Fri, 26 Mar 2010 08:58:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Nv930-0006X0-8N for qemu-devel@nongnu.org; Fri, 26 Mar 2010 08:53:59 -0400 Received: from mail-pw0-f45.google.com ([209.85.160.45]:65264) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nv930-0006Wp-0M for qemu-devel@nongnu.org; Fri, 26 Mar 2010 08:53:58 -0400 Received: by pwi9 with SMTP id 9so5886144pwi.4 for ; Fri, 26 Mar 2010 05:53:56 -0700 (PDT) Message-ID: <4BACAE61.90203@codemonkey.ws> Date: Fri, 26 Mar 2010 07:53:53 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [libvirt] Supporting hypervisor specific APIs in libvirt References: <4BA7C40C.2040505@codemonkey.ws> <20100323145105.GV16253@redhat.com> <4BA8D8A9.7090308@codemonkey.ws> <201003231557.19474.paul@codesourcery.com> <4BA8E6FC.9080207@codemonkey.ws> <4BA901B5.3020704@redhat.com> <4BA9A066.3070904@redhat.com> <20100324103643.GB624@redhat.com> <4BA9EC88.6000906@redhat.com> <20100324134250.38822113@redhat.com> <4BAA6CD9.6060001@redhat.com> <20100324171219.4365318b@redhat.com> <4BAA76EA.2060601@codemonkey.ws> <20100324182501.000b69a7@redhat.com> <4BAA86C2.4020701@codemonkey.ws> <4BAB1E21.8080009@snarc.org> <4BAB5805.9080000@codemonkey.ws> <4BAB58F1.20401@redhat.com> <4BAB68A2.6020707@codemonkey.ws> <4BABA00B.6020701@codemonkey.ws> <4BAC83AF.9040104@redhat.com> In-Reply-To: <4BAC83AF.9040104@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel@nongnu.org, "libvir-list@redhat.com" , Markus Armbruster , Luiz Capitulino , Paul Brook , Vincent Hanquez On 03/26/2010 04:51 AM, Avi Kivity wrote: > On 03/26/2010 10:37 AM, Markus Armbruster wrote: >> >>> The importances of libqemu is: >>> >>> 1) Providing a common QMP transport implementation that is extensible >>> by third parties >>> 2) Providing a set of common transports that support automatic >>> discovery of command line launched guests >>> 3) Providing a generic QMP dispatch function >> Adding to this C wrappers for QMP commands threatens to make QMP command >> arguments part of the library ABI. Compatible QMP evolution (like >> adding an optional argument) turns into a libqmp soname bump. >> Counter-productive. How do you plan to avoid that? > > You could make the API use QObjects; then you're completely isolated > from high level protocol changes. Of course, this is less useful than > the full API. You want both. You want a very high level QObject based API and then you want automatically generated wrappers with C friendly data types. The later API loses a little bit but that's okay. Regards, Anthony Liguori