|
miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
|
#include <miniOS/arch/x86_64/smp.h>#include <miniOS/arch/x86_64/apic.h>#include <miniOS/arch/x86_64/irq.h>#include <miniOS/arch/x86_64/segment.h>#include <miniOS/arch/x86_64/tss.h>#include <miniOS/mm/heap.h>#include <miniOS/io.h>#include <string.h>
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] |
|
extern |

|
extern |

|
extern |
|
static |
|
static |
|
extern |