Ignore:
Timestamp:
Jul 27, 2015, 5:56:15 PM (9 years ago)
Author:
guerin
Message:

fat32: implement cache depth extension in _get_buffer_from_cache()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_fat32/fat32.c

    r664 r665  
    990990        " for cluster_id = %d\n", cluster_id );
    991991#endif
    992 
    993992    }
    994993    else                   // searched cache is a File-Cache
    995994    {
     995        // add cache levels if needed
     996        while ( _get_levels_from_size( (cluster_id + 1) * 4096 ) > inode->levels )
     997        {
     998#if (GIET_DEBUG_FAT & 1)
     999if ( _get_proctime() > GIET_DEBUG_FAT )
     1000_printf("\n[DEBUG FAT] _get_buffer_from_cache(): adding a File-Cache level\n" );
     1001#endif
     1002
     1003            inode->cache = _allocate_one_cache_node( inode->cache );
     1004            inode->levels++;
     1005        }
     1006
    9961007        node   = inode->cache;
    9971008        level  = inode->levels;
     
    10021013        " for cluster_id = %d\n", inode->name , cluster_id );
    10031014#endif
    1004 
    10051015    }
    10061016
     
    18171827        if ( offset >= 4096 )  // new buffer required
    18181828        {
    1819             if ( cluster_id == 63 )   // we need to increase depth of File-Cache
    1820             {
    1821                 _printf("\n[FAT ERROR] add_dir_entry() File Cache depth extension "
    1822                         " not implemented\n" );
    1823                 _exit();  // TODO   
    1824             }
    1825             else
    1826             {
    1827                 if ( _get_buffer_from_cache( parent,
    1828                                              cluster_id + 1,
    1829                                              &pdesc ) )      return 1;       
    1830                 buffer       = pdesc->buffer;
    1831                 pdesc->dirty = 1;
    1832                 offset       = 0;
    1833             }
     1829            if ( _get_buffer_from_cache( parent,
     1830                                         cluster_id + 1,
     1831                                         &pdesc ) )      return 1;
     1832            buffer       = pdesc->buffer;
     1833            pdesc->dirty = 1;
     1834            offset       = 0;
    18341835        }
    18351836
Note: See TracChangeset for help on using the changeset viewer.