aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2024-01-08 17:08:57 +0100
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2024-01-19 12:28:59 +0100
commit3b14a555fdb627ac091559ef5931c887d06590d8 (patch)
tree8fd41563677387b2e6a2c380dd9aea55e53ca0b9
parentebd92d6de37eacd109cf320ca8ece7a0f5a243ae (diff)
downloadqemu-3b14a555fdb627ac091559ef5931c887d06590d8.zip
qemu-3b14a555fdb627ac091559ef5931c887d06590d8.tar.gz
qemu-3b14a555fdb627ac091559ef5931c887d06590d8.tar.bz2
hw/pflash: refactor pflash_data_write()
Move the offset calculation, do it once at the start of the function and let the 'p' variable point directly to the memory location which should be updated. This makes it simpler to update other buffers than pfl->storage in an upcoming patch. No functional change. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20240108160900.104835-2-kraxel@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
-rw-r--r--hw/block/pflash_cfi01.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c
index 3e2dc08..67f1c97 100644
--- a/hw/block/pflash_cfi01.c
+++ b/hw/block/pflash_cfi01.c
@@ -403,33 +403,35 @@ static void pflash_update(PFlashCFI01 *pfl, int offset,
static inline void pflash_data_write(PFlashCFI01 *pfl, hwaddr offset,
uint32_t value, int width, int be)
{
- uint8_t *p = pfl->storage;
+ uint8_t *p;
trace_pflash_data_write(pfl->name, offset, width, value, pfl->counter);
+ p = pfl->storage + offset;
+
switch (width) {
case 1:
- p[offset] = value;
+ p[0] = value;
break;
case 2:
if (be) {
- p[offset] = value >> 8;
- p[offset + 1] = value;
+ p[0] = value >> 8;
+ p[1] = value;
} else {
- p[offset] = value;
- p[offset + 1] = value >> 8;
+ p[0] = value;
+ p[1] = value >> 8;
}
break;
case 4:
if (be) {
- p[offset] = value >> 24;
- p[offset + 1] = value >> 16;
- p[offset + 2] = value >> 8;
- p[offset + 3] = value;
+ p[0] = value >> 24;
+ p[1] = value >> 16;
+ p[2] = value >> 8;
+ p[3] = value;
} else {
- p[offset] = value;
- p[offset + 1] = value >> 8;
- p[offset + 2] = value >> 16;
- p[offset + 3] = value >> 24;
+ p[0] = value;
+ p[1] = value >> 8;
+ p[2] = value >> 16;
+ p[3] = value >> 24;
}
break;
}