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

#include <ProcessorInformation.h>

+ Collaboration diagram for HostedProcessorInformation:

Public Member Functions

EXPORTED_PUBLIC VirtualAddressSpace & getVirtualAddressSpace () const
 
void setVirtualAddressSpace (VirtualAddressSpace &virtualAddressSpace)
 
uintptr_t getKernelStack () const
 
void setKernelStack (uintptr_t stack)
 
EXPORTED_PUBLIC Thread * getCurrentThread () const
 
void setCurrentThread (Thread *pThread)
 
PerProcessorScheduler & getScheduler ()
 
RcuReadState & rcuState ()
 
ProcessorId processorId () const
 

Protected Member Functions

 HostedProcessorInformation (ProcessorId processorId, uint8_t apicId=0)
 
virtual ~HostedProcessorInformation ()
 

Private Member Functions

 HostedProcessorInformation ()
 
 HostedProcessorInformation (const HostedProcessorInformation &)
 
HostedProcessorInformation & operator= (const HostedProcessorInformation &)
 

Private Attributes

ProcessorId m_ProcessorId
 
VirtualAddressSpace * m_VirtualAddressSpace
 
Thread * m_pCurrentThread
 
PerProcessorScheduler * m_Scheduler
 
uintptr_t m_KernelStack
 
uintptr_t m_HostedExecutionThreadId
 
size_t m_DeviceHardIrqDepth
 
size_t m_HostedSignalFrameDepth
 
RcuReadState m_RcuState
 

Friends

class ProcessorBase
 
class Multiprocessor
 
class DeviceHardIrqContext
 
class SuspendDeviceHardIrqContext
 

Detailed Description

Common hosted processor information structure

Definition at line 42 of file hosted/ProcessorInformation.h.

Constructor & Destructor Documentation

◆ HostedProcessorInformation() [1/3]

HostedProcessorInformation::HostedProcessorInformation ( ProcessorId  processorId,
uint8_t  apicId = 0 
)
protected

Construct a HostedProcessorInformation object

Parameters
[in]processorIdIdentifier of the processor

Definition at line 60 of file hosted/ProcessorInformation.cc.

◆ ~HostedProcessorInformation()

HostedProcessorInformation::~HostedProcessorInformation ( )
protectedvirtual

The destructor does nothing

Definition at line 70 of file hosted/ProcessorInformation.cc.

◆ HostedProcessorInformation() [2/3]

HostedProcessorInformation::HostedProcessorInformation ( )
private

Default constructor

Note
NOT implemented

◆ HostedProcessorInformation() [3/3]

HostedProcessorInformation::HostedProcessorInformation ( const HostedProcessorInformation &  )
private

Copy-constructor

Note
NOT implemented

Member Function Documentation

◆ getCurrentThread()

Thread * HostedProcessorInformation::getCurrentThread ( ) const

Definition at line 83 of file hosted/ProcessorInformation.cc.

◆ getKernelStack()

uintptr_t HostedProcessorInformation::getKernelStack ( ) const

Definition at line 205 of file hosted/ProcessorInformation.cc.

◆ getScheduler()

PerProcessorScheduler & HostedProcessorInformation::getScheduler ( )

Definition at line 94 of file hosted/ProcessorInformation.cc.

◆ getVirtualAddressSpace()

VirtualAddressSpace & HostedProcessorInformation::getVirtualAddressSpace ( ) const

Get the current processor's VirtualAddressSpace

Returns
reference to the current processor's VirtualAddressSpace

Definition at line 72 of file hosted/ProcessorInformation.cc.

References VirtualAddressSpace::getKernelAddressSpace(), and m_VirtualAddressSpace.

◆ operator=()

HostedProcessorInformation & HostedProcessorInformation::operator= ( const HostedProcessorInformation &  )
private

Assignment operator

Note
NOT implemented

◆ processorId()

ProcessorId HostedProcessorInformation::processorId ( ) const
inline

Definition at line 64 of file hosted/ProcessorInformation.h.

◆ rcuState()

RcuReadState & HostedProcessorInformation::rcuState ( )
inline

Definition at line 60 of file hosted/ProcessorInformation.h.

◆ setCurrentThread()

void HostedProcessorInformation::setCurrentThread ( Thread *  pThread)

Definition at line 87 of file hosted/ProcessorInformation.cc.

◆ setKernelStack()

void HostedProcessorInformation::setKernelStack ( uintptr_t  stack)

Definition at line 154 of file hosted/ProcessorInformation.cc.

◆ setVirtualAddressSpace()

void HostedProcessorInformation::setVirtualAddressSpace ( VirtualAddressSpace &  virtualAddressSpace)

Set the current processor's VirtualAddressSpace

Parameters
[in]virtualAddressSpacereference to the new VirtualAddressSpace

Definition at line 79 of file hosted/ProcessorInformation.cc.

References m_VirtualAddressSpace.

Friends And Related Symbol Documentation

◆ DeviceHardIrqContext

friend class DeviceHardIrqContext
friend

Definition at line 76 of file hosted/ProcessorInformation.h.

◆ Multiprocessor

friend class Multiprocessor
friend

Definition at line 44 of file hosted/ProcessorInformation.h.

◆ ProcessorBase

friend class ProcessorBase
friend

Definition at line 43 of file hosted/ProcessorInformation.h.

◆ SuspendDeviceHardIrqContext

friend class SuspendDeviceHardIrqContext
friend

Definition at line 77 of file hosted/ProcessorInformation.h.

Member Data Documentation

◆ m_DeviceHardIrqDepth

size_t HostedProcessorInformation::m_DeviceHardIrqDepth
private

Device hard-IRQ callbacks currently active on this processor.

Definition at line 102 of file hosted/ProcessorInformation.h.

◆ m_HostedExecutionThreadId

uintptr_t HostedProcessorInformation::m_HostedExecutionThreadId
private

Linux thread which owns hosted processor execution and IRQ delivery.

Definition at line 100 of file hosted/ProcessorInformation.h.

◆ m_HostedSignalFrameDepth

size_t HostedProcessorInformation::m_HostedSignalFrameDepth
private

POSIX signal frames live across hosted context switches.

Definition at line 104 of file hosted/ProcessorInformation.h.

◆ m_KernelStack

uintptr_t HostedProcessorInformation::m_KernelStack
private

Kernel stack.

Definition at line 98 of file hosted/ProcessorInformation.h.

◆ m_pCurrentThread

Thread* HostedProcessorInformation::m_pCurrentThread
private

The current thread

Definition at line 94 of file hosted/ProcessorInformation.h.

◆ m_ProcessorId

ProcessorId HostedProcessorInformation::m_ProcessorId
private

Identifier of that processor

Definition at line 90 of file hosted/ProcessorInformation.h.

◆ m_RcuState

RcuReadState HostedProcessorInformation::m_RcuState
private

Definition at line 105 of file hosted/ProcessorInformation.h.

◆ m_Scheduler

PerProcessorScheduler* HostedProcessorInformation::m_Scheduler
private

The processor's scheduler.

Definition at line 96 of file hosted/ProcessorInformation.h.

◆ m_VirtualAddressSpace

VirtualAddressSpace* HostedProcessorInformation::m_VirtualAddressSpace
private

The current VirtualAddressSpace

Definition at line 92 of file hosted/ProcessorInformation.h.

Referenced by getVirtualAddressSpace(), and setVirtualAddressSpace().


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