miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
Loading...
Searching...
No Matches
smp.h File Reference
#include <miniOS/types.h>
Include dependency graph for smp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cpu_t

Macros

#define MAX_CPUS   8

Typedefs

typedef struct cpu_t cpu_t

Functions

static cpu_tcpu_local (void)
void cpu_enable_sse (void)
 Enable SSE/SSE2 on the calling CPU.
void per_cpu_init (uint32_t cpu_id)
 Initialise per-CPU GDT, TSS, IDT, and GS base for one CPU.
void acpi_find_madt (uint64_t mb_info_phys)
 Parse ACPI MADT and populate smp_lapic_ids[]/smp_cpu_count.
void smp_boot_aps (void)
 Send INIT-SIPI-SIPI sequence to all non-BSP CPUs.
void per_cpu_update_rsp0 (uint64_t rsp0)
 Update this CPU's TSS RSP0 and cpu_t.kstack_top.
void ap_barrier_checkin (void)
 Signal that this AP has completed its CPU init.
void smp_wait_for_aps (void)
 Block until all APs have checked in at the rendezvous barrier.
void lapic_timer_init_ap (void)
 Start LAPIC timer on the calling AP using the BSP-calibrated ICR.

Variables

uint32_t smp_cpu_count
uint8_t smp_lapic_ids [MAX_CPUS]
cpu_t g_cpus [MAX_CPUS]
volatile uint32_t smp_aps_ready