mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
vhost-user: fix legacy cross-endian configurations
Currently, vhost-user does not implement any means for notifying the backend about guest endianess. This commit introduces a new message called VHOST_USER_SET_VRING_ENDIAN which is analogous to the ioctl() called VHOST_SET_VRING_ENDIAN used for kernel vhost backends. Such message is necessary for backends supporting legacy (pre-1.0) virtio devices running in big-endian guests. Signed-off-by: Felipe Franciosi <felipe@nutanix.com> Signed-off-by: Mike Cui <cui@nutanix.com>
This commit is contained in:
parent
08b9e0ba62
commit
5df04f1762
2 changed files with 37 additions and 2 deletions
|
|
@ -326,6 +326,7 @@ Protocol features
|
|||
#define VHOST_USER_PROTOCOL_F_REPLY_ACK 3
|
||||
#define VHOST_USER_PROTOCOL_F_MTU 4
|
||||
#define VHOST_USER_PROTOCOL_F_SLAVE_REQ 5
|
||||
#define VHOST_USER_PROTOCOL_F_CROSS_ENDIAN 6
|
||||
|
||||
Master message types
|
||||
--------------------
|
||||
|
|
@ -580,6 +581,21 @@ Master message types
|
|||
This request should be send only when VIRTIO_F_IOMMU_PLATFORM feature
|
||||
has been successfully negotiated.
|
||||
|
||||
* VHOST_USER_SET_VRING_ENDIAN
|
||||
|
||||
Id: 23
|
||||
Equivalent ioctl: VHOST_SET_VRING_ENDIAN
|
||||
Master payload: vring state description
|
||||
|
||||
Set the endianess of a VQ for legacy devices. Little-endian is indicated
|
||||
with state.num set to 0 and big-endian is indicated with state.num set
|
||||
to 1. Other values are invalid.
|
||||
This request should be sent only when VHOST_USER_PROTOCOL_F_CROSS_ENDIAN
|
||||
has been negotiated.
|
||||
Backends that negotiated this feature should handle both endianesses
|
||||
and expect this message once (per VQ) during device configuration
|
||||
(ie. before the master starts the VQ).
|
||||
|
||||
Slave message types
|
||||
-------------------
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue