From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nv6D2-0005X6-3f for qemu-devel@nongnu.org; Fri, 26 Mar 2010 05:52:08 -0400 Received: from [140.186.70.92] (port=43010 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nv6D0-0005WO-Ej for qemu-devel@nongnu.org; Fri, 26 Mar 2010 05:52:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Nv6Cy-0007xF-G5 for qemu-devel@nongnu.org; Fri, 26 Mar 2010 05:52:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47196) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nv6Cy-0007x8-52 for qemu-devel@nongnu.org; Fri, 26 Mar 2010 05:52:04 -0400 Message-ID: <4BAC83AF.9040104@redhat.com> Date: Fri, 26 Mar 2010 12:51:43 +0300 From: Avi Kivity 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> In-Reply-To: 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: Markus Armbruster Cc: "libvir-list@redhat.com" , qemu-devel@nongnu.org, Luiz Capitulino , Paul Brook , Vincent Hanquez 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. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic.