Operacje udostępniane przez urządzenie null to:
-
zmiana pozycji w urządzeniu(llseek) realizowana funkcją null_lseek, która ustawia pozycję pliku na 0.
-
czytanie z urządzenia(read) realizowana funkcją read_null, która nic nie zwraca (0 bajtów odczytane).
-
pisanie do urządzenia(write) realizowana funkcją write_null, która wszystko odczytuje ale nic z tym nie robi.
Operacje udostępniane przez urządzenie port to:
-
zmiana pozycji w urządzeniu(llseek) realizowana funkcją memory_lseek, która zwiększa pozycje w pliku o podaną wartość.
-
czytanie z urządzenia(read) realizowana funkcją read_port, która sprawdza czy możemy czytać z danego portu i przekazuje wartość z portu, funkcją __get_user.
-
pisanie do urządzenia(write) realizowana funkcją write_port. Tak samo jak wyżej tylko że używana jest funkcja __put_user.
Operacje udostępniane przez urządzenie zero to:
-
zmiana pozycji w urządzeniu(llseek) realizowana funkcją null_lseek, która ustawia pozycję pliku na 0.
-
czytanie z urządzenia(read) realizowana funkcją read_zero, która zwraca puste bloki pamięci.
-
pisanie do urządzenia(write) realizowana funkcją write_null, która wszystko odczytuje ale nic z tym nie robi.
-
mapowanie(mmap) realizowana funkcją mmap_zero, która mapuję pamięć.
Operacje udostępniane przez urządzenie full to:
-
zmiana pozycji w urządzeniu(llseek) realizowana funkcją null_lseek, która ustawia pozycję pliku na 0.
-
czytanie z urządzenia(read) realizowana funkcją read_zero jak w urządzeniu zero.
-
pisanie do urządzenia(write) realizowana funkcją write_full, która zwraca kod braku miejsca (ENOSPC).
|