next up previous contents
Next: Numery glowny i podrzedny Up: Podprogram obslugi urzadzenia Sterownik Previous: Wprowadzenie   Spis rzeczy

Rejestracja urzadzenia

Dostep do urzadzenia znakowego nastepuje poprzez plik znajdujacy sie zazwyczaj w katalogu /dev. Jednym z atrybutow takiego pliku specjalnego (dla pliku zwiazanego z urzadzeniem znakowym ,,c'' w najbardziej znaczacym bicie ciagu praw) jest para liczb z zakresu od 0 do 255: numer glowny major i numer podrzedny minor urzadzenia.

Numer glowny wiaze urzadzenie z odpowiadajacym mu sterownikiem. Wiele plikow moze miec ten sam numer glowny. Oznacza to ze odpowiadajace im urzadzenia sa tego samego typu i beda obslugiwane przez ten sam sterownik.

Numer podrzedny jest przekazywany do sterownika zidentyfikowanego za pomoca numeru glownego. Oznacza instancje urzadzenia typu major i moze roznicowac zachowanie sterownika wobec urzadzenia.

Dodanie nowego urzadzenia polega na wywolaniu funkcji

int register_chrdev ( 
    unsigned int major,  
    const char *name,  
    struct file_operations *fops );
zdefiniowanej w <linux/fs.h>.

W wyniku wywolania tej funkcji zostanie utworzone urzadzenie o nazwie name i numerze major (jesli ten numer byl wolny), fops jest wskaznikiem do tablicy wskaznikow do funkcji, ktorych wywolania standardowych funkcji systemowych ma uzyc do obslugi operacji na pliku specjalnym.

Urzadzenie usuwamy wywolujac funkcje

int unregister_chrdev ( 
    unsigned int major,  
    const char *name);

Wywolania te najczesciej znajduja sie w funkcjach zaladowujacych i usuwajacych modul sterownika urzadzenia z systemu.

Plik specjalny zwiazany z urzadzeniem znakowym tworzymy:

mknod /dev/nazwa_pliku c $(major) $(minor)



Subsections
next up previous contents
Next: Numery glowny i podrzedny Up: Podprogram obslugi urzadzenia Sterownik Previous: Wprowadzenie   Spis rzeczy
jasiek 2002-01-25