/* * Initialize the page allocator */ static void rt_page_init(void *addr, rt_size_t npages) { RT_ASSERT(addr != RT_NULL); RT_ASSERT(npages != 0); rt_page_list = RT_NULL; rt_page_free(addr, npages); }
/* * This function will release the previously allocated memory page * by rt_malloc_page. * * @param page_ptr the page address to be released. * @param npages the number of page shall be released. * * @note this function is used for RT-Thread Application Module */ void rt_free_page(void *page_ptr, rt_size_t npages) { rt_page_free(page_ptr, npages); /* update memory usage */ #ifdef RT_MEM_STATS rt_sem_take(&heap_sem, RT_WAITING_FOREVER); used_mem -= npages * RT_MM_PAGE_SIZE; rt_sem_release(&heap_sem); #endif }