01 Jun, 2015

2 commits

  • The current memory accessors logic is:
    - little endian if little_endian
    - native endian (i.e. no byteswap) if !little_endian

    If 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_endian

    The 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

    Greg Kurz
     
  • Signed-off-by: Greg Kurz

    Signed-off-by: Michael S. Tsirkin
    Acked-by: Cornelia Huck
    Reviewed-by: David Gibson

    Greg Kurz
     

16 Dec, 2014

2 commits


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)

    Sjur Brændeland
     
  • 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

    Rusty Russell