| 303 | } |
| 304 | |
| 305 | static rt_bool_t _pages_are_member(rt_ubase_t page_va, size_t size_bits) |
| 306 | { |
| 307 | rt_bool_t rc = RT_TRUE; |
| 308 | rt_ubase_t iter_frame = page_va; |
| 309 | size_t frame_end = page_va + (1 << size_bits); |
| 310 | |
| 311 | while (iter_frame < frame_end) |
| 312 | { |
| 313 | size_t overlap_size; |
| 314 | struct installed_page_reg *page_reg = _find_page_region(iter_frame); |
| 315 | |
| 316 | if (!page_reg) |
| 317 | { |
| 318 | rc = RT_FALSE; |
| 319 | LOG_E("Allocated invalid page %p", iter_frame); |
| 320 | break; |
| 321 | } |
| 322 | |
| 323 | overlap_size = page_reg->region_area.end - iter_frame; |
| 324 | iter_frame += overlap_size; |
| 325 | } |
| 326 | |
| 327 | return rc; |
| 328 | } |
| 329 | |
| 330 | #ifdef RT_DEBUGGING_PAGE_POISON |
| 331 | static rt_err_t _unpoisoned_pages(char *head, rt_uint32_t size_bits) |
no test coverage detected