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

#include <TickSource.h>

+ Collaboration diagram for HostedTickSource:

Public Types

enum class  TakeResult { NotSource , Expirations , Invalid }
 

Public Member Functions

bool prepare (int signal, void *owner)
 
bool arm (uint64_t intervalNanoseconds)
 
bool disarm ()
 
void destroy ()
 
TakeResult takeExpirations (const siginfo_t *info, size_t &expirations)
 

Private Member Functions

 HostedTickSource (const HostedTickSource &)=delete
 
HostedTickSource & operator= (const HostedTickSource &)=delete
 
void helper ()
 
bool recordExpirations (size_t expirations)
 

Static Private Member Functions

static void * helperEntry (void *source)
 

Private Attributes

pthread_t m_TargetThread
 
pthread_t m_HelperThread
 
pthread_mutex_t m_Mutex
 
pthread_cond_t m_Condition
 
uint64_t m_IntervalNanoseconds
 
size_t m_PendingExpirations
 
size_t m_Generation
 
bool m_Armed
 
bool m_Delivering
 
bool m_Stop
 
bool m_Failed
 
bool m_HelperStarted
 
int m_Signal
 
void * m_Owner
 
bool m_Prepared
 

Detailed Description

A periodic signal source targeted at the hosted kernel execution thread.

Definition at line 30 of file TickSource.h.

Member Enumeration Documentation

◆ TakeResult

enum class HostedTickSource::TakeResult
strong

Definition at line 32 of file TickSource.h.

Constructor & Destructor Documentation

◆ HostedTickSource()

HostedTickSource::HostedTickSource ( )

Definition at line 73 of file TickSource.cc.

◆ ~HostedTickSource()

HostedTickSource::~HostedTickSource ( )

Definition at line 102 of file TickSource.cc.

Member Function Documentation

◆ arm()

bool HostedTickSource::arm ( uint64_t  intervalNanoseconds)

Definition at line 160 of file TickSource.cc.

◆ destroy()

void HostedTickSource::destroy ( )

Definition at line 213 of file TickSource.cc.

◆ disarm()

bool HostedTickSource::disarm ( )

Definition at line 186 of file TickSource.cc.

◆ helper()

void HostedTickSource::helper ( )
private

Definition at line 325 of file TickSource.cc.

◆ helperEntry()

void * HostedTickSource::helperEntry ( void *  source)
staticprivate

Definition at line 307 of file TickSource.cc.

◆ prepare()

bool HostedTickSource::prepare ( int  signal,
void *  owner 
)

Definition at line 106 of file TickSource.cc.

◆ recordExpirations()

bool HostedTickSource::recordExpirations ( size_t  expirations)
private

Definition at line 312 of file TickSource.cc.

◆ takeExpirations()

HostedTickSource::TakeResult HostedTickSource::takeExpirations ( const siginfo_t *  info,
size_t &  expirations 
)

Definition at line 239 of file TickSource.cc.

Member Data Documentation

◆ m_Armed

bool HostedTickSource::m_Armed
private

Definition at line 71 of file TickSource.h.

◆ m_Condition

pthread_cond_t HostedTickSource::m_Condition
private

Definition at line 67 of file TickSource.h.

◆ m_Delivering

bool HostedTickSource::m_Delivering
private

Definition at line 72 of file TickSource.h.

◆ m_Failed

bool HostedTickSource::m_Failed
private

Definition at line 74 of file TickSource.h.

◆ m_Generation

size_t HostedTickSource::m_Generation
private

Definition at line 70 of file TickSource.h.

◆ m_HelperStarted

bool HostedTickSource::m_HelperStarted
private

Definition at line 75 of file TickSource.h.

◆ m_HelperThread

pthread_t HostedTickSource::m_HelperThread
private

Definition at line 65 of file TickSource.h.

◆ m_IntervalNanoseconds

uint64_t HostedTickSource::m_IntervalNanoseconds
private

Definition at line 68 of file TickSource.h.

◆ m_Mutex

pthread_mutex_t HostedTickSource::m_Mutex
private

Definition at line 66 of file TickSource.h.

◆ m_Owner

void* HostedTickSource::m_Owner
private

Definition at line 82 of file TickSource.h.

◆ m_PendingExpirations

size_t HostedTickSource::m_PendingExpirations
private

Definition at line 69 of file TickSource.h.

◆ m_Prepared

bool HostedTickSource::m_Prepared
private

Definition at line 83 of file TickSource.h.

◆ m_Signal

int HostedTickSource::m_Signal
private

Definition at line 81 of file TickSource.h.

◆ m_Stop

bool HostedTickSource::m_Stop
private

Definition at line 73 of file TickSource.h.

◆ m_TargetThread

pthread_t HostedTickSource::m_TargetThread
private

Definition at line 64 of file TickSource.h.


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