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

#include <free_list.hh>

Classes

struct  Range
 

Public Member Functions

 FreeList ()=default
 
 FreeList (T base, T size)
 
void insert (T base, T size)
 Mark the range [base, base + size) as free.
 
std::optional< T > allocate (T size)
 Allocate a region of size.
 
size () const
 Return the number of free items.
 
const RangeListranges () const
 Return a list of free ranges.
 

Private Types

using RangeList = std::list<Range>
 

Private Attributes

RangeList _ranges
 
_size = 0
 

Detailed Description

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

Definition at line 44 of file free_list.hh.

Member Typedef Documentation

◆ RangeList

template<typename T>
using gem5::FreeList< T >::RangeList = std::list<Range>
private

Definition at line 90 of file free_list.hh.

Constructor & Destructor Documentation

◆ FreeList() [1/2]

template<typename T>
gem5::FreeList< T >::FreeList ( )
default

◆ FreeList() [2/2]

template<typename T>
gem5::FreeList< T >::FreeList ( T base,
T size )
inline

Definition at line 84 of file free_list.hh.

References gem5::RiscvISA::base, insert(), and size().

Member Function Documentation

◆ allocate()

template<typename T>
std::optional< T > gem5::FreeList< T >::allocate ( T size)
inline

Allocate a region of size.

Parameters
sizeout of free space.
Returns
whether the allocation succeeded.

Definition at line 146 of file free_list.hh.

References _ranges, _size, gem5::RiscvISA::base, and size().

◆ insert()

template<typename T>
void gem5::FreeList< T >::insert ( T base,
T size )
inline

Mark the range [base, base + size) as free.

Definition at line 98 of file free_list.hh.

References _ranges, _size, gem5::RiscvISA::base, panic_if, and size().

Referenced by FreeList().

◆ ranges()

template<typename T>
const RangeList & gem5::FreeList< T >::ranges ( ) const
inline

Return a list of free ranges.

Definition at line 186 of file free_list.hh.

References _ranges.

◆ size()

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

Return the number of free items.

Definition at line 179 of file free_list.hh.

References _size.

Referenced by allocate(), FreeList(), and insert().

Member Data Documentation

◆ _ranges

template<typename T>
RangeList gem5::FreeList< T >::_ranges
private

Definition at line 91 of file free_list.hh.

Referenced by allocate(), insert(), and ranges().

◆ _size

template<typename T>
T gem5::FreeList< T >::_size = 0
private

Definition at line 92 of file free_list.hh.

Referenced by allocate(), insert(), and size().


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