Skip to content

Commit

Permalink
Add ability to get more storage information. (#637)
Browse files Browse the repository at this point in the history
This adds parameters to the storage location syscalls to specify which
storage location to get the address and size for.
  • Loading branch information
zhalvorsen authored Jun 29, 2023
1 parent f0e87ee commit a274a51
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions src/env/tock/storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ impl<S: Syscalls, C: platform::subscribe::Config + platform::allow_ro::Config> T
if !matches!(storage_type, StorageType::Store) {
continue;
}
let storage_ptr = to_storage_result(LibtockStorage::<S, C>::storage_ptr())?;
let storage_len = to_storage_result(LibtockStorage::<S, C>::storage_len())?;
let storage_ptr = to_storage_result(LibtockStorage::<S, C>::storage_ptr(i))?;
let storage_len = to_storage_result(LibtockStorage::<S, C>::storage_len(i))?;
if !syscall.is_page_aligned(storage_ptr) || !syscall.is_page_aligned(storage_len) {
return Err(StorageError::CustomError);
}
Expand Down Expand Up @@ -210,8 +210,8 @@ where
if !matches!(storage_type, StorageType::Partition) {
continue;
};
let storage_ptr = to_storage_result(LibtockStorage::<S, C>::storage_ptr())?;
let storage_len = to_storage_result(LibtockStorage::<S, C>::storage_len())?;
let storage_ptr = to_storage_result(LibtockStorage::<S, C>::storage_ptr(i))?;
let storage_len = to_storage_result(LibtockStorage::<S, C>::storage_len(i))?;
if !locations.is_page_aligned(storage_ptr) || !locations.is_page_aligned(storage_len) {
return Err(StorageError::CustomError);
}
Expand Down
8 changes: 4 additions & 4 deletions third_party/libtock-drivers/src/storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -147,12 +147,12 @@ impl<S: Syscalls, C: platform::subscribe::Config + platform::allow_ro::Config> S
Ok(Self::memop(memop_nr::STORAGE_CNT, 0)? as usize)
}

pub fn storage_ptr() -> TockResult<usize> {
Ok(Self::memop(memop_nr::STORAGE_PTR, 0)? as usize)
pub fn storage_ptr(index: usize) -> TockResult<usize> {
Ok(Self::memop(memop_nr::STORAGE_PTR, index as u32)? as usize)
}

pub fn storage_len() -> TockResult<usize> {
Ok(Self::memop(memop_nr::STORAGE_LEN, 0)? as usize)
pub fn storage_len(index: usize) -> TockResult<usize> {
Ok(Self::memop(memop_nr::STORAGE_LEN, index as u32)? as usize)
}

pub fn storage_type(index: usize) -> TockResult<StorageType> {
Expand Down

0 comments on commit a274a51

Please sign in to comment.