* add a wired page to the kva */
| 819 | * add a wired page to the kva |
| 820 | */ |
| 821 | void |
| 822 | pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, vm_memattr_t ma) |
| 823 | { |
| 824 | pt_entry_t *pte; |
| 825 | pt_entry_t opte, npte; |
| 826 | |
| 827 | #ifdef PMAP_DEBUG |
| 828 | printf("pmap_kenter: va: %p -> pa: %p\n", (void *)va, (void *)pa); |
| 829 | #endif |
| 830 | |
| 831 | pte = pmap_pte(kernel_pmap, va); |
| 832 | opte = *pte; |
| 833 | npte = TLBLO_PA_TO_PFN(pa) | PTE_C(ma) | PTE_D | PTE_V | PTE_G; |
| 834 | *pte = npte; |
| 835 | if (pte_test(&opte, PTE_V) && opte != npte) |
| 836 | pmap_update_page(kernel_pmap, va, npte); |
| 837 | } |
| 838 | |
| 839 | void |
| 840 | pmap_kenter(vm_offset_t va, vm_paddr_t pa) |
no test coverage detected