From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33528) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uzq3M-0007Tz-DM for qemu-devel@nongnu.org; Thu, 18 Jul 2013 11:23:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uzq3H-0003Dk-F4 for qemu-devel@nongnu.org; Thu, 18 Jul 2013 11:23:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35114) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uzq3H-0003DY-73 for qemu-devel@nongnu.org; Thu, 18 Jul 2013 11:23:31 -0400 Message-ID: <1374160984.14214.23.camel@localhost.localdomain> From: Marcel Apfelbaum Date: Thu, 18 Jul 2013 18:23:04 +0300 In-Reply-To: <87txjrzzgs.fsf@codemonkey.ws> References: <1374136063-24399-1-git-send-email-marcel.a@redhat.com> <1374136063-24399-2-git-send-email-marcel.a@redhat.com> <87ppugdjtb.fsf@codemonkey.ws> <1374158537.14214.12.camel@localhost.localdomain> <51E80060.5020709@redhat.com> <87txjrzzgs.fsf@codemonkey.ws> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH 1/2] qemu-help: Sort devices by logical functionality List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Paolo Bonzini , qemu-devel@nongnu.org, afaerber@suse.de On Thu, 2013-07-18 at 09:58 -0500, Anthony Liguori wrote: > Paolo Bonzini writes: > > > Il 18/07/2013 16:42, Marcel Apfelbaum ha scritto: > >> On Thu, 2013-07-18 at 09:28 -0500, Anthony Liguori wrote: > >>> Marcel Apfelbaum writes: > >>> > >>>> Categorize devices that appear as output to "-device ?" command > >>>> by logical functionality. Sort the devices by logical categories > >>>> before showing them to user. > >>>> > >>>> Signed-off-by: Marcel Apfelbaum > >>>> Reviewed-by: Kevin Wolf > >>>> --- > >>>> include/hw/qdev-core.h | 7 +++++++ > >>>> qdev-monitor.c | 23 ++++++++++++++++++++++- > >>>> 2 files changed, 29 insertions(+), 1 deletion(-) > >>>> > >>>> diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h > >>>> index 7fbffcb..4f7a9b8 100644 > >>>> --- a/include/hw/qdev-core.h > >>>> +++ b/include/hw/qdev-core.h > >>>> @@ -17,6 +17,12 @@ enum { > >>>> #define DEVICE_CLASS(klass) OBJECT_CLASS_CHECK(DeviceClass, (klass), TYPE_DEVICE) > >>>> #define DEVICE_GET_CLASS(obj) OBJECT_GET_CLASS(DeviceClass, (obj), TYPE_DEVICE) > >>>> > >>>> +#define DEVICE_CATEGORY_STORAGE "storage" > >>>> +#define DEVICE_CATEGORY_NETWORK "network" > >>>> +#define DEVICE_CATEGORY_INPUT "input" > >>>> +#define DEVICE_CATEGORY_DISPLAY "display" > >>>> +#define DEVICE_CATEGORY_SOUND "sound" > >>>> + > >>> > >>> Looks reasonable, but please make this a bitmap. There are cases, > >>> particularly if we start modeling multifunction PCI cards as a single > >>> device, where a single device can support multiple types of > >>> functionality. > >> > >> Antony, thanks for your review! > >> The whole point was to find a way to differentiate them by > >> functionality so they can be sorted... > >> Is it possible that a multifunction pci card will be used > >> for more then one category mentioned above? > > > > Yes, for example your laptop's GPU probably has an audio function too. > > Another example is a converged network adapter. It's a single device > with an ethernet port but it exposes two physical functions--one NIC and > one fibre channel device via FCoE. I agree that these are different device types, but they have the same category: "Network" > > The PIIX chipset and ICH9 are multifunction devices but we model them as > separate devices today. It's quite likely that in the very near future > we'll fix that. Interesting, thanks, in one hand I can call them both "Controller", on the other hand the bitmap can be used for creating subcategories: For example: "Storage, Controller" and "I/O, Controller" > > >> I agree the list may not be exhaustive, but I really hope > >> I'll find a way to sort them in such a way that a > >> device will not fall under more than one category > > > > If you sort the bit definitions in alphabetic order (audio=bit 30, > > display=bit 29, etc. for example), the resulting integer sort should > > also yield alphabetic order. But perhaps it's not a smart idea if we > > take into account future localization of the help text. > > I was thinking the same thing. Could also just cheat and make the sort > function a bit more complicated. The suggested solution works fair enough, thanks! Marcel > > Regards, > > Anthony Liguori > > > > > Paolo >