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

#include <DiskPaging.h>

+ Collaboration diagram for PagingChannel:

Public Member Functions

 PagingChannel (const PagingChannel &)=delete
 
PagingChanneloperator= (const PagingChannel &)=delete
 
PagingStatus readPage (uint64_t offset, void *page)
 
PagingStatus writePage (uint64_t offset, const void *page)
 
PagingStatus flush ()
 
void reset ()
 
uint32_t endpointId () const
 
uint64_t size () const
 
 operator bool () const
 

Static Public Attributes

static constexpr size_t PageBytes = 4096
 

Private Member Functions

PagingStatus transfer (PagingOperation operation, uint64_t offset, void *page)
 

Private Attributes

DiskEndpointm_Endpoint
 

Friends

class DiskEndpoints
 

Detailed Description

Exclusive physical-device ownership. All calls complete synchronously. The pager must retire every swap reference before releasing this owner. Destruction joins transfers, but does not substitute for an explicit flush.

Definition at line 60 of file DiskPaging.h.

Constructor & Destructor Documentation

◆ PagingChannel()

PagingChannel::PagingChannel ( )

Definition at line 186 of file DiskPaging.cc.

◆ ~PagingChannel()

PagingChannel::~PagingChannel ( )

Definition at line 187 of file DiskPaging.cc.

Member Function Documentation

◆ endpointId()

uint32_t PagingChannel::endpointId ( ) const

Definition at line 302 of file DiskPaging.cc.

◆ flush()

PagingStatus PagingChannel::flush ( )

Definition at line 269 of file DiskPaging.cc.

◆ operator bool()

PagingChannel::operator bool ( ) const
explicit

Definition at line 310 of file DiskPaging.cc.

◆ readPage()

PagingStatus PagingChannel::readPage ( uint64_t  offset,
void *  page 
)

Definition at line 263 of file DiskPaging.cc.

◆ reset()

void PagingChannel::reset ( )

Definition at line 272 of file DiskPaging.cc.

◆ size()

uint64_t PagingChannel::size ( ) const

Definition at line 306 of file DiskPaging.cc.

◆ transfer()

PagingStatus PagingChannel::transfer ( PagingOperation  operation,
uint64_t  offset,
void *  page 
)
private

Definition at line 235 of file DiskPaging.cc.

◆ writePage()

PagingStatus PagingChannel::writePage ( uint64_t  offset,
const void *  page 
)

Definition at line 266 of file DiskPaging.cc.

Friends And Related Symbol Documentation

◆ DiskEndpoints

friend class DiskEndpoints
friend

Definition at line 77 of file DiskPaging.h.

Member Data Documentation

◆ m_Endpoint

DiskEndpoint* PagingChannel::m_Endpoint
private

Definition at line 79 of file DiskPaging.h.

◆ PageBytes

constexpr size_t PagingChannel::PageBytes = 4096
staticconstexpr

Definition at line 62 of file DiskPaging.h.


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