| 31 | self.data.len() |
| 32 | } |
| 33 | fn read(&self, start: usize, buffer: &mut [u8]) -> Result<usize, syscalls::SyscallError> { |
| 34 | let end = cmp::min(start + buffer.len(), self.data.len()); |
| 35 | if start >= end { |
| 36 | return Err(syscalls::SYSCALL_ERROR_NO_DATA); |
| 37 | } |
| 38 | let size = end - start; |
| 39 | println!("[ramdisk] Reading {} bytes", size); |
| 40 | buffer[..size].copy_from_slice(&self.data[start..end]); |
| 41 | Ok(size) |
| 42 | } |
| 43 | fn write(&mut self, start: usize, buffer: &[u8]) -> Result<usize, syscalls::SyscallError> { |
| 44 | println!("[ramdisk] Writing {} bytes", buffer.len()); |
| 45 | self.data.extend_from_slice(buffer); |