qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v8 2/8] block: Support providing LCHS from user


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v8 2/8] block: Support providing LCHS from user
Date: Tue, 22 Oct 2019 12:20:53 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1

On 10/16/19 6:41 PM, Sam Eiderman wrote:
From: Sam Eiderman <address@hidden>

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 <address@hidden>
Reviewed-by: Arbel Moshe <address@hidden>
Signed-off-by: Sam Eiderman <address@hidden>
Signed-off-by: Sam Eiderman <address@hidden>

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>

---
  include/hw/block/block.h | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/include/hw/block/block.h b/include/hw/block/block.h
index fd55a30bca..d7246f3862 100644
--- a/include/hw/block/block.h
+++ b/include/hw/block/block.h
@@ -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,       \




reply via email to

[Prev in Thread] Current Thread [Next in Thread]