The Pedigree Project 0.1
Classes | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
PosixTraceContext Class Reference
+ Collaboration diagram for PosixTraceContext:

Classes

struct  OwnedRelation
 

Public Member Functions

bool valid () const
 
void attach (Process &)
 
TraceStatus prepareTask (UniquePointer< PreparedTraceTask > &)
 
TraceStatus publishTask (UniquePointer< PreparedTraceTask > &, Thread &)
 
bool taskToken (const Thread &, TraceTaskRef &) const
 
void setCreator (const TraceTaskRef &)
 
TraceTaskRef creator () const
 
void promoteExec (const Thread &)
 
void retireTask (const Thread &)
 
void close ()
 
TraceStatus reserveThreadCreation (TraceCloneAdmission &)
 
TraceStatus reserveEnrollment (Thread &, TraceEnrollmentAdmission &)
 
TraceStatus commitEnrollment (TraceEnrollmentAdmission &, const TraceRelationRef &)
 
TraceStatus registerTracee (const TraceTaskRef &tracer, const TraceRelationRef &)
 
void unregisterTracee (const PosixTraceRelation *)
 
void clearIncoming (const PosixTraceRelation *)
 
bool acquireIncoming (TraceRelationRef &empty) const
 
bool selectStop (size_t parentPid, bool stopped, bool continued, bool consume, PosixWait::Report &)
 

Private Member Functions

 PosixTraceContext (const PosixTraceContext &)=delete
 
PosixTraceContextoperator= (const PosixTraceContext &)=delete
 
TraceTaskRef tokenUnlocked (size_t localId) const
 
bool ownsTokenUnlocked (const TraceTaskRef &) const
 
void finishThreadCreation ()
 
void cancelEnrollment ()
 
bool hasIncoming () const
 

Private Attributes

Mutex m_AdmissionLock
 
Spinlock m_RelationLock
 
bool m_Attached = false
 
bool m_Closed = false
 
size_t m_ProcessId = 0
 
size_t m_ThreadCreations = 0
 
bool m_EnrollmentPending = false
 
PreparedTraceTaskm_Tasks = nullptr
 
OwnedRelationm_Outgoing = nullptr
 
TraceTaskRef m_Creator
 
TraceRelationRef m_Incoming
 

Friends

class TraceCloneAdmission
 
class TraceEnrollmentAdmission
 

Detailed Description

Definition at line 56 of file trace-context.h.

Constructor & Destructor Documentation

◆ ~PosixTraceContext()

PosixTraceContext::~PosixTraceContext ( )

Definition at line 49 of file trace-context.cc.

Member Function Documentation

◆ acquireIncoming()

bool PosixTraceContext::acquireIncoming ( TraceRelationRef empty) const

Definition at line 156 of file trace-context.cc.

◆ attach()

void PosixTraceContext::attach ( Process process)

Definition at line 59 of file trace-context.cc.

◆ cancelEnrollment()

void PosixTraceContext::cancelEnrollment ( )
private

Definition at line 59 of file trace-admission.cc.

◆ clearIncoming()

void PosixTraceContext::clearIncoming ( const PosixTraceRelation relation)

Definition at line 180 of file trace-context.cc.

◆ close()

void PosixTraceContext::close ( )

Definition at line 232 of file trace-context.cc.

◆ commitEnrollment()

TraceStatus PosixTraceContext::commitEnrollment ( TraceEnrollmentAdmission admission,
const TraceRelationRef relation 
)

Definition at line 65 of file trace-admission.cc.

◆ creator()

TraceTaskRef PosixTraceContext::creator ( ) const

Definition at line 138 of file trace-context.cc.

◆ finishThreadCreation()

void PosixTraceContext::finishThreadCreation ( )
private

Definition at line 30 of file trace-admission.cc.

◆ hasIncoming()

bool PosixTraceContext::hasIncoming ( ) const
private

Definition at line 175 of file trace-context.cc.

◆ ownsTokenUnlocked()

bool PosixTraceContext::ownsTokenUnlocked ( const TraceTaskRef token) const
private

Definition at line 111 of file trace-context.cc.

◆ prepareTask()

TraceStatus PosixTraceContext::prepareTask ( UniquePointer< PreparedTraceTask > &  result)

Definition at line 67 of file trace-context.cc.

◆ promoteExec()

void PosixTraceContext::promoteExec ( const Thread thread)

Definition at line 143 of file trace-context.cc.

◆ publishTask()

TraceStatus PosixTraceContext::publishTask ( UniquePointer< PreparedTraceTask > &  prepared,
Thread thread 
)

Definition at line 84 of file trace-context.cc.

◆ registerTracee()

TraceStatus PosixTraceContext::registerTracee ( const TraceTaskRef tracer,
const TraceRelationRef relation 
)

Definition at line 89 of file trace-admission.cc.

◆ reserveEnrollment()

TraceStatus PosixTraceContext::reserveEnrollment ( Thread thread,
TraceEnrollmentAdmission admission 
)

Definition at line 36 of file trace-admission.cc.

◆ reserveThreadCreation()

TraceStatus PosixTraceContext::reserveThreadCreation ( TraceCloneAdmission admission)

Definition at line 18 of file trace-admission.cc.

◆ retireTask()

void PosixTraceContext::retireTask ( const Thread thread)

Definition at line 189 of file trace-context.cc.

◆ selectStop()

bool PosixTraceContext::selectStop ( size_t  parentPid,
bool  stopped,
bool  continued,
bool  consume,
PosixWait::Report report 
)

Definition at line 165 of file trace-context.cc.

◆ setCreator()

void PosixTraceContext::setCreator ( const TraceTaskRef token)

Definition at line 132 of file trace-context.cc.

◆ taskToken()

bool PosixTraceContext::taskToken ( const Thread thread,
TraceTaskRef result 
) const

Definition at line 119 of file trace-context.cc.

◆ tokenUnlocked()

TraceTaskRef PosixTraceContext::tokenUnlocked ( size_t  localId) const
private

Definition at line 102 of file trace-context.cc.

◆ unregisterTracee()

void PosixTraceContext::unregisterTracee ( const PosixTraceRelation relation)

Definition at line 109 of file trace-admission.cc.

◆ valid()

bool PosixTraceContext::valid ( ) const

Definition at line 55 of file trace-context.cc.

Friends And Related Symbol Documentation

◆ TraceCloneAdmission

friend class TraceCloneAdmission
friend

Definition at line 83 of file trace-context.h.

◆ TraceEnrollmentAdmission

friend class TraceEnrollmentAdmission
friend

Definition at line 84 of file trace-context.h.

Member Data Documentation

◆ m_AdmissionLock

Mutex PosixTraceContext::m_AdmissionLock
mutableprivate

Definition at line 96 of file trace-context.h.

◆ m_Attached

bool PosixTraceContext::m_Attached = false
private

Definition at line 98 of file trace-context.h.

◆ m_Closed

bool PosixTraceContext::m_Closed = false
private

Definition at line 98 of file trace-context.h.

◆ m_Creator

TraceTaskRef PosixTraceContext::m_Creator
private

Definition at line 103 of file trace-context.h.

◆ m_EnrollmentPending

bool PosixTraceContext::m_EnrollmentPending = false
private

Definition at line 100 of file trace-context.h.

◆ m_Incoming

TraceRelationRef PosixTraceContext::m_Incoming
private

Definition at line 104 of file trace-context.h.

◆ m_Outgoing

OwnedRelation* PosixTraceContext::m_Outgoing = nullptr
private

Definition at line 102 of file trace-context.h.

◆ m_ProcessId

size_t PosixTraceContext::m_ProcessId = 0
private

Definition at line 99 of file trace-context.h.

◆ m_RelationLock

Spinlock PosixTraceContext::m_RelationLock
mutableprivate

Definition at line 97 of file trace-context.h.

◆ m_Tasks

PreparedTraceTask* PosixTraceContext::m_Tasks = nullptr
private

Definition at line 101 of file trace-context.h.

◆ m_ThreadCreations

size_t PosixTraceContext::m_ThreadCreations = 0
private

Definition at line 99 of file trace-context.h.


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