The Pedigree Project 0.1
Public Member Functions | Private Attributes | List of all members
SlamBitmap Class Reference

#include <SlamBitmap.h>

+ Collaboration diagram for SlamBitmap:

Public Member Functions

void useMemory (void *memory, size_t entryCount, size_t pageCount)
 
size_t findFreeRun (size_t pageCount) const
 
void reserve (size_t firstPage, size_t pageCount)
 
void release (size_t firstPage, size_t pageCount)
 
void setMapped (size_t page)
 
void clearMappedAndReady (size_t page)
 
bool isReserved (size_t page) const
 
bool isMapped (size_t page) const
 
bool isReady (size_t page) const
 
void setReady (size_t page)
 
uint64_t reservedBits (size_t entry) const
 
uintptr_t metadataAddress (size_t entry) const
 

Private Attributes

uint64_t * m_reserved = nullptr
 
uint64_t * m_mapped = nullptr
 
uint64_t * m_ready = nullptr
 
size_t m_EntryCount
 
size_t m_PageCount
 
size_t m_FirstFreeEntry = 0
 

Detailed Description

Bitmap used by SLAM to track virtual heap pages.

Definition at line 15 of file SlamBitmap.h.

Constructor & Destructor Documentation

◆ SlamBitmap()

SlamBitmap::SlamBitmap ( )
inline

Definition at line 17 of file SlamBitmap.h.

Member Function Documentation

◆ clearMappedAndReady()

void SlamBitmap::clearMappedAndReady ( size_t  page)

Definition at line 102 of file SlamBitmap.cc.

◆ findFreeRun()

size_t SlamBitmap::findFreeRun ( size_t  pageCount) const

Definition at line 30 of file SlamBitmap.cc.

◆ isMapped()

bool SlamBitmap::isMapped ( size_t  page) const

Definition at line 119 of file SlamBitmap.cc.

◆ isReady()

bool SlamBitmap::isReady ( size_t  page) const

Definition at line 124 of file SlamBitmap.cc.

◆ isReserved()

bool SlamBitmap::isReserved ( size_t  page) const

Definition at line 114 of file SlamBitmap.cc.

◆ metadataAddress()

uintptr_t SlamBitmap::metadataAddress ( size_t  entry) const

Definition at line 18 of file SlamBitmap.cc.

◆ release()

void SlamBitmap::release ( size_t  firstPage,
size_t  pageCount 
)

Definition at line 79 of file SlamBitmap.cc.

◆ reserve()

void SlamBitmap::reserve ( size_t  firstPage,
size_t  pageCount 
)

Definition at line 69 of file SlamBitmap.cc.

◆ reservedBits()

uint64_t SlamBitmap::reservedBits ( size_t  entry) const

Definition at line 14 of file SlamBitmap.cc.

◆ setMapped()

void SlamBitmap::setMapped ( size_t  page)

Definition at line 97 of file SlamBitmap.cc.

◆ setReady()

void SlamBitmap::setReady ( size_t  page)

Definition at line 129 of file SlamBitmap.cc.

◆ useMemory()

void SlamBitmap::useMemory ( void *  memory,
size_t  entryCount,
size_t  pageCount 
)

Definition at line 4 of file SlamBitmap.cc.

Member Data Documentation

◆ m_EntryCount

size_t SlamBitmap::m_EntryCount
private

Definition at line 44 of file SlamBitmap.h.

◆ m_FirstFreeEntry

size_t SlamBitmap::m_FirstFreeEntry = 0
private

Definition at line 46 of file SlamBitmap.h.

◆ m_mapped

uint64_t* SlamBitmap::m_mapped = nullptr
private

Definition at line 41 of file SlamBitmap.h.

◆ m_PageCount

size_t SlamBitmap::m_PageCount
private

Definition at line 45 of file SlamBitmap.h.

◆ m_ready

uint64_t* SlamBitmap::m_ready = nullptr
private

Definition at line 42 of file SlamBitmap.h.

◆ m_reserved

uint64_t* SlamBitmap::m_reserved = nullptr
private

Definition at line 40 of file SlamBitmap.h.


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