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
@ -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…
Reference in New Issue
Block a user