Split kernel/user trap handler && Fix user tests.

This commit is contained in:
Yifan Wu 2020-12-07 18:57:23 +08:00
parent f54573ae15
commit 8ee3671269
13 changed files with 45 additions and 161 deletions

View file

@ -6,24 +6,24 @@ extern crate user_lib;
const LEN: usize = 100;
static mut s: [u64; LEN] = [0u64; LEN];
static mut S: [u64; LEN] = [0u64; LEN];
#[no_mangle]
unsafe fn main() -> i32 {
let p = 3u64;
let m = 998244353u64;
let iter: usize = 100000;
let iter: usize = 300000;
let mut cur = 0usize;
s[cur] = 1;
S[cur] = 1;
for i in 1..=iter {
let next = if cur + 1 == LEN { 0 } else { cur + 1 };
s[next] = s[cur] * p % m;
S[next] = S[cur] * p % m;
cur = next;
if i % 10000 == 0 {
println!("power_3 [{}/{}]", i, iter);
}
}
println!("{}^{} = {}", p, iter, s[cur]);
println!("{}^{} = {}(mod {})", p, iter, S[cur], m);
println!("Test power_3 OK!");
0
}

View file

@ -6,24 +6,24 @@ extern crate user_lib;
const LEN: usize = 100;
static mut s: [u64; LEN] = [0u64; LEN];
static mut S: [u64; LEN] = [0u64; LEN];
#[no_mangle]
unsafe fn main() -> i32 {
let p = 5u64;
let m = 998244353u64;
let iter: usize = 70000;
let iter: usize = 210000;
let mut cur = 0usize;
s[cur] = 1;
S[cur] = 1;
for i in 1..=iter {
let next = if cur + 1 == LEN { 0 } else { cur + 1 };
s[next] = s[cur] * p % m;
S[next] = S[cur] * p % m;
cur = next;
if i % 10000 == 0 {
println!("power_5 [{}/{}]", i, iter);
}
}
println!("{}^{} = {}", p, iter, s[cur]);
println!("{}^{} = {}(mod {})", p, iter, S[cur], m);
println!("Test power_5 OK!");
0
}

View file

@ -6,24 +6,24 @@ extern crate user_lib;
const LEN: usize = 100;
static mut s: [u64; LEN] = [0u64; LEN];
static mut S: [u64; LEN] = [0u64; LEN];
#[no_mangle]
unsafe fn main() -> i32 {
let p = 7u64;
let m = 998244353u64;
let iter: usize = 80000;
let iter: usize = 240000;
let mut cur = 0usize;
s[cur] = 1;
S[cur] = 1;
for i in 1..=iter {
let next = if cur + 1 == LEN { 0 } else { cur + 1 };
s[next] = s[cur] * p % m;
S[next] = S[cur] * p % m;
cur = next;
if i % 10000 == 0 {
println!("power_7 [{}/{}]", i, iter);
}
}
println!("{}^{} = {}", p, iter, s[cur]);
println!("{}^{} = {}(mod {})", p, iter, S[cur], m);
println!("Test power_7 OK!");
0
}