Do tematu: Struktury danych
inode
Typ | Nazwa | Opis |
unsigned long | i_ino | numer i-węzła w dyskowej tablicy i-węzłów |
umode_t | i_mode | typ pliku: zwykły(IS_REG), katalog(IS_DIR), łącze nazwane(IS_FIFO),
specjalny, znakowy, 0 gdy wolny;
także prawa dostępu do pliku dla wszystkich, grupy użytkownika oraz jego samego |
nlink_t | i_link | liczba dowiązań do pliku |
unsigned long | i_version | licznik zdarzeń ustawiany na zmienną event (zwiększoną o jeden) przy odczycie i-węzła z dysku |
uid_t | i_uid | identyfikator właściciela pliku |
gid_t | i_gid | identyfikator grupy właściciela pliku |
off_t | i_size | rozmiar pliku w bajtach (co najwyżej 4 GB) |
time_t | i_ctime | czas utworzenia pliku |
time_t | i_atime | czas ostatniego dostępu do pliku |
time_t | i_mtime | czas ostatniej modyfikacji pliku |
unsigned long | i_blocks | liczba bloków dyskowych zajmowanych przez plik |
unsigned long | i_blksize | rozmiar bloków so przesyłania danych dyskowych (inicjowane na PAGE_SIZE) |
kdev_t | i_dev | wskazuje na system plików |
kdev_t | i_rdev | wskazuje na rzeczywiste urządzenie - tak jak jest zapisany na dysku |
struct super_block | *i_sb | wskaźnik na blok identyfikacyjny urządzenia, do którego należy i-węzeł |
unsigned short | i_flags | tutaj trzymane są flagi określające sposób korzystania z i-węzła, jak również pliku, który wyznacza (zdef. w >>fs.h; m.in. MS_NOATIME - nie zmieniać czasu modyfikacji, S_WRITE - do zapisu...) |
unsigned short | i_count | ilość procesów, które odwołują się do i-węzła; wartość zero oznacza, że struktura i-węzła jest wolna i może w razie potrzeby być wykorzystywana przez inne procesy |
struct semaphore | i_sem | semafor do blokowania, >>open.c, >>namei.c, >>read_write.c |
struct wait_queue | *i_wait | kolejka zadań, które czekają na zwolnienie i-węzła (funkcje: >>lock_inode, >>unlock_inode w >>fs/inode.c) |
struct file_lock | *i_lock | struktura przechowująca informacje do blokowania pliku |
unsigned char | i_lock | czy węzeł jest zablokowany |
struct inode | *i_next, *i_prev | wskaźniki utrzymujące listę wolnych i-węzłów ('korzeniem' listy jest zmienna globalna first_inode >> fs/inode.c) |
struct inode | *i_hash_next, *i_hash_prev | wskaźniki łączące i-węzeł w listę z innymi znajdującymi się w tablicy haszującej pod tym samym numerem |
struct inode | *i_bound_to | ??? (*) |
struct inode | *i_bound_by | ??? (*) |
struct inode | *i_mount | wskaźnik do i-węzła, pod którym zamontowano system plików |
u_c | i_dirt | wartość stwierdzająca, czy i-węzeł w pamięci jest różny od dyskowego i czy w związku z tym trzeba go zapisać na dysk (write_inode() w >>fs/inode.c) |
u_c | i_pipe | czy i-węzeł opisuje łącze komunikacyjne |
u_c | i_sock | czy i-węzeł opisuje gniazdo |
struct inode_operations | zestaw operacji na i-węzłach (takich, jak tworzenie nowego), ściśle związanych z wykorzystywanym systemem plików - np. ext2 ; definicja: >> include/fs.h | |
union | u | zależna od systemu plików struktura przechowująca informacje o i-węźle |
ext2_inode_info | ext2_i | zawartość powyższej unii u dla systemu ext2 |
struct vm_area_struct | *i_mmap | blok pamięci zawierający i-węzeł |
struct page | *i_pages | pierwsza ramka, na podwójnie wiązanej liście ramek umieszczenia i-węzła |
unsigned long | i_nrpages | liczba ramek na powyższej liście |
struct dquot | *i_dquot[MAX_QUOTA] | odnośnik do systemu ograniczeń (ang. quotas) |
u_c | i_seek | ??? (*) |
u_c | i_update | ??? (*) |
unsigned short | i_writecount | licznik procesów mających prawa zapisu do pliku |
unsigned char | i_condemned | czy bufor i-węzła jest przeznaczony do wyczyszczenia |
Autor:
Grzegorz Gawron
Skład:
Robert Dąbrowski