Esempio n. 1
0
/*
 * 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);
}
Esempio n. 2
0
/*
 * 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
}