gem5  v20.1.0.0
base.hh File Reference
#include <functional>
#include "base/bitunion.hh"
#include "dev/virtio/virtio_ring.h"
#include "mem/port_proxy.hh"
#include "sim/sim_object.hh"

Go to the source code of this file.


class  VirtDescriptor
 VirtIO descriptor (chain) wrapper. More...
class  VirtQueue
 Base wrapper around a virtqueue. More...
class  VirtQueue::VirtRing< T >
 VirtIO ring buffer wrapper. More...
struct  VirtQueue::VirtRing< T >::Header
class  VirtIODeviceBase
 Base class for all VirtIO-based devices. More...
class  VirtIODummyDevice


VirtIO endian conversion helpers

VirtIO prior to version 1.0 (legacy versions) normally send values to the host in the guest systems native byte order. This is going to change in version 1.0 which mandates little endian. We currently only support the legacy version of VirtIO (the new and shiny standard is still in a draft state and not implemented by the kernel). Once we support the new standard, we should negotiate the VirtIO version with the guest and automatically use the right type of byte swapping.

vring_used_elem swap_byte (vring_used_elem v)
vring_desc swap_byte (vring_desc v)

Function Documentation

◆ swap_byte() [1/2]

vring_desc swap_byte ( vring_desc  v)

Definition at line 75 of file base.hh.

References swap_byte(), and ArmISA::v.

◆ swap_byte() [2/2]

vring_used_elem swap_byte ( vring_used_elem  v)

Definition at line 68 of file base.hh.

References ArmISA::v.

Referenced by swap_byte(), and TEST().

Generated on Wed Sep 30 2020 14:02:18 for gem5 by doxygen 1.8.17