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