@@ -9,4 +9,4 @@ fn main() -> i32 {
|
||||
println!("Hello, world!");
|
||||
|
||||
0
|
||||
}
|
||||
}
|
||||
|
@@ -14,4 +14,4 @@ fn main() -> i32 {
|
||||
asm!("sret");
|
||||
}
|
||||
0
|
||||
}
|
||||
}
|
||||
|
@@ -24,4 +24,4 @@ fn main() -> i32 {
|
||||
}
|
||||
println!("Test power OK!");
|
||||
0
|
||||
}
|
||||
}
|
||||
|
@@ -12,4 +12,4 @@ fn main() -> i32 {
|
||||
core::ptr::null_mut::<u8>().write_volatile(0);
|
||||
}
|
||||
0
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
use core::fmt::Write;
|
||||
use crate::syscall::sys_write;
|
||||
use core::fmt::Write;
|
||||
|
||||
struct Stdout;
|
||||
|
||||
@@ -29,4 +29,4 @@ macro_rules! println {
|
||||
($fmt: literal $(, $($arg: tt)+)?) => {
|
||||
$crate::console::print(format_args!(concat!($fmt, "\n") $(, $($arg)+)?));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -3,8 +3,8 @@
|
||||
|
||||
use crate::syscall::{sys_exit, sys_write};
|
||||
|
||||
mod utils;
|
||||
mod syscall;
|
||||
mod utils;
|
||||
#[macro_use]
|
||||
pub mod console;
|
||||
|
||||
@@ -28,4 +28,3 @@ pub fn write(fd: usize, buf: &[u8]) -> isize {
|
||||
pub fn exit(exit_code: i32) -> isize {
|
||||
sys_exit(exit_code)
|
||||
}
|
||||
|
||||
|
@@ -4,7 +4,7 @@ const SYSCALL_WRITE: usize = 64;
|
||||
const SYSCALL_EXIT: usize = 93;
|
||||
|
||||
fn syscall(id: usize, args: [usize; 3]) -> isize {
|
||||
let mut result : isize;
|
||||
let mut result: isize;
|
||||
|
||||
unsafe {
|
||||
asm!(
|
||||
@@ -25,4 +25,4 @@ pub fn sys_write(fd: usize, buffer: &[u8]) -> isize {
|
||||
|
||||
pub fn sys_exit(exit_code: i32) -> isize {
|
||||
syscall(SYSCALL_EXIT, [exit_code as usize, 0, 0])
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
use core::panic::PanicInfo;
|
||||
use crate::println;
|
||||
use core::panic::PanicInfo;
|
||||
|
||||
pub fn clear_bss() {
|
||||
extern "C" {
|
||||
@@ -9,9 +9,7 @@ pub fn clear_bss() {
|
||||
}
|
||||
|
||||
for i in start_bss as usize..end_bss as usize {
|
||||
unsafe {
|
||||
(i as *mut u8).write_volatile(0)
|
||||
}
|
||||
unsafe { (i as *mut u8).write_volatile(0) }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,10 +18,15 @@ fn panic_handler(info: &PanicInfo) -> ! {
|
||||
let message = info.message();
|
||||
|
||||
if let Some(location) = info.location() {
|
||||
println!("Panicked at {}:{} {}", location.file(), location.line(), message);
|
||||
println!(
|
||||
"Panicked at {}:{} {}",
|
||||
location.file(),
|
||||
location.line(),
|
||||
message
|
||||
);
|
||||
} else {
|
||||
println!("Panicked: {}", message);
|
||||
}
|
||||
|
||||
unreachable!()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user