From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NK9FQ-00025E-Pk for qemu-devel@nongnu.org; Mon, 14 Dec 2009 06:37:52 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NK9FL-000232-H6 for qemu-devel@nongnu.org; Mon, 14 Dec 2009 06:37:51 -0500 Received: from [199.232.76.173] (port=34360 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NK9FL-00022x-AM for qemu-devel@nongnu.org; Mon, 14 Dec 2009 06:37:47 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51470) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NK9FK-0005OA-Ns for qemu-devel@nongnu.org; Mon, 14 Dec 2009 06:37:46 -0500 Message-ID: <4B262379.1060009@redhat.com> Date: Mon, 14 Dec 2009 12:37:29 +0100 From: Gerd Hoffmann MIME-Version: 1.0 References: <20091213204341.GA25823@redhat.com> <4B260846.9020503@redhat.com> <20091214094255.GA32140@redhat.com> <4B261269.7080801@redhat.com> <20091214111046.GB32355@redhat.com> In-Reply-To: <20091214111046.GB32355@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH RFC] virtio: add features qdev property List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: qemu-devel@nongnu.org On 12/14/09 12:10, Michael S. Tsirkin wrote: > On Mon, Dec 14, 2009 at 11:24:41AM +0100, Gerd Hoffmann wrote: > for block: > if (strcmp(s->serial_str, "0")) > features |= 1<< VIRTIO_BLK_F_IDENTIFY; > > if (bdrv_is_read_only(s->bs)) > features |= 1<< VIRTIO_BLK_F_RO; Sure you want these be configurable? > Also, I'd like these things to be saved in bits and not add a ton > of fields in device. Ideas how to do this? I guess you only want disable features? You could have a bitmap property then, which accepts names for the bits. It would need a table like this ... char *bitnames[] = { [ VIRTIO_BLK_F_IDENTIFY ] = "blk-identify", [ VIRTIO_BLK_F_RO [ = "blk-ro", [ ... ] }; Then the property parser would accepts strings such as 'bit1|bit2' and you can have -device 'virtio-blk-pci,disable=blk-identify|ring-indirect' The driver will just do 'vdev->host_features &= ~disable'. cheers, Gerd