| 572 | } |
| 573 | |
| 574 | static int _pages_ref_get(struct rt_page *p, rt_uint32_t size_bits) |
| 575 | { |
| 576 | struct rt_page *page_head; |
| 577 | int idx; |
| 578 | |
| 579 | /* find page group head */ |
| 580 | idx = p - page_start; |
| 581 | idx = idx & ~((1UL << size_bits) - 1); |
| 582 | |
| 583 | page_head = page_start + idx; |
| 584 | return page_head->ref_cnt; |
| 585 | } |
| 586 | |
| 587 | static int _pages_free(pgls_agr_t page_list[], struct rt_page *p, |
| 588 | char *frame_va, rt_uint32_t size_bits) |