void interrupt_disable(void)
Disable interrupts and increment the disableDepth.
void interrupt_enable(void)
Decrement the CLI depth and enable interrupts if depth reaches zero and interrupts were previously en...
static cpu_t * smp_cpu(cpuid_t id)
Returns a pointer to the cpu_t structure of the CPU with the given id.
void smp_bootstrap_init(void)
Initializes the bootstrap CPU structure.
static cpu_t * smp_self_unsafe(void)
Returns a pointer to the cpu_t structure of the current CPU.
void smp_bootstrap_init_early(void)
Early initialization of the bootstrap CPU.
cpu_t * _cpus[CPU_MAX]
Array of pointers to cpu_t structures for each CPU.
void smp_others_init(void)
Initializes the other CPUs.
static cpu_t * smp_self(void)
Returns a pointer to the cpu_t structure of the current CPU.
static uint16_t smp_cpu_amount(void)
Returns the number of CPUs currently identified.
static cpuid_t smp_self_id_unsafe(void)
Returns the id of the current CPU.
static void smp_put(void)
Re-enables interrupts after a call to smp_self().
uint16_t _cpuAmount
The number of CPUs currently identified.
void smp_halt_others(void)
Halts all CPUs except the current one.
#define CPU_MAX
Maximum number of CPUs supported.
uint16_t cpuid_t
Type used to identify a CPU.
static uint64_t msr_read(uint32_t msr)