free_entry
if (cache->free_entry) {
current = cache->free_entry;
cache->free_entry = cache->free_entry->next;
current->next = cache->free_entry;
cache->free_entry = current;
current->next = cache->free_entry;
cache->free_entry = current;
cache->free_entry = &cache->entry[0];
struct CACHED_GENERIC *free_entry;
next = ((free_entry*)&fBase[next])->next_free;
previous = ((free_entry*)&fBase[next])->previous_free;
((free_entry*)&fBase[next])->previous_free = index;
((free_entry*)&fBase[previous])->next_free = index;
((free_entry*)&fBase[index])->previous_free = previous;
((free_entry*)&fBase[index])->next_free = next;
uint32 previous = ((free_entry*)&fBase[index])->previous_free;
uint32 next = ((free_entry*)&fBase[index])->next_free;
((free_entry*)&fBase[previous])->next_free = next;
((free_entry*)&fBase[next])->previous_free = previous;
index = ((free_entry*)&fBase[index])->next_free;