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

Function _pgmgr_pop_all

components/mm/mm_anon.c:121–141  ·  view source on GitHub ↗

* Private unmapping of address space */

Source from the content-addressed store, hash-verified

119 * Private unmapping of address space
120 */
121static void _pgmgr_pop_all(rt_varea_t varea)
122{
123 rt_aspace_t aspace = varea->aspace;
124 char *iter = varea->start;
125 char *end_addr = iter + varea->size;
126
127 RT_ASSERT(iter < end_addr);
128 RT_ASSERT(!((long)iter & ARCH_PAGE_MASK));
129 RT_ASSERT(!((long)end_addr & ARCH_PAGE_MASK));
130
131 for (; iter != end_addr; iter += ARCH_PAGE_SIZE)
132 {
133 void *page_pa = rt_hw_mmu_v2p(aspace, iter);
134 char *page_va = rt_kmem_p2v(page_pa);
135 if (page_pa != ARCH_MAP_FAILED && page_va)
136 {
137 rt_varea_unmap_page(varea, iter);
138 rt_pages_free(page_va, 0);
139 }
140 }
141}
142
143static void _pgmgr_pop_range(rt_varea_t varea, void *rm_start, void *rm_end)
144{

Callers 1

_anon_varea_closeFunction · 0.85

Calls 4

rt_kmem_p2vFunction · 0.85
rt_varea_unmap_pageFunction · 0.85
rt_pages_freeFunction · 0.85
rt_hw_mmu_v2pFunction · 0.50

Tested by

no test coverage detected