Briefly checks if the given memory region is valid user memory.
(start: usize, len: usize)
| 367 | |
| 368 | /// Briefly checks if the given memory region is valid user memory. |
| 369 | pub fn check_access(start: usize, len: usize) -> VmResult { |
| 370 | const USER_SPACE_END: usize = USER_SPACE_BASE + USER_SPACE_SIZE; |
| 371 | let ok = (USER_SPACE_BASE..USER_SPACE_END).contains(&start) && (USER_SPACE_END - start) >= len; |
| 372 | if unlikely(!ok) { |
| 373 | Err(VmError::AccessDenied) |
| 374 | } else { |
| 375 | Ok(()) |
| 376 | } |
| 377 | } |
| 378 | |
| 379 | #[extern_trait] |
| 380 | unsafe impl VmIo for Vm { |