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

#include <ProcessorInformation.h>

+ Collaboration diagram for X86CommonProcessorInformation:

Public Types

typedef struct X64TaskStateSegment TaskStateSegment
 

Public Member Functions

VirtualAddressSpacegetVirtualAddressSpace () const
 
void setVirtualAddressSpace (VirtualAddressSpace &virtualAddressSpace)
 
void setTssSelector (uint16_t TssSelector)
 
void setTss (void *Tss)
 
uint16_t getTssSelector () const
 
void * getTss () const
 
uint16_t getTlsSelector ()
 
void setTlsSelector (uint16_t tls)
 
uintptr_t getKernelStack () const
 
void setKernelStack (uintptr_t stack)
 
ThreadgetCurrentThread () const
 
void setCurrentThread (Thread *pThread)
 
PerProcessorSchedulergetScheduler ()
 

Protected Member Functions

 X86CommonProcessorInformation (ProcessorId processorId, uint8_t apicId=0)
 
virtual ~X86CommonProcessorInformation ()
 
void setIds (ProcessorId processorId, uint8_t apicId=0)
 

Private Member Functions

 X86CommonProcessorInformation ()
 
 X86CommonProcessorInformation (const X86CommonProcessorInformation &)
 
X86CommonProcessorInformationoperator= (const X86CommonProcessorInformation &)
 

Private Attributes

ProcessorId m_ProcessorId
 
uint16_t m_TssSelector
 
TaskStateSegmentm_Tss
 
VirtualAddressSpacem_VirtualAddressSpace
 
uint8_t m_LocalApicId
 
Threadm_pCurrentThread
 
PerProcessorSchedulerm_Scheduler
 
uint16_t m_TlsSelector
 

Friends

class Processor
 
class Multiprocessor
 

Detailed Description

Common x86 processor information structure

Definition at line 37 of file x86_common/ProcessorInformation.h.

Constructor & Destructor Documentation

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

Construct a X86CommonProcessor object

Parameters
[in]processorIdIdentifier of the processor

Definition at line 130 of file x86_common/ProcessorInformation.cc.

X86CommonProcessorInformation::~X86CommonProcessorInformation ( )
protectedvirtual

The destructor does nothing

Definition at line 139 of file x86_common/ProcessorInformation.cc.

References m_LocalApicId, m_ProcessorId, and m_Scheduler.

X86CommonProcessorInformation::X86CommonProcessorInformation ( )
private

Default constructor

Note
NOT implemented
X86CommonProcessorInformation::X86CommonProcessorInformation ( const X86CommonProcessorInformation )
private

Copy-constructor

Note
NOT implemented

Member Function Documentation

uint16_t X86CommonProcessorInformation::getTlsSelector ( )

Gets the processor's TLS base segment

Definition at line 78 of file x86_common/ProcessorInformation.cc.

References m_TlsSelector.

void * X86CommonProcessorInformation::getTss ( ) const

Get the processor's TSS

Returns
the Tss of the processor

Definition at line 73 of file x86_common/ProcessorInformation.cc.

References m_Tss.

uint16_t X86CommonProcessorInformation::getTssSelector ( ) const

Get the processor's TSS selector

Returns
the TSS selector of the processor

Definition at line 67 of file x86_common/ProcessorInformation.cc.

References m_TssSelector.

VirtualAddressSpace & X86CommonProcessorInformation::getVirtualAddressSpace ( ) const

Get the current processor's VirtualAddressSpace

Returns
reference to the current processor's VirtualAddressSpace

Definition at line 38 of file x86_common/ProcessorInformation.cc.

References VirtualAddressSpace::getKernelAddressSpace(), and m_VirtualAddressSpace.

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

Assignment operator

Note
NOT implemented
void X86CommonProcessorInformation::setTlsSelector ( uint16_t  tls)

Sets the processor's TLS base segment

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

References Process::getId(), Thread::getParent(), m_pCurrentThread, m_Scheduler, m_TlsSelector, and m_Tss.

void X86CommonProcessorInformation::setTss ( void *  Tss)

Set the processor's TSS

Parameters
[in]Tsspointer to the new TSS

Definition at line 61 of file x86_common/ProcessorInformation.cc.

References m_Tss.

void X86CommonProcessorInformation::setTssSelector ( uint16_t  TssSelector)

Set the processor's TSS selector

Parameters
[in]TssSelectorthe new TSS selector

Definition at line 55 of file x86_common/ProcessorInformation.cc.

References m_TssSelector.

void X86CommonProcessorInformation::setVirtualAddressSpace ( VirtualAddressSpace virtualAddressSpace)

Set the current processor's VirtualAddressSpace

Parameters
[in]virtualAddressSpacereference to the new VirtualAddressSpace

Definition at line 47 of file x86_common/ProcessorInformation.cc.

References m_VirtualAddressSpace.

Member Data Documentation

uint8_t X86CommonProcessorInformation::m_LocalApicId
private

Local APIC Id

Definition at line 110 of file x86_common/ProcessorInformation.h.

Referenced by ~X86CommonProcessorInformation().

Thread* X86CommonProcessorInformation::m_pCurrentThread
private

The current thread

Definition at line 112 of file x86_common/ProcessorInformation.h.

Referenced by setTlsSelector().

ProcessorId X86CommonProcessorInformation::m_ProcessorId
private

Identifier of that processor

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

Referenced by ~X86CommonProcessorInformation().

PerProcessorScheduler* X86CommonProcessorInformation::m_Scheduler
private

The processor's scheduler.

Definition at line 114 of file x86_common/ProcessorInformation.h.

Referenced by setTlsSelector(), and ~X86CommonProcessorInformation().

uint16_t X86CommonProcessorInformation::m_TlsSelector
private

The processor's TLS segment

Definition at line 116 of file x86_common/ProcessorInformation.h.

Referenced by getTlsSelector(), and setTlsSelector().

TaskStateSegment* X86CommonProcessorInformation::m_Tss
private

Pointer to this processor's Task-State-Segment

Definition at line 106 of file x86_common/ProcessorInformation.h.

Referenced by getTss(), setTlsSelector(), and setTss().

uint16_t X86CommonProcessorInformation::m_TssSelector
private

The Task-State-Segment selector of that Processor

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

Referenced by getTssSelector(), and setTssSelector().

VirtualAddressSpace* X86CommonProcessorInformation::m_VirtualAddressSpace
private

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