running edge compiler, addPackagePath broken
This commit is contained in:
parent
9fd40142fa
commit
888b51282d
4 changed files with 32 additions and 13 deletions
|
|
@ -2,15 +2,15 @@ const Builder = @import("std").build.Builder;
|
|||
const builtin = @import("builtin");
|
||||
|
||||
pub fn build(b: *Builder) void {
|
||||
const kernel = b.addExecutable("kernel", "src/arch/x86/main.zig");
|
||||
const kernel = b.addExecutable("kernel", "src/main.zig");
|
||||
kernel.addPackagePath("kernel", "src/index.zig");
|
||||
kernel.addPackagePath("x86", "src/arch/x86/index.zig");
|
||||
kernel.setOutputDir("build");
|
||||
|
||||
// kernel.addAssemblyFile("src/arch/x86/_start.s");
|
||||
// kernel.addAssemblyFile("src/arch/x86/gdt.s");
|
||||
// kernel.addAssemblyFile("src/arch/x86/isr.s");
|
||||
// kernel.addAssemblyFile("src/arch/x86/paging.s");
|
||||
kernel.addAssemblyFile("src/arch/x86/gdt.s");
|
||||
kernel.addAssemblyFile("src/arch/x86/isr.s");
|
||||
kernel.addAssemblyFile("src/arch/x86/paging.s");
|
||||
|
||||
kernel.setBuildMode(b.standardReleaseOptions());
|
||||
kernel.setTarget(builtin.Arch.i386, builtin.Os.freestanding, builtin.Abi.none);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
usingnamespace @import("lib/io.zig");
|
||||
usingnamespace @import("lib/instructions.zig");
|
||||
usingnamespace @import("main.zig");
|
||||
|
||||
const memory = @import("memory.zig");
|
||||
const paging = @import("paging.zig");
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
usingnamespace @import("vga.zig");
|
||||
const main = @import("main.zig");
|
||||
const multiboot = @import("multiboot.zig");
|
||||
const console = @import("console.zig");
|
||||
const pci = @import("pci.zig");
|
||||
const ps2 = @import("ps2.zig");
|
||||
pub usingnamespace @import("vga.zig");
|
||||
pub const main = @import("main.zig");
|
||||
pub const multiboot = @import("multiboot.zig");
|
||||
pub const console = @import("console.zig");
|
||||
pub const pci = @import("pci.zig");
|
||||
pub const ps2 = @import("ps2.zig");
|
||||
|
||||
const assert = @import("std").debug.assert;
|
||||
pub const assert = @import("std").debug.assert;
|
||||
|
|
|
|||
22
src/main.zig
22
src/main.zig
|
|
@ -1,9 +1,27 @@
|
|||
usingnamespace @import("kernel");
|
||||
|
||||
const x86 = @import("x86");
|
||||
|
||||
export var stack_bytes: [16 * 1024]u8 align(16) linksection(".bss") = undefined;
|
||||
const stack_bytes_slice = stack_bytes[0..];
|
||||
|
||||
// linker.ld entrypoint
|
||||
export nakedcc fn _start() noreturn {
|
||||
// ebx -> multiboot info
|
||||
const info: u32 = asm volatile (""
|
||||
: [result] "={ebx}" (-> u32)
|
||||
);
|
||||
// eax -> multiboot magic
|
||||
const magic: u32 = asm volatile (""
|
||||
: [result] "={eax}" (-> u32)
|
||||
);
|
||||
@newStackCall(stack_bytes_slice, kmain, magic, @intToPtr(*const multiboot.MultibootInfo, info));
|
||||
while (true) {}
|
||||
}
|
||||
|
||||
// arch independant initialization
|
||||
export fn kmain(magic: u32, info: *const MultibootInfo) noreturn {
|
||||
assert(magic == MULTIBOOT_BOOTLOADER_MAGIC);
|
||||
fn kmain(magic: u32, info: *const multiboot.MultibootInfo) noreturn {
|
||||
assert(magic == multiboot.MULTIBOOT_BOOTLOADER_MAGIC);
|
||||
|
||||
clear();
|
||||
println("--- x86 initialization ---");
|
||||
|
|
|
|||
Loading…
Reference in a new issue