-/*
- * Get an existing cache instance, allocate a new one to be loaded, or NULL if
- * there is no space
- */
-VG_STATIC struct cache_board *skateshop_cache_fetch_board( u32 registry_index )
-{
- addon_reg *reg = NULL;
-
- if( registry_index < addon_count( k_workshop_file_type_board ) ){
- reg = get_addon_from_index( k_workshop_file_type_board, registry_index );
-
- if( reg->userdata ){
- return reg->userdata;
- }
- }
-
-#if 0
- /* lru eviction. should be a linked list maybe... */
- double min_time = 1e300;
- struct cache_board *min_board = NULL;
-
- SDL_AtomicLock( &global_skateshop.sl_cache_access );
- for( u32 i=0; i<SKATESHOP_BOARD_CACHE_MAX; i++ ){
- struct cache_board *cache_ptr = &global_skateshop.cache[i];
-
- if( cache_ptr->state == k_cache_board_state_load_request ) continue;
- if( cache_ptr->ref_count ) continue;
-
- if( cache_ptr->last_use_time < min_time ){
- min_time = cache_ptr->last_use_time;
- min_board = cache_ptr;
- }
- }
-#else
-
- SDL_AtomicLock( &global_skateshop.sl_cache_access );
- struct cache_board *min_board = lru_volatile_cache_board();
-
-#endif
-
- if( min_board ){
- if( min_board->state == k_cache_board_state_loaded ){
- player_board_unload( &min_board->board );
- min_board->reg_ptr->userdata = NULL;
- }
-
- if( reg ){
- vg_info( "Allocating board (reg:%u) '%s'\n",
- registry_index, reg->foldername );
- }
- else{
- vg_info( "Pre-allocating board (reg:%u) 'null'\n", registry_index );
- }