gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::Fifo< T > Class Template Reference

Simple FIFO implementation backed by a circular buffer. More...

#include <circlebuf.hh>

Public Types

typedef T value_type
 

Public Member Functions

 Fifo (size_t size)
 
bool empty () const
 
size_t size () const
 
size_t capacity () const
 
void flush ()
 
template<class OutputIterator>
void peek (OutputIterator out, size_t len) const
 
template<class OutputIterator>
void read (OutputIterator out, size_t len)
 
template<class InputIterator>
void write (InputIterator in, size_t len)
 

Private Attributes

CircleBuf< value_typebuf
 

Detailed Description

template<typename T>
class gem5::Fifo< T >

Simple FIFO implementation backed by a circular buffer.

This class provides the same basic functionallity as the circular buffer with the folling differences:

  • Writes are checked to ensure that overflows can't happen.
  • Unserialization ensures that the data in the checkpoint fits in the buffer.

Definition at line 213 of file circlebuf.hh.

Member Typedef Documentation

◆ value_type

template<typename T>
typedef T gem5::Fifo< T >::value_type

Definition at line 216 of file circlebuf.hh.

Constructor & Destructor Documentation

◆ Fifo()

template<typename T>
gem5::Fifo< T >::Fifo ( size_t size)
inline

Definition at line 219 of file circlebuf.hh.

References buf, and size().

Member Function Documentation

◆ capacity()

template<typename T>
size_t gem5::Fifo< T >::capacity ( ) const
inline

Definition at line 223 of file circlebuf.hh.

References buf.

Referenced by gem5::arrayParamIn(), and write().

◆ empty()

template<typename T>
bool gem5::Fifo< T >::empty ( ) const
inline

Definition at line 221 of file circlebuf.hh.

References buf.

◆ flush()

template<typename T>
void gem5::Fifo< T >::flush ( )
inline

Definition at line 225 of file circlebuf.hh.

References buf.

Referenced by gem5::arrayParamIn().

◆ peek()

template<typename T>
template<class OutputIterator>
void gem5::Fifo< T >::peek ( OutputIterator out,
size_t len ) const
inline

Definition at line 228 of file circlebuf.hh.

References buf, and gem5::ArmISA::len.

Referenced by gem5::arrayParamOut().

◆ read()

template<typename T>
template<class OutputIterator>
void gem5::Fifo< T >::read ( OutputIterator out,
size_t len )
inline

Definition at line 230 of file circlebuf.hh.

References buf, and gem5::ArmISA::len.

◆ size()

template<typename T>
size_t gem5::Fifo< T >::size ( ) const
inline

Definition at line 222 of file circlebuf.hh.

References buf.

Referenced by gem5::arrayParamOut(), Fifo(), and write().

◆ write()

template<typename T>
template<class InputIterator>
void gem5::Fifo< T >::write ( InputIterator in,
size_t len )
inline

Definition at line 234 of file circlebuf.hh.

References buf, capacity(), gem5::ArmISA::len, panic_if, and size().

Referenced by gem5::arrayParamIn().

Member Data Documentation

◆ buf

template<typename T>
CircleBuf<value_type> gem5::Fifo< T >::buf
private

Definition at line 241 of file circlebuf.hh.

Referenced by capacity(), empty(), Fifo(), flush(), peek(), read(), size(), and write().


The documentation for this class was generated from the following file:

Generated on Mon May 26 2025 09:19:20 for gem5 by doxygen 1.13.2