On 08/04/2011 08:39 AM, Markus Armbruster wrote:
Hannes Reinecke<h...@suse.de>  writes:

On 08/03/2011 03:07 PM, Markus Armbruster wrote:
We already track it in BlockDriverState.  Just like tray open/close
state, we should track it in the device models instead, because it's
device state.

Signed-off-by: Markus Armbruster<arm...@redhat.com>
---
   hw/scsi-disk.c |    4 +++-
   1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index db72b86..8ca69f2 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -73,6 +73,7 @@ struct SCSIDiskState
       char *serial;
       SCSISense sense;
       bool tray_open;
+    bool tray_locked;
   };

Hmm. Shouldn't we use a more generic 'flags' here and have bits for
the individual tray states?
Feels like a waste to have individual values here.

On my system, struct SCSIDiskState is 248 bytes before my series (5
bytes of padding at the end), and 248 bytes after (3 bytes padding).  We
use one per disk.

I dare say switching to flags won't make a noticable difference in
memory use ;)

The bool members are easy to read and hard to screw up.

Flags can be nicer when you manipulate several of them together.

Well, but this just proves my point.
Each 'bool' variable takes up one byte, of which only one bit is used. Which qualifies as a waste of space. But if that's okay with everyone and the general consensus on how to code flags in qemu, I'll shut up.

Cheers,

Hannes
--
Dr. Hannes Reinecke                   zSeries & Storage
h...@suse.de                          +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)

Reply via email to