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

Function test_varea_map_page

examples/utest/testcases/mm/test_aspace_api.h:172–193  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

170}
171
172static void test_varea_map_page(void)
173{
174 /**
175 * @brief rt_varea_map_page
176 * Requirements: complete the page table entry
177 */
178 const size_t buf_sz = 4 * ARCH_PAGE_SIZE;
179 rt_varea_t varea = _create_varea(buf_sz);
180 for (size_t i = 0; i < buf_sz; i += ARCH_PAGE_SIZE)
181 {
182 void *page = rt_pages_alloc(0);
183 uassert_true(!!page);
184 uassert_true(!rt_varea_map_page(varea, varea->start + i, page));
185 uassert_true(rt_kmem_v2p(varea->start + i) == (page + PV_OFFSET));
186
187 /* let page manager handle the free of page */
188 rt_varea_pgmgr_insert(varea, page);
189 uassert_true(rt_kmem_v2p(varea->start + i) == (page + PV_OFFSET));
190 }
191
192 uassert_true(!rt_aspace_unmap(&rt_kernel_space, varea->start));
193}
194
195static void test_varea_map_range(void)
196{

Callers 1

varea_map_tcFunction · 0.85

Calls 6

_create_vareaFunction · 0.85
rt_pages_allocFunction · 0.85
rt_varea_map_pageFunction · 0.85
rt_kmem_v2pFunction · 0.85
rt_varea_pgmgr_insertFunction · 0.85
rt_aspace_unmapFunction · 0.85

Tested by

no test coverage detected