tty(4) a ioctl
Dan Lukes
dan at obluda.cz
Sat May 12 20:43:54 CEST 2007
Na specialnim PC (=WRAP) je LPC sbernice a na ni mame pres vlastni
primitivni radic pripojeny LCD minidisplay. No a ja pisu ovladace.
Celkem bez problemu mam napsany PCI<->LPC bridge a ted jsme ve fazi, kdy
pisu tty-based ovladac. Tolik pro zajimavost, aby bylo jasny "vo co go"
- ale pro vlastni problem to az tak neni potreba vedet.
Takze tty ovladac.
Specificky tty-like ovladac se dela tak, ze se pomoci volani
ttycreate(struct tty *tp, ...) predaji pointry na jednotlive specificke
funkce, ktere pak zakladni kod tty vola, kdyz je potreba. Krome spousty
jinych se take (volitelne) da predat ->t_ioctl coz by mela byt
uzivatelska funkce pro zpracovani ioctl.
Driver celkem chodi, ale uzivatelska ioctl funkce se proste nevola.
Prohnal jsem cele zdrojaky systemu GREPem a zda se, ze se skutecne
opravdu nikdy a nikde nevola ...
Jako nejsnazsi vysvetleni tedy je, ze se opravdu zapomelo ho volat a
nikdo si toho zatim nevsiml (tty framework je v systemu teprve od 6.0R).
Neni to uplne nemozne. Ne, ze by ioctl call back nepouzival vubec nikdo
- ale pouziva ho jen ovladac 'digi' a 'umodem' a pouzivaji ho pro takove
celkem postradatelne veci, ze bych i veril, ze si zatim nefunkcnosti
nikdo nevsimnul.
No a na co se chci zeptat - nepsal jste si nekdo vlastni ovladac a
nenarazil na tento problem, nebo treba, nenarazili jste proste nahodou
na nejakou diskusi o tomhle problemu ?
Nejsem si uplne jisty, jestli jsem to zanalyzoval spravne a neco mi
treba neuniklo a neni to cele uplne jinak ...
Ja si ted, zrejme, vypomuzu tak, ze si nadefunuju vlastni
line-discipline a ioctl volani si chytim tam, ale to je zbytecne slozite
a pracne a je to hack necisty na to, ze by to melo jit trivialne a ciste ...
Dan
--
Dan Lukes SISAL MFF UK
AKA: dan at obluda.cz, dan at freebsd.cz, dan at (kolej.)mff.cuni.cz
More information about the Users-l
mailing list