MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / _pgmgr_pop_range

Function _pgmgr_pop_range

components/mm/mm_anon.c:143–162  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141}
142
143static void _pgmgr_pop_range(rt_varea_t varea, void *rm_start, void *rm_end)
144{
145 void *page_va;
146
147 RT_ASSERT(!((rt_ubase_t)rm_start & ARCH_PAGE_MASK));
148 RT_ASSERT(!((rt_ubase_t)rm_end & ARCH_PAGE_MASK));
149 while (rm_start != rm_end)
150 {
151 page_va = rt_hw_mmu_v2p(varea->aspace, rm_start);
152
153 if (page_va != ARCH_MAP_FAILED)
154 {
155 page_va -= PV_OFFSET;
156 LOG_D("%s: free page %p", __func__, page_va);
157 rt_varea_unmap_page(varea, rm_start);
158 rt_pages_free(page_va, 0);
159 }
160 rm_start += ARCH_PAGE_SIZE;
161 }
162}
163
164static const char *_anon_get_name(rt_varea_t varea)
165{

Callers 2

_anon_varea_shrinkFunction · 0.85
_anon_varea_splitFunction · 0.85

Calls 3

rt_varea_unmap_pageFunction · 0.85
rt_pages_freeFunction · 0.85
rt_hw_mmu_v2pFunction · 0.50

Tested by

no test coverage detected