[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 25/27] tests/virtio-blk: add virtio_blk_fix_dwz_hdr()
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-block] [PULL 25/27] tests/virtio-blk: add virtio_blk_fix_dwz_hdr() function |
Date: |
Fri, 22 Feb 2019 14:07:54 +0000 |
From: Stefano Garzarella <address@hidden>
This function is useful to fix the endianness of struct
virtio_blk_discard_write_zeroes headers.
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Stefano Garzarella <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
tests/virtio-blk-test.c | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/tests/virtio-blk-test.c b/tests/virtio-blk-test.c
index 0739498da7..85b6b99adc 100644
--- a/tests/virtio-blk-test.c
+++ b/tests/virtio-blk-test.c
@@ -46,6 +46,12 @@ typedef struct QVirtioBlkReq {
uint8_t status;
} QVirtioBlkReq;
+#ifdef HOST_WORDS_BIGENDIAN
+const bool host_is_big_endian = true;
+#else
+const bool host_is_big_endian; /* false */
+#endif
+
static char *drive_create(void)
{
int fd, ret;
@@ -125,12 +131,6 @@ static QVirtioPCIDevice *virtio_blk_pci_init(QPCIBus *bus,
int slot)
static inline void virtio_blk_fix_request(QVirtioDevice *d, QVirtioBlkReq *req)
{
-#ifdef HOST_WORDS_BIGENDIAN
- const bool host_is_big_endian = true;
-#else
- const bool host_is_big_endian = false;
-#endif
-
if (qvirtio_is_big_endian(d) != host_is_big_endian) {
req->type = bswap32(req->type);
req->ioprio = bswap32(req->ioprio);
@@ -138,6 +138,17 @@ static inline void virtio_blk_fix_request(QVirtioDevice
*d, QVirtioBlkReq *req)
}
}
+
+static inline void virtio_blk_fix_dwz_hdr(QVirtioDevice *d,
+ struct virtio_blk_discard_write_zeroes *dwz_hdr)
+{
+ if (qvirtio_is_big_endian(d) != host_is_big_endian) {
+ dwz_hdr->sector = bswap64(dwz_hdr->sector);
+ dwz_hdr->num_sectors = bswap32(dwz_hdr->num_sectors);
+ dwz_hdr->flags = bswap32(dwz_hdr->flags);
+ }
+}
+
static uint64_t virtio_blk_request(QGuestAllocator *alloc, QVirtioDevice *d,
QVirtioBlkReq *req, uint64_t data_size)
{
--
2.20.1
- [Qemu-block] [PULL 09/27] block/qcow2: use qemu_iovec_init_buf, (continued)
- [Qemu-block] [PULL 09/27] block/qcow2: use qemu_iovec_init_buf, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 13/27] migration/block: use qemu_iovec_init_buf, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 10/27] block/qed: use qemu_iovec_init_buf, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 14/27] tests/test-bdrv-drain: use QEMU_IOVEC_INIT_BUF, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 15/27] hw/ide: drop iov field from IDEState, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 12/27] qemu-img: use qemu_iovec_init_buf, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 22/27] virtio-blk: set config size depending on the features enabled, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 16/27] hw/ide: drop iov field from IDEBufferedRequest, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 18/27] virtio-blk: add acct_failed param to virtio_blk_handle_rw_error(), Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 17/27] hw/ide: drop iov field from IDEDMA, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 25/27] tests/virtio-blk: add virtio_blk_fix_dwz_hdr() function,
Stefan Hajnoczi <=
- [Qemu-block] [PULL 26/27] tests/virtio-blk: add test for WRITE_ZEROES command, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 20/27] virtio-blk: add "discard" and "write-zeroes" properties, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 21/27] virtio-net: make VirtIOFeature usable for other virtio devices, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 19/27] virtio-blk: add host_features field in VirtIOBlock, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 23/27] virtio-blk: add DISCARD and WRITE_ZEROES features, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 27/27] tests/virtio-blk: add test for DISCARD command, Stefan Hajnoczi, 2019/02/22
- [Qemu-block] [PULL 24/27] tests/virtio-blk: change assert on data_size in virtio_blk_request(), Stefan Hajnoczi, 2019/02/22
- Re: [Qemu-block] [PULL 00/27] Block patches, Peter Maydell, 2019/02/26