36 lines
No EOL
753 B
Rust
36 lines
No EOL
753 B
Rust
#![no_std]
|
|
#![no_main]
|
|
|
|
#[macro_use]
|
|
extern crate user_lib;
|
|
|
|
use user_lib::{
|
|
OpenFlags,
|
|
open,
|
|
close,
|
|
write,
|
|
get_time,
|
|
};
|
|
|
|
#[no_mangle]
|
|
pub fn main() -> i32 {
|
|
let mut buffer = [0u8; 1024]; // 1KiB
|
|
for i in 0..buffer.len() {
|
|
buffer[i] = i as u8;
|
|
}
|
|
let f = open("testf", OpenFlags::CREATE | OpenFlags::WRONLY);
|
|
if f < 0 {
|
|
panic!("Open test file failed!");
|
|
}
|
|
let f = f as usize;
|
|
let start = get_time();
|
|
let size_mb = 5usize;
|
|
for _ in 0..1024*size_mb {
|
|
write(f, &buffer);
|
|
}
|
|
close(f);
|
|
let time_ms = (get_time() - start) as usize;
|
|
let speed_kbs = size_mb * 1000000 / time_ms;
|
|
println!("time cost = {}ms, write speed = {}KiB/s", time_ms, speed_kbs);
|
|
0
|
|
} |