| 273 | } |
| 274 | |
| 275 | static struct installed_page_reg *_find_page_region(rt_ubase_t page_va) |
| 276 | { |
| 277 | struct installed_page_reg *iter; |
| 278 | struct installed_page_reg *rc = RT_NULL; |
| 279 | rt_bool_t found = RT_FALSE; |
| 280 | |
| 281 | rt_spin_lock(&_inst_page_reg_lock); |
| 282 | for (iter = _inst_page_reg_head; iter; iter = iter->next) |
| 283 | { |
| 284 | if (page_va >= iter->region_area.start && |
| 285 | page_va < iter->region_area.end) |
| 286 | { |
| 287 | found = RT_TRUE; |
| 288 | break; |
| 289 | } |
| 290 | } |
| 291 | rt_spin_unlock(&_inst_page_reg_lock); |
| 292 | |
| 293 | if (found) |
| 294 | { |
| 295 | rc = iter; |
| 296 | } |
| 297 | return rc; |
| 298 | } |
| 299 | |
| 300 | rt_bool_t rt_page_is_member(rt_base_t page_pa) |
| 301 | { |
no test coverage detected