The Pedigree Project
0.1
|
#include <ProcessorInformation.h>
Public Types | |
typedef struct X64TaskStateSegment | TaskStateSegment |
Public Member Functions | |
VirtualAddressSpace & | getVirtualAddressSpace () 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) |
Thread * | getCurrentThread () const |
void | setCurrentThread (Thread *pThread) |
PerProcessorScheduler & | getScheduler () |
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 &) | |
X86CommonProcessorInformation & | operator= (const X86CommonProcessorInformation &) |
Private Attributes | |
ProcessorId | m_ProcessorId |
uint16_t | m_TssSelector |
TaskStateSegment * | m_Tss |
VirtualAddressSpace * | m_VirtualAddressSpace |
uint8_t | m_LocalApicId |
Thread * | m_pCurrentThread |
PerProcessorScheduler * | m_Scheduler |
uint16_t | m_TlsSelector |
Friends | |
class | Processor |
class | Multiprocessor |
Common x86 processor information structure
Definition at line 37 of file x86_common/ProcessorInformation.h.
|
protected |
Construct a X86CommonProcessor object
[in] | processorId | Identifier of the processor |
Definition at line 130 of file x86_common/ProcessorInformation.cc.
|
protectedvirtual |
The destructor does nothing
Definition at line 139 of file x86_common/ProcessorInformation.cc.
References m_LocalApicId, m_ProcessorId, and m_Scheduler.
|
private |
Default constructor
|
private |
Copy-constructor
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
Definition at line 73 of file x86_common/ProcessorInformation.cc.
References m_Tss.
uint16_t X86CommonProcessorInformation::getTssSelector | ( | ) | const |
Get the processor's TSS selector
Definition at line 67 of file x86_common/ProcessorInformation.cc.
References m_TssSelector.
VirtualAddressSpace & X86CommonProcessorInformation::getVirtualAddressSpace | ( | ) | const |
Get the current processor's VirtualAddressSpace
Definition at line 38 of file x86_common/ProcessorInformation.cc.
References VirtualAddressSpace::getKernelAddressSpace(), and m_VirtualAddressSpace.
|
private |
Assignment operator
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
[in] | Tss | pointer 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
[in] | TssSelector | the 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
[in] | virtualAddressSpace | reference to the new VirtualAddressSpace |
Definition at line 47 of file x86_common/ProcessorInformation.cc.
References m_VirtualAddressSpace.
|
private |
Local APIC Id
Definition at line 110 of file x86_common/ProcessorInformation.h.
Referenced by ~X86CommonProcessorInformation().
|
private |
The current thread
Definition at line 112 of file x86_common/ProcessorInformation.h.
Referenced by setTlsSelector().
|
private |
Identifier of that processor
Definition at line 102 of file x86_common/ProcessorInformation.h.
Referenced by ~X86CommonProcessorInformation().
|
private |
The processor's scheduler.
Definition at line 114 of file x86_common/ProcessorInformation.h.
Referenced by setTlsSelector(), and ~X86CommonProcessorInformation().
|
private |
The processor's TLS segment
Definition at line 116 of file x86_common/ProcessorInformation.h.
Referenced by getTlsSelector(), and setTlsSelector().
|
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().
|
private |
The Task-State-Segment selector of that Processor
Definition at line 104 of file x86_common/ProcessorInformation.h.
Referenced by getTssSelector(), and setTssSelector().
|
private |
The current VirtualAddressSpace
Definition at line 108 of file x86_common/ProcessorInformation.h.
Referenced by getVirtualAddressSpace(), and setVirtualAddressSpace().