On 5/20/21 6:27 PM, Richard Henderson wrote: > On 5/18/21 1:36 PM, Philippe Mathieu-Daudé wrote: >> -static inline int virtio_lduw_p(VirtIODevice *vdev, const void *ptr) >> +static inline uint16_t virtio_lduw_p(VirtIODevice *vdev, const void >> *ptr) > > While this one looks obviously correct, > >> -static inline int virtio_ldl_p(VirtIODevice *vdev, const void *ptr) >> +static inline uint32_t virtio_ldl_p(VirtIODevice *vdev, const void *ptr) >> { >> if (virtio_access_is_big_endian(vdev)) { >> return ldl_be_p(ptr); > > this one isn't so obvious. > > Are all of the users unsigned?
All except this one for which I'm not sure: hw/block/virtio-blk.c:137: int p = virtio_ldl_p(VIRTIO_DEVICE(s), &req->out.type); hw/block/virtio-blk.c-138- bool is_read = !(p & VIRTIO_BLK_T_OUT); -- hw/block/virtio-blk.c:183: bool is_write_zeroes = (virtio_ldl_p(VIRTIO_DEVICE(s), &req->out.type) & hw/block/virtio-blk.c-184- ~VIRTIO_BLK_T_BARRIER) == VIRTIO_BLK_T_WRITE_ZEROES; hw/block/virtio-blk.c-185- /* Barrier before this op. */ #define VIRTIO_BLK_T_BARRIER 0x80000000 > If so, should we rename it ldul? OK.