Cleanup and commenting

This commit is contained in:
Thomas Lovén 2018-03-16 09:01:31 +01:00
parent cce444f546
commit 80aad418fc
3 changed files with 5 additions and 2 deletions

View File

@ -9,9 +9,10 @@ struct cpu __seg_gs *cpu = 0;
void cpu_init() void cpu_init()
{ {
// Set up cpu struct
struct cpu *c = P2V(pmm_calloc()); struct cpu *c = P2V(pmm_calloc());
c->cpu = c; c->cpu = c;
write_msr(0xc0000102, (uint64_t)c); write_msr(KERNEL_GS_BASE, (uint64_t)c);
asm("swapgs"); asm("swapgs");
interrupt_init(); interrupt_init();

View File

@ -49,7 +49,6 @@ read_msr:
shl rdx, 32 shl rdx, 32
add rax, rdx add rax, rdx
ret ret
.global write_msr .global write_msr
write_msr: write_msr:
mov rcx, rdi mov rcx, rdi

View File

@ -26,5 +26,8 @@ uint64_t read_cr3();
void write_cr3(uint64_t); void write_cr3(uint64_t);
uint64_t read_cr4(); uint64_t read_cr4();
// Model Specific Registers
// Functions defined in cpu/registers.S
void write_msr(uint64_t reg, uint64_t value); void write_msr(uint64_t reg, uint64_t value);
uint64_t read_msr(uint64_t reg); uint64_t read_msr(uint64_t reg);
#define KERNEL_GS_BASE 0xC0000102