Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions hal-x86_64/src/cpu.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use core::mem;
use core::fmt;
use core::mem;

#[repr(transparent)]
pub struct Port {
Expand All @@ -21,12 +21,12 @@ impl Port {

pub unsafe fn readb(&self) -> u8 {
let result: u8;
asm!("inb %dx, %al" : "={al}"(result) : "{dx}"(self.num) :: "volatile");
asm!("in al, dx" : "={al}"(result) : "{dx}"(self.num) :: "volatile", "intel");
result
}

pub unsafe fn writeb(&self, value: u8) {
asm!("outb %al, %dx" :: "{dx}"(self.num), "{al}"(value) :: "volatile");
asm!("out dx, al" :: "{dx}"(self.num), "{al}"(value) :: "volatile", "intel");
}
// TODO(ixi): anything wider than a byte lol
}
Expand Down
2 changes: 1 addition & 1 deletion hal-x86_64/src/interrupt/idt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ impl Idt {

pub fn load(&'static self) {
let ptr = crate::cpu::DtablePtr::new(self);
unsafe { asm!("lidt ($0)" :: "r" (&ptr) : "memory") }
unsafe { asm!("lidt [$0]" :: "r" (&ptr) : "memory" : "intel") }
}
}

Expand Down
2 changes: 1 addition & 1 deletion hal-x86_64/src/segment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub struct Selector(u16);
/// Returns the current code segment selector in `%cs`.
pub fn code_segment() -> Selector {
let value: u16;
unsafe { asm!("mov %cs, $0" : "=r" (value)) };
unsafe { asm!("mov $0, cs" : "=r" (value) ::: "intel") };
Selector(value)
}

Expand Down
1 change: 1 addition & 0 deletions src/arch/x86_64.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ pub fn oops(cause: &dyn core::fmt::Display) -> ! {
vga.set_color(vga::ColorSpec::new(vga::Color::Red, vga::Color::White));
let _ = vga.write_str("OOPSIE WOOPSIE");
vga.set_color(RED_BG);

let _ = writeln!(vga, "\n uwu we did a widdle fucky-wucky!\n{}", cause);
let _ = vga.write_str("\n it will never be safe to turn off your computer.");

Expand Down