Try batch but kernel panicked.

This commit is contained in:
Yifan Wu 2020-11-19 18:01:16 +08:00
parent 220397e5a5
commit bae5383602
11 changed files with 385 additions and 17 deletions

View file

@ -11,8 +11,8 @@ mod lang_items;
#[no_mangle]
#[link_section = ".text.entry"]
pub extern "C" fn _start() -> ! {
main();
loop {}
syscall::sys_exit(main());
panic!("unreachable after sys_exit!");
}
#[linkage = "weak"]

View file

@ -1,6 +1,7 @@
pub const STDOUT: usize = 1;
const SYSCALL_WRITE: usize = 64;
const SYSCALL_EXIT: usize = 93;
fn syscall(id: usize, args: [usize; 3]) -> isize {
let mut ret: isize;
@ -17,4 +18,8 @@ fn syscall(id: usize, args: [usize; 3]) -> isize {
pub fn sys_write(fd: usize, buffer: &[u8]) -> isize {
syscall(SYSCALL_WRITE, [fd, buffer.as_ptr() as usize, buffer.len()])
}
}
pub fn sys_exit(xstate: i32) -> isize {
syscall(SYSCALL_EXIT, [xstate as usize, 0, 0])
}