ZADANIE 11 (11)





Zadanie praktyczne nr 11





Do tematu: Podsystem wejścia-wyjścia

Zadanie 11

Opis: Celem zadania jest stworzenie nowego, prostego urządzenia,
które służyłoby do śledzenia zawartości struktur danych w jądrze. Dostęp
do tego urządzenia byłby taki sam jak do innych urządzeń, tzn. poprzez
plik specjalny (np. /dev/mydev). Napisać driver prostego urządzenia znakowego,
na którym można byłoby wykonywać następujące operacje: (file_operations)



open - otwieranie urządzenia

release - zamykanie urządzenia

read - ma przekazywać użytkownikowi dane dotyczące tablic rozdzielczych
: chrdevs, blkdevs (fs/devices.c) takie jak ( np. w zależności od ustawionych
flag ):




nazwy i numery główne zarejestrowanych urządzeń znakowych lub blokowych
(których - rozstrzyga np. flaga), na przykład każde wywołanie funkcji read
będzie zapisywało do bufora użytkownika jeden numer i jedną nazwę.

informować, czy konkretna operacja jest dostępna na urządzeniu (jaka
ma to być operacja, można okreslić np. za pomoca flagi)


Funkcja kończy się błędem, jeśli jako bufor podamy NULL, lub podamy
większą liczbę bajtów do wczytania, niż rozmiar bufora.



write - operacja możliwa, ale nie mająca większego sensu

lseek - może coś robić np. ustawiać bieżący indeks w tablicy chrdev
lub blkdev na podaną wartość

ioctl - ustawianie parametrów urządzenia - flag

ew. inne funkcje



Urządzenie powinno być inicjowane i rejestrowane w trakcie startu systemu.


Operacje na urządzeniu nie są blokujące.

Do wpisywania znaków do bufora należy użyć funkcji put_user(), która
wpisuje dane do przestrzeni adresowej użytkownika.

Należy w istniejących plikach źródłowych zdefiniować potrzebne struktury
danych oraz funkcje, stałe itp. (Nie trzeba dodawać własnych plików).

Skompilować jądro. Należy także utworzyć plik specjalny dla napisanego
urządzenia.

Mile widziane programy testowe używające tego urządzenia.



Autorka: Anna Petryk






Wyszukiwarka

Podobne podstrony:
ZADANIE (11)
zadaniegz 11
ZADANIE (11)
Analiza Zadania 11
ZADANIE (11)
ZADANIE (11)
ZADANIE (11)
ZADANIE (11)
ZADANIE (11)
ZADANIE (11)
ZADANIE (11)
ZADANIE (11)
zadanie 11
ZADANIE (11)
ZADANIE (11)
ZADANIE (11)
ZADANIE (11)

więcej podobnych podstron