miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
Loading...
Searching...
No Matches
per_cpu.c File Reference
Include dependency graph for per_cpu.c:

Functions

void wrmsr_gs_base (uint64_t addr)
void lgdt_ap (void *gdt_desc)
void per_cpu_update_rsp0 (uint64_t rsp0)
 Update this CPU's TSS RSP0 and cpu_t.kstack_top.
void per_cpu_init (uint32_t cpu_id)
 Initialise per-CPU GDT, TSS, IDT, and GS base for one CPU.

Variables

struct segment_descriptor GDT []
struct tss_struct tss
static struct segment_descriptor percpu_gdt [MAX_CPUS][7]
static struct tss_struct percpu_tss [MAX_CPUS]
cpu_t g_cpus [MAX_CPUS]

Function Documentation

◆ lgdt_ap()

void lgdt_ap ( void * gdt_desc)
extern
Here is the caller graph for this function:

◆ wrmsr_gs_base()

void wrmsr_gs_base ( uint64_t addr)
extern
Here is the caller graph for this function:

Variable Documentation

◆ GDT

struct segment_descriptor GDT[]
extern

◆ percpu_gdt

struct segment_descriptor percpu_gdt[MAX_CPUS][7]
static

◆ percpu_tss

struct tss_struct percpu_tss[MAX_CPUS]
static

◆ tss

struct tss_struct tss
extern