Fills the range `[addr, addr + len)` with `val`.
(&mut self, addr: usize, len: usize, val: u8)
| 72 | |
| 73 | /// Fills the range `[addr, addr + len)` with `val`. |
| 74 | fn fill(&mut self, addr: usize, len: usize, val: u8) -> Option<()> { |
| 75 | let end = addr.checked_add(len)?; |
| 76 | if end > self.len() { |
| 77 | return None; |
| 78 | } |
| 79 | |
| 80 | let mut offset = 0; |
| 81 | while offset < len { |
| 82 | let chunk_len = min(len - offset, 1024); |
| 83 | let chunk = vec![val; chunk_len]; |
| 84 | self.write_all(addr + offset, &chunk)?; |
| 85 | offset += chunk_len; |
| 86 | } |
| 87 | |
| 88 | Some(()) |
| 89 | } |
| 90 | |
| 91 | /// Copies `len` bytes from `src` to `dst` within the same memory. |
| 92 | fn copy_within(&mut self, dst: usize, src: usize, len: usize) -> Option<()> { |