Lines Matching +full:- +full:t
1 // Copyright (c) 2017-2021 Linaro LTD
2 // Copyright (c) 2017-2018 JUUL Labs
4 // SPDX-License-Identifier: Apache-2.0
30 pub type Result<T> = std::result::Result<T, FlashError>;
44 // Transition from error-chain.
55 fn erase(&mut self, offset: usize, len: usize) -> Result<()>; in erase()
56 fn write(&mut self, offset: usize, payload: &[u8]) -> Result<()>; in write()
57 fn read(&self, offset: usize, data: &mut [u8]) -> Result<()>; in read()
59 fn add_bad_region(&mut self, offset: usize, len: usize, rate: f32) -> Result<()>; in add_bad_region()
64 fn sector_iter(&self) -> SectorIter<'_>; in sector_iter()
65 fn device_size(&self) -> usize; in device_size()
67 fn align(&self) -> usize; in align()
68 fn erased_val(&self) -> u8; in erased_val()
71 fn ebounds<T: AsRef<str>>(message: T) -> FlashError { in ebounds()
76 fn ewrite<T: AsRef<str>>(message: T) -> FlashError { in ewrite()
81 fn esimulatedwrite<T: AsRef<str>>(message: T) -> FlashError { in esimulatedwrite()
101 pub fn new(sectors: Vec<usize>, align: usize, erased_val: u8) -> SimFlash { in new()
104 assert!(align & (align - 1) == 0); in new()
125 pub fn write_file<P: AsRef<Path>>(&self, path: P) -> Result<()> { in write_file()
133 fn get_sector(&self, offset: usize) -> Option<(usize, usize)> { in get_sector()
139 offset -= size; in get_sector()
152 fn erase(&mut self, offset: usize, len: usize) -> Result<()> { in erase()
154 let (end, elen) = self.get_sector(offset + len - 1).ok_or_else(|| ebounds("end"))?; in erase()
159 if elen != self.sectors[end] - 1 { in erase()
182 fn write(&mut self, offset: usize, payload: &[u8]) -> Result<()> { in write()
189 format!("Ignoring write to {:#x}-{:#x}", off, off + len))); in write()
199 if offset & (self.align - 1) != 0 { in write()
203 if payload.len() & (self.align - 1) != 0 { in write()
220 fn read(&self, offset: usize, data: &mut [u8]) -> Result<()> { in read()
232 fn add_bad_region(&mut self, offset: usize, len: usize, rate: f32) -> Result<()> { in add_bad_region()
237 info!("Adding new bad region {:#x}-{:#x}", offset, offset + len); in add_bad_region()
252 fn sector_iter(&self) -> SectorIter<'_> { in sector_iter()
259 fn device_size(&self) -> usize { in device_size()
263 fn align(&self) -> usize { in align()
267 fn erased_val(&self) -> u8 { in erased_val()
291 fn next(&mut self) -> Option<Sector> { in next()
314 // NXP-style, uniform sectors. in test_flash()
318 // STM style, non-uniform sectors. in test_flash()
331 assert!(flash.erase(0, sectors[0].size - 1).is_bounds()); in test_device()
348 flash.write(sector.base + sector.size - 1, &byte).unwrap(); in test_device()
359 assert!(buf[1..buf.len()-1].iter().all(|&x| x == erased_val)); in test_device()
365 fn is_bounds(&self) -> bool; in is_bounds()
368 impl<T> EChecker for Result<T> {
370 fn is_bounds(&self) -> bool { in is_bounds()