mirror of
https://github.com/LearningOS/rust-based-os-comp2022.git
synced 2026-05-08 23:01:31 +08:00
37 lines
808 B
Rust
37 lines
808 B
Rust
#![no_std]
|
|
#![no_main]
|
|
|
|
#[macro_use]
|
|
extern crate user_lib;
|
|
|
|
use user_lib::{mmap, munmap};
|
|
|
|
/*
|
|
理想结果:输出 Test 04_5 ummap OK!
|
|
*/
|
|
|
|
#[no_mangle]
|
|
fn main() -> i32 {
|
|
let start: usize = 0x10000000;
|
|
let len: usize = 4096;
|
|
let prot: usize = 3;
|
|
assert_eq!(0, mmap(start, len, prot));
|
|
assert_eq!(mmap(start + len, len * 2, prot), 0);
|
|
assert_eq!(munmap(start, len), 0);
|
|
assert_eq!(mmap(start - len, len + 1, prot), 0);
|
|
for i in (start - len)..(start + len * 3) {
|
|
let addr: *mut u8 = i as *mut u8;
|
|
unsafe {
|
|
*addr = i as u8;
|
|
}
|
|
}
|
|
for i in (start - len)..(start + len * 3) {
|
|
let addr: *mut u8 = i as *mut u8;
|
|
unsafe {
|
|
assert_eq!(*addr, i as u8);
|
|
}
|
|
}
|
|
println!("Test 04_5 ummap OK!");
|
|
0
|
|
}
|