Add Storage and UpgradeStorage to Env
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
extern crate lang_items;
|
||||
|
||||
use core::fmt::Write;
|
||||
use ctap2::embedded_flash::new_storage;
|
||||
use ctap2::env::tock::steal_storage;
|
||||
use libtock_drivers::console::Console;
|
||||
use libtock_drivers::led;
|
||||
use libtock_drivers::result::FlexUnwrap;
|
||||
@@ -37,7 +37,7 @@ fn is_page_erased(storage: &dyn Storage, page: usize) -> bool {
|
||||
|
||||
fn main() {
|
||||
led::get(1).flex_unwrap().on().flex_unwrap(); // red on dongle
|
||||
let mut storage = new_storage().unwrap();
|
||||
let mut storage = unsafe { steal_storage() }.unwrap();
|
||||
let num_pages = storage.num_pages();
|
||||
writeln!(Console::new(), "Erase {} pages of storage:", num_pages).unwrap();
|
||||
for page in 0..num_pages {
|
||||
|
||||
@@ -21,7 +21,8 @@ use alloc::string::{String, ToString};
|
||||
use alloc::vec::Vec;
|
||||
use alloc::{format, vec};
|
||||
use core::fmt::Write;
|
||||
use ctap2::embedded_flash::{new_storage, Storage};
|
||||
use ctap2::env::tock::{steal_storage, TockEnv};
|
||||
use ctap2::env::Env;
|
||||
use libtock_drivers::console::Console;
|
||||
use libtock_drivers::timer::{self, Duration, Timer, Timestamp};
|
||||
use persistent_store::Store;
|
||||
@@ -40,9 +41,9 @@ fn measure<T>(timer: &Timer, operation: impl FnOnce() -> T) -> (T, Duration<f64>
|
||||
}
|
||||
|
||||
// Only use one store at a time.
|
||||
unsafe fn boot_store(erase: bool) -> Store<Storage> {
|
||||
unsafe fn boot_store(erase: bool) -> Store<<TockEnv as Env>::Storage> {
|
||||
use persistent_store::Storage;
|
||||
let mut storage = new_storage().unwrap();
|
||||
let mut storage = steal_storage().unwrap();
|
||||
let num_pages = storage.num_pages();
|
||||
if erase {
|
||||
for page in 0..num_pages {
|
||||
@@ -59,7 +60,7 @@ struct StorageConfig {
|
||||
|
||||
fn storage_config() -> StorageConfig {
|
||||
use persistent_store::Storage;
|
||||
let storage = new_storage().unwrap();
|
||||
let storage = unsafe { steal_storage() }.unwrap();
|
||||
StorageConfig {
|
||||
num_pages: storage.num_pages(),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user