null, port, zero, full


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).

Wstecz Tomasz Wadowski Dalej