01 Jun, 2015
2 commits
-
The current memory accessors logic is:
- little endian if little_endian
- native endian (i.e. no byteswap) if !little_endianIf we want to fully support cross-endian vhost, we also need to be
able to convert to big endian.Instead of changing the little_endian argument to some 3-value enum, this
patch changes the logic to:
- little endian if little_endian
- big endian if !little_endianThe native endian case is handled by all users with a trivial helper. This
patch doesn't change any functionality, nor it does add overhead.Signed-off-by: Greg Kurz
Signed-off-by: Michael S. Tsirkin
Reviewed-by: Cornelia Huck
Reviewed-by: David Gibson -
Signed-off-by: Greg Kurz
Signed-off-by: Michael S. Tsirkin
Acked-by: Cornelia Huck
Reviewed-by: David Gibson
16 Dec, 2014
2 commits
-
When switching everything over to virtio 1.0 memory access APIs,
I missed converting vringh.
Fortunately, it's straight-forward.Signed-off-by: Michael S. Tsirkin
-
Pass u64 everywhere.
Signed-off-by: Michael S. Tsirkin
20 Mar, 2013
2 commits
-
Add wrappers for the host vrings to support loose
coupling between the virtio device and driver.A new struct vringh_config_ops with the functions
find_vrhs() and del_vrhs() is added to the virtio_device
struct. This enables virtio drivers to manage virtio
host rings without detailed knowledge of how the
vrings are created and deleted.The function vringh_notify() is added so vringh clients
can notify the other side that buffers are added to the
used-ring.Cc: Ohad Ben-Cohen
Signed-off-by: Sjur Brændeland
Signed-off-by: Rusty Russell (constified vringh_config) -
Getting use of virtio rings correct is tricky, and a recent patch saw
an implementation of in-kernel rings (as separate from userspace).This abstracts the business of dealing with the virtio ring layout
from the access (userspace or direct); to do this, we use function
pointers, which gcc inlines correctly.Signed-off-by: Rusty Russell
Acked-by: Michael S. Tsirkin