* Look up the given virtual address in the static mapping data and return the * corresponding physical address, or DEVMAP_PADDR_NOTFOUND if not found. */
| 231 | * corresponding physical address, or DEVMAP_PADDR_NOTFOUND if not found. |
| 232 | */ |
| 233 | vm_paddr_t |
| 234 | devmap_vtop(void * vpva, vm_size_t size) |
| 235 | { |
| 236 | const struct devmap_entry *pd; |
| 237 | vm_offset_t va; |
| 238 | |
| 239 | if (devmap_table == NULL) |
| 240 | return (DEVMAP_PADDR_NOTFOUND); |
| 241 | |
| 242 | va = (vm_offset_t)vpva; |
| 243 | for (pd = devmap_table; pd->pd_size != 0; ++pd) { |
| 244 | if (va >= pd->pd_va && va + size <= pd->pd_va + pd->pd_size) |
| 245 | return ((vm_paddr_t)(pd->pd_pa + (va - pd->pd_va))); |
| 246 | } |
| 247 | |
| 248 | return (DEVMAP_PADDR_NOTFOUND); |
| 249 | } |
| 250 | |
| 251 | /* |
| 252 | * Map a set of physical memory pages into the kernel virtual address space. |