summary refs log tree commit diff stats
path: root/hw/block-common.h
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2012-07-10 11:12:50 +0200
committerKevin Wolf <kwolf@redhat.com>2012-07-17 16:48:31 +0200
commit2b584959ed300ddff4acba0d7554becad5f274fd (patch)
treeab5b71c96edf1e96951fddb0497c02e0cddc9dee /hw/block-common.h
parent856dcba23ad2aeea4d98d5d3c97cd46aac0cd073 (diff)
downloadfocaccia-qemu-2b584959ed300ddff4acba0d7554becad5f274fd.tar.gz
focaccia-qemu-2b584959ed300ddff4acba0d7554becad5f274fd.zip
block: Geometry and translation hints are now useless, purge them
There are two producers of these hints: drive_init() on behalf of
-drive, and hd_geometry_guess().

The only consumer of the hint is hd_geometry_guess().

The callers of hd_geometry_guess() call it only when drive_init()
didn't set the hints.  Therefore, drive_init()'s hints are never used.

Thus, hd_geometry_guess() only ever sees hints it produced itself in a
prior call.  Only the first call computes something, subsequent calls
just repeat the first call's results.  However, hd_geometry_guess() is
never called more than once: the device models don't, and the block
device is destroyed on unplug.  Thus, dropping the repeat feature
doesn't break anything now.

If a block device wasn't destroyed on unplug and could be reused with
a new device, then repeating old results would be wrong.  Thus,
dropping the repeat feature prevents future breakage.

This renders the hints unused.  Purge them from the block layer.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/block-common.h')
-rw-r--r--hw/block-common.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/block-common.h b/hw/block-common.h
index 2f651867d2..ec7810d7d4 100644
--- a/hw/block-common.h
+++ b/hw/block-common.h
@@ -15,6 +15,12 @@
 
 /* Hard disk geometry */
 
+#define BIOS_ATA_TRANSLATION_AUTO   0
+#define BIOS_ATA_TRANSLATION_NONE   1
+#define BIOS_ATA_TRANSLATION_LBA    2
+#define BIOS_ATA_TRANSLATION_LARGE  3
+#define BIOS_ATA_TRANSLATION_RECHS  4
+
 void hd_geometry_guess(BlockDriverState *bs,
                        uint32_t *pcyls, uint32_t *pheads, uint32_t *psecs,
                        int *ptrans);