Do spisu treści systemu plików

Przewodnik po plikach zawierających definicje funkcji obsługujących system plików FAT


Funkcje dotyczące systemu plików FAT znajdują się w większości w katalogu "/fs/fat". W większości, ponieważ obsługa tego filesystemu przez Linuxa, podobnie jak obsługa innych różnych od ext2 filesystemów, realizowana jest w dużym stopniu przez te same funkcje i za pomocą tych samych algorytmów. Różnice występują przede wszystkim w algorytmach i funkcjach niskopoziomowych. Oto najważniejsze pliki, które zawierają definicje funkcji związanych z odczytem i zapisem w systemie plików FAT:

1. /fs/fat/file.c
Ten plik zawiera definicje funkcji wysokopoziomowych, wywoływanych przez wspólne dla wszystkich systemów plików wysokopoziomowe funkcje read, write etc. za pośrednictwem struktury "file_operations". Funkcje te korzystają przede wszystkim z funkcji niskopoziomowych realizujących operacje na buforach zdefiniowanych w pliku "/fat/buffer.c".
1.1. fat_prefetch()
1.2. fat_file_read()
1.3. fat_file_write()
1.4. fat_truncate()
2. /fs/fat/buffer.c
Ten plik zawiera definicje funkcji niskopoziomowych, dotyczących operacji na buforach, wywoływanych przez funkcje wysokopoziomowe zawarte w pliku "/fat/file.c". Funkcje te odwołują się przede wszystkim do funkcji obsługujących cache zdefiniowanych w pliku "cache.c".
2.1. fat_bread()
2.2. fat_getblk()
2.3. fat_brelse()
2.4. fat_mark_buffer_dirty()
2.5. fat_set_uptodate()
2.6. fat_is_uptodate()
2.7. fat_ll_rw_block()
Oto pozostałe pliki znajdujące się w katalogu "/fs/fat/" i funkcje, które są w nich zdefiniowane:
3. /fs/fat/cache.c
W pliku tym zdefiniowano następujące funkcje: fat_access(), cache_init(), cache_lookup(), list_cache(), cache_add(), fat_cache_inval_inode(), fat_cache_inval_dev(), get_cluster(), fat_smap(), fat_free(). Funkcje te obsługują cache i znajdują się o poziom niżej od funkcji obsługujących bufory.
4. /fs/fat/dir.c
W pliku tym zdefiniowano następujące funkcje: fat_dir_read(), uni2ascii(), fat_readdirx(), fat_filldir(), fat_readdir(), vfat_ioctl_fill(), fat_dir_ioctl(). Są to podstawowe funkcje wyższego poziomu służące do obsługi katalogów w systemie plików FAT.
5. /fs/fat/fatfs_syms.c
W pliku tym zdefiniowano jedynie funkcję init_fat_fs(). Służy ona do inicjalizacji obsługi systemu plików FAT. Jej działanie polega na zarejestrowaniu zestawu standardowych operacji.
6. /fs/fat/inode.c
W pliku tym zdefiniowano podstawowe funkcje do obsługi i-węzłów: fat_put_inode(), fat_put_super(), parse_options(), fat_read_super(), fat_statfs(), fat_bmap(), is_exec(), fat_read_inode(), fat_write_inode(), fat_notify_change(), init_module(), cleanup_module(). W obecnej wersji te funkcje obsługują także VFAT, czyli długie nazwy plików wprowadzone przez Windows 95.
7. /fs/fat/misc.c
W pliku tym zdefiniowano różne pomocnicze, w większości niskopoziomowe funkcje dotyczące bezpośrednich operacji na dysku: fat_fs_panic(), is_binary(), fat_lock_creation(), fat_unlock_creation(), lock_fat(), unlock_fat(), fat_add_cluster(), date_dos2unix(), fat_date_unix2dos(), fat_get_etry(), raw_scan_sector(), raw_scan_root(), raw_scan_nonroot(), raw_scan(), parent_ino(), fat_subdirs(), fat_scan().
8. /fs/fat/mmap.c
Funkcje zdefiniowane w tym pliku: fat_file_mmap_nopage(), fat_mmap(). Realizują one mapowanie plików z filesystemu FAT do pamięci.
9. /fs/fat/tables.c
W tym pliku nie zdefiniowano żadnych funkcji. Zawiera on tabele konwersji znaków dla systemów ASCII i Unicode.

Autor: Krzysztof Ostrowski