Home | History | Annotate | Download | only in pmap

Lines Matching defs:pvt

80 	struct pv_track *pvt;
90 pvt = kmem_zalloc(offsetof(struct pv_track, pvt_pages[npages]),
92 pvt->pvt_start = start;
93 pvt->pvt_size = size;
97 PMAP_PAGE_INIT(&pvt->pvt_pages[i]);
101 pvt->pvt_next = pv_unmanaged.list;
102 atomic_store_release(&pv_unmanaged.list, pvt);
109 struct pv_track **pvtp, *pvt;
120 (pvt = *pvtp) != NULL;
121 pvtp = &pvt->pvt_next) {
122 if (pvt->pvt_start != start)
124 if (pvt->pvt_size != size)
127 pvt->pvt_start, pvt->pvt_size, size);
133 atomic_store_relaxed(pvtp, pvt->pvt_next);
139 * We now have exclusive access to pvt and can destroy
142 explicit_memset(&pvt->pvt_next, 0x1a, sizeof pvt->pvt_next);
151 kmem_free(pvt, offsetof(struct pv_track, pvt_pages[npages]));
157 struct pv_track *pvt;
164 for (pvt = atomic_load_consume(&pv_unmanaged.list);
165 pvt != NULL;
166 pvt = pvt->pvt_next) {
167 if ((pvt->pvt_start <= pa) &&
168 ((pa - pvt->pvt_start) < pvt->pvt_size))
173 if (pvt == NULL)
175 KASSERT(pvt->pvt_start <= pa);
176 KASSERT((pa - pvt->pvt_start) < pvt->pvt_size);
177 pgno = (pa - pvt->pvt_start) >> PAGE_SHIFT;
178 return &pvt->pvt_pages[pgno];