MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pmap_pv_insert_pte1

Function pmap_pv_insert_pte1

freebsd/arm/arm/pmap-v6.c:3237–3253  ·  view source on GitHub ↗

* Create the pv entries for each of the pages within a section. */

Source from the content-addressed store, hash-verified

3235 * Create the pv entries for each of the pages within a section.
3236 */
3237static bool
3238pmap_pv_insert_pte1(pmap_t pmap, vm_offset_t va, pt1_entry_t pte1, u_int flags)
3239{
3240 struct md_page *pvh;
3241 pv_entry_t pv;
3242 bool noreclaim;
3243
3244 rw_assert(&pvh_global_lock, RA_WLOCKED);
3245 noreclaim = (flags & PMAP_ENTER_NORECLAIM) != 0;
3246 if ((noreclaim && pv_entry_count >= pv_entry_high_water) ||
3247 (pv = get_pv_entry(pmap, noreclaim)) == NULL)
3248 return (false);
3249 pv->pv_va = va;
3250 pvh = pa_to_pvh(pte1_pa(pte1));
3251 TAILQ_INSERT_TAIL(&pvh->pv_list, pv, pv_next);
3252 return (true);
3253}
3254
3255static inline void
3256pmap_tlb_flush_pte1(pmap_t pmap, vm_offset_t va, pt1_entry_t npte1)

Callers 2

pmap_enter_pte1Function · 0.85
pmap_copyFunction · 0.85

Calls 3

pa_to_pvhFunction · 0.85
pte1_paFunction · 0.85
get_pv_entryFunction · 0.70

Tested by

no test coverage detected