int kmem_free_obj(void *objp) { uint64_t page_addr = (uint64_t)objp & PAGE_MASK; struct page *page = pfn_to_page(page_addr); kmem_cache_t *cachep = (kmem_cache_t *)page->slab_list.next; return _kmem_free_obj(cachep, objp); }
int kmem_free_obj(void *objp) { int index = ptr_to_index(objp); /*printf("index = %d.\n", index);*/ struct page *page = mem_map[index]; struct kmem_cache_t *cachep = (struct kmem_cache_t *)page->lru.next; return _kmem_free_obj(cachep, objp); }