[so2] [Tema 2] Optiuni, chardevice-uri si IOCTL

Paul Olaru olarupaulstelian97 at gmail.com
Thu Apr 2 14:40:30 EEST 2020


Când un cdev e dezactivat îl dezactivezi complet în sensul că nu îi dai
register, astfel încât userspace-ul dacă ar crea nodul ar primi -ENODEV.
Dacă un char device e dezactivat nu îi mai înregistrezi deloc și nu pui
handler la întreruperea corespunzătoare, astfel încât să nu poți primi
nimic pentru ce e dezactivat.

Opțiunile sunt disponibile la insmod. Pe baza lor decizi dacă să dai
register_chrdev sau nu și dacă bagi handler la întrerupere sau nu. O dată
create sau eliminate, resursele pentru portul dezactivat nici măcar nu le
vei aloca vreodată (nu se poate schimba opțiunea fără a da rmmod și insmod)

Singura operație de ioctl pe care o văd în cerință e configurarea liniei.
Asta nu activează sau dezactivează nimic dpdv software.

On Thu, Apr 2, 2020, 13:55 Alexandru-Cosmin Mihai via so2 <
so2 at cursuri.cs.pub.ro> wrote:

> Salut!
>
> Am cateva intrebari legate de modul in care opereaza impreuna toate
> componentele din aceasta tema.
>
> Din cate inteleg eu, vom avea 2 char device-uri: unul cu minor 0 pentru
> interuperea asociata COM1 si unul cu minor 1 pentru intreruperea
> asociata COM2 si fiecare read/write pe fisierul asociat chardevice-ului X,
> ne va citi / scrie din/in bufferul pentru port-ul X.
> De asemenea avem 3 optiuni de functionare care activeaza / dezactiveaza
> cele 2 perechi (intrerupere, cdev).
>
> Intrebarile mele sunt:
>
> 1) Ce am scris mai sus este corect?
>
> 2) Cand o intrerupere este ignorata, trebuie sa facem unregister si delete
> pe char device-ul asociat sau este suficient ca in viitor sa nu intoarcem
> nimic la read si write sau trebuie ne blocam la read si write ?
>
> 3) IOCTL se comporta la fel pe ambele char device-uri? Pot sa dezactivez o
> pereche (intrerupere, cdev) apeland ioctl pe celalalt cdev?
> Daca raspunsul la intrebarea 2) este ca nu facem register si delete pt.
> cdev, atunci se pot primi comenzi ioctl pe un cdev "dezactivat"?
>
> Multumesc frumos!
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20200402/e4cffcbc/attachment.html>


More information about the so2 mailing list