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

#include <circular_buffer.hh>

Public Member Functions

 circular_buffer (int size=0)
 
 ~circular_buffer ()
 
void resize (int size)
 
void clear ()
 
read ()
 
void write (const T &)
 
bool is_empty () const
 
bool is_full () const
 
int size () const
 
int used () const
 
int free () const
 
const T & read_data () const
 
const T & peek_data (int i) const
 
T & poke_data (int i)
 
void debug () const
 

Private Member Functions

void increment_write_pos (int i=1)
 
void increment_read_pos (int i=1)
 
void init ()
 
 circular_buffer (const circular_buffer< T > &b)
 
circular_buffer< T > & operator= (const circular_buffer< T > &)
 
void * buf_alloc (int size)
 
void buf_free (void *&buf)
 
void buf_write (void *buf, int n, const T &t)
 
T & buf_read (void *buf, int n) const
 
void buf_clear (void *buf, int n)
 

Private Attributes

int m_size
 
void * m_buf
 
int m_free
 
int m_used
 
int m_ri
 
int m_wi
 

Detailed Description

template<typename T>
class tlm::circular_buffer< T >

Definition at line 29 of file circular_buffer.hh.

Constructor & Destructor Documentation

◆ circular_buffer() [1/2]

template<typename T>
tlm::circular_buffer< T >::circular_buffer ( int size = 0)
explicit

Definition at line 112 of file circular_buffer.hh.

References init(), m_buf, m_size, and size().

Referenced by circular_buffer(), and operator=().

◆ ~circular_buffer()

template<typename T>
tlm::circular_buffer< T >::~circular_buffer ( )

Definition at line 129 of file circular_buffer.hh.

References buf_free(), clear(), and m_buf.

◆ circular_buffer() [2/2]

template<typename T>
tlm::circular_buffer< T >::circular_buffer ( const circular_buffer< T > & b)
private

References b, and circular_buffer().

Member Function Documentation

◆ buf_alloc()

template<typename T>
void * tlm::circular_buffer< T >::buf_alloc ( int size)
inlineprivate

Definition at line 213 of file circular_buffer.hh.

References size().

Referenced by init(), and resize().

◆ buf_clear()

template<typename T>
void tlm::circular_buffer< T >::buf_clear ( void * buf,
int n )
inlineprivate

Definition at line 244 of file circular_buffer.hh.

Referenced by clear(), read(), and resize().

◆ buf_free()

template<typename T>
void tlm::circular_buffer< T >::buf_free ( void *& buf)
inlineprivate

Definition at line 220 of file circular_buffer.hh.

Referenced by resize(), and ~circular_buffer().

◆ buf_read()

template<typename T>
T & tlm::circular_buffer< T >::buf_read ( void * buf,
int n ) const
inlineprivate

Definition at line 236 of file circular_buffer.hh.

Referenced by peek_data(), poke_data(), and read_data().

◆ buf_write()

template<typename T>
void tlm::circular_buffer< T >::buf_write ( void * buf,
int n,
const T & t )
inlineprivate

Definition at line 228 of file circular_buffer.hh.

Referenced by resize(), and write().

◆ clear()

template<typename T>
void tlm::circular_buffer< T >::clear ( )

Definition at line 119 of file circular_buffer.hh.

References buf_clear(), m_buf, m_free, m_ri, m_size, m_used, m_wi, and used().

Referenced by ~circular_buffer().

◆ debug()

template<typename T>
void tlm::circular_buffer< T >::debug ( ) const

Definition at line 90 of file circular_buffer.hh.

References free(), is_empty(), is_full(), m_ri, m_wi, peek_data(), size(), and used().

◆ free()

template<typename T>
int tlm::circular_buffer< T >::free ( ) const
inline

Definition at line 46 of file circular_buffer.hh.

References m_free.

Referenced by debug(), and is_full().

◆ increment_read_pos()

template<typename T>
void tlm::circular_buffer< T >::increment_read_pos ( int i = 1)
private

Definition at line 204 of file circular_buffer.hh.

References m_free, m_ri, m_size, and m_used.

Referenced by read().

◆ increment_write_pos()

template<typename T>
void tlm::circular_buffer< T >::increment_write_pos ( int i = 1)
private

Definition at line 195 of file circular_buffer.hh.

References m_free, m_size, m_used, and m_wi.

Referenced by write().

◆ init()

template<typename T>
void tlm::circular_buffer< T >::init ( )
private

Definition at line 161 of file circular_buffer.hh.

References buf_alloc(), m_buf, m_free, m_ri, m_size, m_used, and m_wi.

Referenced by circular_buffer().

◆ is_empty()

template<typename T>
bool tlm::circular_buffer< T >::is_empty ( ) const
inline

Definition at line 41 of file circular_buffer.hh.

References used().

Referenced by debug().

◆ is_full()

template<typename T>
bool tlm::circular_buffer< T >::is_full ( ) const
inline

Definition at line 42 of file circular_buffer.hh.

References free().

Referenced by debug().

◆ operator=()

template<typename T>
circular_buffer< T > & tlm::circular_buffer< T >::operator= ( const circular_buffer< T > & )
private

References circular_buffer().

◆ peek_data()

template<typename T>
const T & tlm::circular_buffer< T >::peek_data ( int i) const
inline

Definition at line 50 of file circular_buffer.hh.

References buf_read(), m_buf, m_ri, and size().

Referenced by debug(), and resize().

◆ poke_data()

template<typename T>
T & tlm::circular_buffer< T >::poke_data ( int i)
inline

Definition at line 56 of file circular_buffer.hh.

References buf_read(), m_buf, m_wi, and size().

◆ read()

template<typename T>
T tlm::circular_buffer< T >::read ( )

Definition at line 175 of file circular_buffer.hh.

References buf_clear(), increment_read_pos(), m_buf, m_ri, and read_data().

◆ read_data()

template<typename T>
const T & tlm::circular_buffer< T >::read_data ( ) const
inline

Definition at line 48 of file circular_buffer.hh.

References buf_read(), m_buf, and m_ri.

Referenced by read().

◆ resize()

template<typename T>
void tlm::circular_buffer< T >::resize ( int size)

◆ size()

template<typename T>
int tlm::circular_buffer< T >::size ( ) const
inline

Definition at line 44 of file circular_buffer.hh.

References m_size.

Referenced by buf_alloc(), circular_buffer(), debug(), peek_data(), poke_data(), and resize().

◆ used()

template<typename T>
int tlm::circular_buffer< T >::used ( ) const
inline

Definition at line 45 of file circular_buffer.hh.

References m_used.

Referenced by clear(), debug(), is_empty(), and resize().

◆ write()

template<typename T>
void tlm::circular_buffer< T >::write ( const T & t)

Definition at line 187 of file circular_buffer.hh.

References buf_write(), increment_write_pos(), m_buf, and m_wi.

Member Data Documentation

◆ m_buf

template<typename T>
void* tlm::circular_buffer< T >::m_buf
private

◆ m_free

template<typename T>
int tlm::circular_buffer< T >::m_free
private

Definition at line 82 of file circular_buffer.hh.

Referenced by clear(), free(), increment_read_pos(), increment_write_pos(), init(), and resize().

◆ m_ri

template<typename T>
int tlm::circular_buffer< T >::m_ri
private

Definition at line 84 of file circular_buffer.hh.

Referenced by clear(), debug(), increment_read_pos(), init(), peek_data(), read(), read_data(), and resize().

◆ m_size

template<typename T>
int tlm::circular_buffer< T >::m_size
private

◆ m_used

template<typename T>
int tlm::circular_buffer< T >::m_used
private

Definition at line 83 of file circular_buffer.hh.

Referenced by clear(), increment_read_pos(), increment_write_pos(), init(), resize(), and used().

◆ m_wi

template<typename T>
int tlm::circular_buffer< T >::m_wi
private

Definition at line 85 of file circular_buffer.hh.

Referenced by clear(), debug(), increment_write_pos(), init(), poke_data(), resize(), and write().


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

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