StuBS
|
Namespaces | |
namespace | Core |
Implements an abstraction for CPU internals. | |
Functions | |
void | Core::init () |
Initialize this CPU core. | |
void | Core::exit () |
Deinitialize this CPU core. | |
unsigned | Core::getID () |
Get the ID of the current CPU core using LAPIC::getID() with an internal lookup table. | |
unsigned | Core::count () |
Get number of available CPU cores. | |
unsigned | Core::countOnline () |
Get number of successfully started (and currently active) CPU cores. | |
bool | Core::isOnline (uint8_t core_id) |
Check if CPU core is currently active. | |
Constants | |
const unsigned long | CPU_CORE_STACK_SIZE = 4096 |
Initial size of CPU core stacks. | |
static unsigned char | cpu_core_stack [Core::MAX *CPU_CORE_STACK_SIZE] |
Reserved memory for CPU core stacks. | |
unsigned char * | cpu_core_stack_pointer = cpu_core_stack |
Pointer to stack memory. | |
static unsigned | Core::cores = 0 |
Number of available CPU cores. | |
static unsigned | Core::core_id [255] |
Lookup table for CPU core IDs with LAPIC ID as index. | |
static unsigned | Core::online_cores = 0 |
Number of currently online CPU cores. | |
static bool | Core::online_core [Core::MAX] |
Lookup table for online CPU cores with CPU core ID as index. | |
const unsigned long CPU_CORE_STACK_SIZE = 4096 |
Initial size of CPU core stacks.
Used during startup in boot/startup.asm
|
static |
Reserved memory for CPU core stacks.
unsigned char* cpu_core_stack_pointer = cpu_core_stack |
Pointer to stack memory.
Incremented during startup of each core (bootstrap and application processors) in boot/startup.asm