tty(4) a ioctl
Dan Lukes
dan at obluda.cz
Sun May 13 15:40:31 CEST 2007
Roman Divacky napsal/wrote, On 05/13/07 12:32:
>> 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.
>
> no.. cely ten kod je dost divny a je videt ze byl psan v minulem stoleti :)
Teoreticky existuje prastary tty.c, ale to o cem je rec dneska bylo
prakticky uplne prepsane pred cca dvema lety. Takze to zas tak moc stare
neni.
> myslis ze tohle je spravny fix?
V jinych funkcich se driverove callbacky volaji pred line-disciplne
callbacky (s vyjimkou close), takze ja bych to spis situoval nad volani
ttyld_ioctl().
> Index: kern/tty.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/kern/tty.c,v
> retrieving revision 1.268
> diff -u -r1.268 tty.c
> --- kern/tty.c 20 Dec 2006 02:49:59 -0000 1.268
> +++ kern/tty.c 13 May 2007 10:30:41 -0000
> @@ -3212,6 +3212,8 @@
> error = ttyld_ioctl(tp, cmd, data, flag, td);
> if (error == ENOIOCTL)
> error = ttioctl(tp, cmd, data, flag);
> + if (error == ENOIOCTL && tp->t_ioctl != NULL)
> + error = tt_ioctl(tp, cmd, data, flag, td);
> ttyldoptim(tp);
> if (error != ENOIOCTL)
> return (error);
>
> pripadne bych se sel zeptat na hackers@ nebo tak nekam
Jo, myslim, ze se pujdu zeptat nekam ...
> hodne stesti s driverem
To je moderni zpusob, ja to vetsinou delam jeste postaru - doufam, ze
driver bude spolehlive fungovat protoze bude dobre napsany - i kdyz, v
nejhorsim, funkcnost jako nasledek stesti beru taky ;-)
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