diff --git a/core/src/arch/x86_64/platform.zig b/core/src/arch/x86_64/platform.zig index f46d171..c535282 100644 --- a/core/src/arch/x86_64/platform.zig +++ b/core/src/arch/x86_64/platform.zig @@ -5,10 +5,21 @@ const interrupts = @import("interrupts.zig"); pub const PAGE_SIZE = 4096; +// FIXME: Check if it's supported first. +fn enableNX() void { + asm volatile ( + \\ mov $0xC0000080, %rcx + \\ rdmsr + \\ or $0x800, %eax + \\ wrmsr + ); +} + // Initialize platform-specific components. pub fn platformInit() void { gdt.setupGDT(); idt.setupIDT(); + enableNX(); } // Initialize platform-specific components just before beginning multitasking.