mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
block: Support providing LCHS from user
Add logical geometry variables to BlockConf.
A user can now supply "lcyls", "lheads" & "lsecs" for any HD device
that supports CHS ("cyls", "heads", "secs").
These devices include:
* ide-hd
* scsi-hd
* virtio-blk-pci
In future commits we will use the provided LCHS and pass it to the BIOS
through fw_cfg to be supplied using INT13 routines.
Reviewed-by: Karl Heubaum <karl.heubaum@oracle.com>
Reviewed-by: Arbel Moshe <arbel.moshe@oracle.com>
Signed-off-by: Sam Eiderman <shmuel.eiderman@oracle.com>
Signed-off-by: Sam Eiderman <sameid@google.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
8e6a174937
commit
64c5bb83df
1 changed files with 5 additions and 1 deletions
|
|
@ -26,6 +26,7 @@ typedef struct BlockConf {
|
|||
uint32_t discard_granularity;
|
||||
/* geometry, not all devices use this */
|
||||
uint32_t cyls, heads, secs;
|
||||
uint32_t lcyls, lheads, lsecs;
|
||||
OnOffAuto wce;
|
||||
bool share_rw;
|
||||
BlockdevOnError rerror;
|
||||
|
|
@ -65,7 +66,10 @@ static inline unsigned int get_physical_block_exp(BlockConf *conf)
|
|||
#define DEFINE_BLOCK_CHS_PROPERTIES(_state, _conf) \
|
||||
DEFINE_PROP_UINT32("cyls", _state, _conf.cyls, 0), \
|
||||
DEFINE_PROP_UINT32("heads", _state, _conf.heads, 0), \
|
||||
DEFINE_PROP_UINT32("secs", _state, _conf.secs, 0)
|
||||
DEFINE_PROP_UINT32("secs", _state, _conf.secs, 0), \
|
||||
DEFINE_PROP_UINT32("lcyls", _state, _conf.lcyls, 0), \
|
||||
DEFINE_PROP_UINT32("lheads", _state, _conf.lheads, 0), \
|
||||
DEFINE_PROP_UINT32("lsecs", _state, _conf.lsecs, 0)
|
||||
|
||||
#define DEFINE_BLOCK_ERROR_PROPERTIES(_state, _conf) \
|
||||
DEFINE_PROP_BLOCKDEV_ON_ERROR("rerror", _state, _conf.rerror, \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue