gem5 v24.0.0.0
Loading...
Searching...
No Matches
base.hh File Reference
#include <cstdint>
#include <functional>
#include <vector>
#include "base/bitunion.hh"
#include "base/compiler.hh"
#include "base/types.hh"
#include "dev/virtio/virtio_ring.h"
#include "mem/port_proxy.hh"
#include "sim/serialize.hh"
#include "sim/sim_object.hh"

Go to the source code of this file.

Classes

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

Namespaces

namespace  gem5
 Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
 

Functions

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.

template<typename T >
std::enable_if_t< std::is_same_v< T, vring_used_elem >, T > gem5::swap_byte (T v)
 
template<typename T >
std::enable_if_t< std::is_same_v< T, vring_desc >, T > gem5::swap_byte (T v)
 

Generated on Tue Jun 18 2024 16:24:08 for gem5 by doxygen 1.11.0