Changes between Version 52 and Version 53 of file_system
- Timestamp:
- Feb 4, 2016, 12:04:18 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
file_system
v52 v53 194 194 195 195 === __int '''_get_file_cache_buffer'''( fat_node_t* indoor , unsigned int cluster_id , unsigned int writable , fat_cache_desc_t** desc )__ === 196 This function returns in the <desc> argument a pointer on a buffer descriptor contained in a File_Cache . It can be used for a file or for a directory.197 The searched bufferis identified by the <inode> argument. The <cluster_id> argument is the buffer index in the File-Cache. The <writable> argument define the behaviour in case of miss in the File-Cache:196 This function returns in the <desc> argument a pointer on a buffer descriptor contained in a File_Cache, handling the possible miss. 197 The searched file or directory is identified by the <inode> argument. The <cluster_id> argument is the buffer index in the File-Cache. The <writable> argument define the behaviour in case of miss in the File-Cache: 198 198 * if [all clusters (from 0 to cluster_id) are already allocated in FAT] it scan the FAT to find the cluster index on device, and load the missing cluster in the File-Cache, marked as dirty if writable is set. 199 * if [ not writable and all clusters (from 0 to cluster_id) not allocated] it returns an error.200 * if [ writable and all clusters (from 0 to cluster_id) not allocated], it allocates in FAT the required cluster, it updates the size in the inode and dentry (for a file), and load the missing cluster in the File-Cache, marked as dirty.201 This function is called by the _sys_fat_mmap() function, and by other FAT functions.199 * if [writable and all clusters (from 0 to cluster_id) are not allocated], it allocates in FAT the required cluster, it updates the size attribute (for a file), or the is_dir attribute (for a directory), and load the missing cluster in the File-Cache, marked as dirty. 200 * if [not writable and all clusters (from 0 to cluster_id) are not allocated] it returns an error. 201 This function is called by various FAT functions to access a file or a directory, but is also called by the _sys_fat_mmap() function. 202 202 It does not take the FAT lock, that must be taken by the caller. 203 203