| 170 | } |
| 171 | |
| 172 | static 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 | |
| 195 | static void test_varea_map_range(void) |
| 196 | { |
no test coverage detected