From b1b26fd7886a54fd95b52c3b539d30c1efb5b4e6 Mon Sep 17 00:00:00 2001 From: Yifan Wu Date: Tue, 18 Jan 2022 04:29:38 -0800 Subject: [PATCH] Remove os/src/loader.rs --- os/src/loader.rs | 62 ------------------------------------------------ 1 file changed, 62 deletions(-) delete mode 100644 os/src/loader.rs diff --git a/os/src/loader.rs b/os/src/loader.rs deleted file mode 100644 index bfdc3970..00000000 --- a/os/src/loader.rs +++ /dev/null @@ -1,62 +0,0 @@ -use alloc::vec::Vec; -use lazy_static::*; - -pub fn get_num_app() -> usize { - extern "C" { fn _num_app(); } - unsafe { (_num_app as usize as *const usize).read_volatile() } -} - -pub fn get_app_data(app_id: usize) -> &'static [u8] { - extern "C" { fn _num_app(); } - let num_app_ptr = _num_app as usize as *const usize; - let num_app = get_num_app(); - let app_start = unsafe { - core::slice::from_raw_parts(num_app_ptr.add(1), num_app + 1) - }; - assert!(app_id < num_app); - unsafe { - core::slice::from_raw_parts( - app_start[app_id] as *const u8, - app_start[app_id + 1] - app_start[app_id] - ) - } -} - -lazy_static! { - static ref APP_NAMES: Vec<&'static str> = { - let num_app = get_num_app(); - extern "C" { fn _app_names(); } - let mut start = _app_names as usize as *const u8; - let mut v = Vec::new(); - unsafe { - for _ in 0..num_app { - let mut end = start; - while end.read_volatile() != '\0' as u8 { - end = end.add(1); - } - let slice = core::slice::from_raw_parts(start, end as usize - start as usize); - let str = core::str::from_utf8(slice).unwrap(); - v.push(str); - start = end.add(1); - } - } - v - }; -} - - -#[allow(unused)] -pub fn get_app_data_by_name(name: &str) -> Option<&'static [u8]> { - let num_app = get_num_app(); - (0..num_app) - .find(|&i| APP_NAMES[i] == name) - .map(|i| get_app_data(i)) -} - -pub fn list_apps() { - println!("/**** APPS ****"); - for app in APP_NAMES.iter() { - println!("{}", app); - } - println!("**************/"); -} \ No newline at end of file