mirror of
https://github.com/rcore-os/rCore.git
synced 2024-11-25 17:33:28 +04:00
aarch64: remove test functions
This commit is contained in:
parent
163e092c29
commit
4f592336ff
@ -40,62 +40,6 @@ pub fn show_logo() {
|
|||||||
println!("{}", LOGO);
|
println!("{}", LOGO);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline(always)]
|
|
||||||
fn sys_call(id: usize, arg0: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) -> i32 {
|
|
||||||
let ret: i32;
|
|
||||||
unsafe {
|
|
||||||
#[cfg(target_arch = "riscv32")]
|
|
||||||
asm!("ecall"
|
|
||||||
: "={x10}" (ret)
|
|
||||||
: "{x10}" (id), "{x11}" (arg0), "{x12}" (arg1), "{x13}" (arg2), "{x14}" (arg3), "{x15}" (arg4), "{x16}" (arg5)
|
|
||||||
: "memory"
|
|
||||||
: "volatile");
|
|
||||||
#[cfg(target_arch = "x86_64")]
|
|
||||||
asm!("int 0x40"
|
|
||||||
: "={rax}" (ret)
|
|
||||||
: "{rax}" (id), "{rdi}" (arg0), "{rsi}" (arg1), "{rdx}" (arg2), "{rcx}" (arg3), "{r8}" (arg4), "{r9}" (arg5)
|
|
||||||
: "memory"
|
|
||||||
: "intel" "volatile");
|
|
||||||
#[cfg(target_arch = "aarch64")]
|
|
||||||
asm!("svc 0"
|
|
||||||
: "={x0}" (ret)
|
|
||||||
: "{x8}" (id), "{x0}" (arg0), "{x1}" (arg1), "{x2}" (arg2), "{x3}" (arg3), "{x4}" (arg4), "{x5}" (arg5)
|
|
||||||
: "memory"
|
|
||||||
: "volatile");
|
|
||||||
}
|
|
||||||
ret
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn test_shell(prefix: &str) -> ! {
|
|
||||||
show_logo();
|
|
||||||
loop {
|
|
||||||
print!("{}", prefix);
|
|
||||||
loop {
|
|
||||||
let c = super::arch::io::getchar();
|
|
||||||
match c {
|
|
||||||
'\u{7f}' => {
|
|
||||||
print!("\u{7f}");
|
|
||||||
}
|
|
||||||
'c' => unsafe {
|
|
||||||
print!("sys_putc: ");
|
|
||||||
sys_call(30, 'A' as usize, 0, 0, 0, 0, 0);
|
|
||||||
},
|
|
||||||
't' => unsafe {
|
|
||||||
println!("sys_get_time: {}", sys_call(17, 0, 0, 0, 0, 0, 0));
|
|
||||||
},
|
|
||||||
' '...'\u{7e}' => {
|
|
||||||
print!("{}", c);
|
|
||||||
}
|
|
||||||
'\n' | '\r' => {
|
|
||||||
print!("\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
_ => {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn shell() {
|
pub fn shell() {
|
||||||
show_logo();
|
show_logo();
|
||||||
|
|
||||||
|
@ -68,14 +68,9 @@ pub mod arch;
|
|||||||
|
|
||||||
pub fn kmain() -> ! {
|
pub fn kmain() -> ! {
|
||||||
process::init();
|
process::init();
|
||||||
|
|
||||||
use process::*;
|
|
||||||
processor().add(Context::new_kernel(kernel_proc2, 2333));
|
|
||||||
processor().add(Context::new_user_test(kernel_proc3));
|
|
||||||
|
|
||||||
unsafe { arch::interrupt::enable(); }
|
unsafe { arch::interrupt::enable(); }
|
||||||
|
|
||||||
// fs::shell();
|
fs::shell();
|
||||||
|
|
||||||
// thread::test::local_key();
|
// thread::test::local_key();
|
||||||
// thread::test::unpack();
|
// thread::test::unpack();
|
||||||
@ -93,12 +88,3 @@ pub fn kmain() -> ! {
|
|||||||
/// It should be defined in memory mod, but in Rust `global_allocator` must be in root mod.
|
/// It should be defined in memory mod, but in Rust `global_allocator` must be in root mod.
|
||||||
#[global_allocator]
|
#[global_allocator]
|
||||||
static HEAP_ALLOCATOR: LockedHeap = LockedHeap::empty();
|
static HEAP_ALLOCATOR: LockedHeap = LockedHeap::empty();
|
||||||
|
|
||||||
|
|
||||||
pub extern "C" fn kernel_proc2(arg: usize) -> ! {
|
|
||||||
fs::test_shell(&format!("proc2-{}>> ", arg));
|
|
||||||
}
|
|
||||||
|
|
||||||
pub extern "C" fn kernel_proc3(arg: usize) -> ! {
|
|
||||||
fs::test_shell(&format!("proc3-{}$ ", arg));
|
|
||||||
}
|
|
||||||
|
@ -33,15 +33,6 @@ impl Context {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new_user_test(entry: extern fn(usize) -> !) -> Self {
|
|
||||||
let ms = MemorySet::new();
|
|
||||||
let user_stack = ::memory::alloc_stack();
|
|
||||||
Context {
|
|
||||||
arch: unsafe { ArchContext::new_user_thread(entry as usize, user_stack.top - 8, ms.kstack_top(), false, ms.token()) },
|
|
||||||
memory_set: ms,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Make a new user thread from ELF data
|
/// Make a new user thread from ELF data
|
||||||
pub fn new_user(data: &[u8]) -> Self {
|
pub fn new_user(data: &[u8]) -> Self {
|
||||||
// Parse elf
|
// Parse elf
|
||||||
|
Loading…
Reference in New Issue
Block a user