Subversion Repositories HelenOS

Rev

Go to most recent revision | Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
3575 5689 d 10 h jermar /trunk/uspace/ libfs create operation should take the device handle as argument.  
3574 5689 d 11 h jermar /trunk/uspace/srv/fs/fat/ Move common code to dedicated functions so that it can be easily reused.  
3573 5689 d 12 h jermar /trunk/uspace/srv/fs/fat/ VFS_WRITE has two return arguments on success.  
3572 5689 d 14 h jermar /trunk/uspace/srv/fs/fat/ Finish implementation of fat_truncate() and fix several warnings.  
3550 5693 d 9 h jermar /trunk/uspace/srv/fs/fat/ Extend _fat_blcks_get() to fat_cluster_walk(). Use fat_cluster_walk() to
implement fat_clusters_get() and _fat_block_get().
 
3548 5694 d 9 h jermar /trunk/uspace/srv/fs/fat/ More fat_truncate() bits.  
3547 5694 d 9 h jermar /trunk/uspace/srv/fs/fat/ Enable fat_write().  
3546 5694 d 9 h jermar /trunk/uspace/srv/fs/fat/ Start implementing fat_truncate().  
3539 5696 d 18 h jermar /trunk/uspace/ Add block_cache_init().  
3537 5696 d 21 h jermar /trunk/uspace/ Separate the block_init() phase from reading of the boot block.  
3533 5698 d 15 h jermar /trunk/uspace/srv/fs/fat/ move comment  
3532 5698 d 16 h jermar /trunk/uspace/srv/fs/fat/ fat_read() needs to stop reading beyond the EOF.  
3530 5701 d 16 h jermar /trunk/uspace/ Setup communication parameters with the block device in block_init(). The file
system now doesn't know anything about the communication with the block device.
Rename blockread() to block_read(). The boot block is now read only once. The file
system can get access it using the block_bb_get() function.
 
3526 5702 d 9 h jermar /trunk/uspace/srv/fs/fat/ Directory size is always a multiple of BPS. Fix computation of number of
directory entries in the last block of the directory.
 
3521 5702 d 15 h jermar /trunk/uspace/ Move libfs_blockread(), block_get() and block_put() to libblock.  
3519 5702 d 17 h jermar /trunk/uspace/srv/fs/fat/ Implementation of fat_node_sync().  
3516 5702 d 19 h jermar /trunk/uspace/srv/fs/fat/ Pass the buffer holding the boot sector to the internal functions so that it
doesn't have to be block_get()'ed in each function. The idea is that the boot
block should be read by the top-level functions in fat_ops.c and passed down the
call chain.
 
3513 5703 d 12 h jermar /trunk/uspace/srv/fs/fat/ Implementation of fat_append_clusters().  
3506 5703 d 18 h jermar /trunk/uspace/srv/fs/fat/ Move functionality related to manipulatings file allocation tables to fat_fat.c.  
3505 5703 d 19 h jermar /trunk/uspace/srv/fs/fat/ Move functionality related to FAT dentries to fat_dentry.c.  
3503 5703 d 20 h jermar /trunk/uspace/srv/fs/fat/ Implementation of fat_alloc_clusters().  
3501 5704 d 12 h jermar /trunk/uspace/srv/fs/fat/ Implementation of fat_fill_gap().  
3500 5704 d 14 h jermar /trunk/uspace/srv/fs/fat/ More complete prototype of fat_write().  
3499 5704 d 17 h jermar /trunk/uspace/srv/fs/fat/ Mark progress in fat_write().  
3497 5704 d 21 h jermar /trunk/uspace/srv/fs/fat/ Dummy fat_write().  
3352 5768 d 12 h jermar /trunk/uspace/srv/ Add reference to the mounted FS root.

This makes it possible to keep the FS root logically unlinked (i.e. lnkcnt == 0)
because it prevents VFS from attempting to destroy it during closedir().
 
3335 5772 d 10 h jermar /trunk/uspace/srv/fs/fat/ Support for readdir() on FAT.  
3325 5775 d 12 h jermar /trunk/uspace/srv/fs/fat/ Determine the size of a directory node by walking the FAT and counting clusters.
This eliminates the hardcoded limit on the number of directory entries.
 
3314 5776 d 12 h jermar /trunk/uspace/srv/fs/fat/ fat_read() should expect IPC_M_DATA_READ instead of IPC_M_DATA_WRITE.  
3312 5776 d 13 h jermar /trunk/uspace/srv/fs/fat/ When removing a FAT node from the ffn list, use the correct pointer instead of
an uninitialized one.
 
3308 5778 d 11 h jermar /trunk/uspace/srv/fs/fat/ More complete fat_read().  
3307 5778 d 13 h jermar /trunk/uspace/srv/fs/fat/ Dummy implementation of fat_read().  
3282 5780 d 9 h jermar /trunk/uspace/srv/fs/fat/ FAT dentry type used for subdirectories doesn't store the directory size in the 'size' field.
Introduce a simple workaround that will let us have 64 directory entries at maximum.
 
3272 5780 d 22 h jermar /trunk/uspace/srv/fs/fat/ Several fixes for the FAT file system:
- do not copy padding during file name canonization
- properly nul-terminate the FAT file name during canonization
- compare FAT file name and the component name case insensitively
- block_get() takes a block offset, not byte offset as parameter
 
3257 5781 d 22 h jermar /trunk/uspace/srv/fs/fat/ First attempt at delivering the FAT16 read-only support.
Needless to say it doesn't work yet, but now it's only
the lurking bugs that need to be fixed.
 
3253 5783 d 10 h jermar /trunk/uspace/srv/fs/fat/ Pass block size to block_get() in the last argument.  
3119 5844 d 17 h jermar /trunk/uspace/srv/fs/fat/ Initialize in-core FAT root directory node during mount.  
3110 5845 d 11 h jermar /trunk/uspace/srv/fs/fat/ Initialize global FAT IDX structures when the FAT server starts and initialize
per-file system FAT IDX structures when a file system gets mounted.
 
2953 5865 d 11 h jermar /trunk/uspace/srv/fs/fat/ Add synchronization to fat_match().  
2951 5865 d 12 h jermar /trunk/uspace/srv/fs/fat/ Add locks to FAT index structures, FAT in-core node structures. Add futex to
protect the list of free cached FAT in-core nodes. Make fat_node_get() and
fat_node_put() and some other functions aware of these new locks.