Line Discipline or Termios lacks ?

Cedric Aubert cedric_aubert at yahoo.fr
Fri Sep 19 06:53:12 UTC 2003


--- Brett Swimley <brett.swimley at aedinc.net> wrote:
> 
> 
> Joel Sherrill wrote:
> 
> > Thomas Doerfler wrote:
> >
> >> Hi,
> >>
> >>
> >>> Ok, I want to do this !! :-) But I don't found
> how
> >>> termios_ioctl will call my private driver ioctl
> >>> function.
> >>>
> >>> Termios_icotl have a switch(command) :
> >>> case KnwonCommand1 :
> >>> case KnwonCommand2 :
> >>> case KnwonCommand3 :
> >>> default : Call line discipline ioctl function
> >>
> >>
> >>
> >> Well, I would not change the termios code, but
> intercept the ioctl 
> >> call in your private driver. 
> >
> >
> > Nice suggestion.  Would you mind making it a
> subsection of
> > the BSP and Device Driver chapter on serial
> devices?
> >
> > Also I have searched a bit and not managaed to
> find a standard
> > way of doing this function.  If there is a way on
> *BSD or Linux
> > to do this, it would be nice to use those names
> for the IOCTLS
> > and possibly add them to the standard list. 
> 
> I researched this a ways back and think I discarded
> my notes.  I just 
> did a quick search and found that Linux accomplishes
> this through the 
> TIOCMGET and TIOCMSET ioctls.  IIRC, this is what I
> found way back 
> when.  Don't know if *BSD has similar functionality.

I think BSD have same functionnality look at
http://www.gsp.com/cgi-bin/man.cgi?section=4&topic=tty

> 
> >
> >> Whenever an application performs an ioctl call
> for a specific device, 
> >> then the RTEMS io system calls the "ioctl"
> function in the device 
> >> driver (e.g. "console_ioctl"). A "nomal" driver
> supporting "termios" 
> >> will only hand through that call to
> termios_ioctl, in that case the 
> >> drivers "ioctl" function looks like:
> >>
> >>
> >>
> >> /*
> >>  * Handle ioctl request.
> >>  */
> >> rtems_device_driver console_control(
> >>   rtems_device_major_number major,
> >>   rtems_device_minor_number minor,
> >>   void                    * arg
> >> )
> >> {   return rtems_termios_ioctl (arg);
> >> }
> >>
> >> In your case, you should intercept your own ioctl
> code in this 
> >> function, so you would change it to:
> >>
> >> /*
> >>  * Handle ioctl request.
> >>  */
> >> rtems_device_driver console_control(
> >>   rtems_device_major_number major,
> >>   rtems_device_minor_number minor,
> >>   void                    * arg
> >> )
> >> {   rtems_status_code rc;
> >>   rtems_libio_ioctl_args_t *args = arg;
> >>
> >>   switch(args->command) {
> >>     case_MY_IOCTL_CODE_TO_ENABLE_RTS:
> >>       rc = console_enable_rts(arg);
> >>       break;
> >>     case_MY_IOCTL_CODE_TO_DISABLE_RTS:
> >>       rc = console_disable_rts(arg);
> >>       break;
> >>     default:       rc = rtems_termios_ioctl
> (arg);
> >>       break;
> >>   }
> >>   return rc;
> >> }
> >>
> >>
> >> Does this help a bit?
> >>
> >> wkr,
> >>     Thomas.
> >>
> >>
> >>
> >>> So How can I do, that's what I don't understand
> and
> >>> found a solution to do this and use termios ?
> >>>
> >>>
> >>>> wkr,
> >>>>     Thomas.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> =====
> >>> AUBERT Cedric
> >>> SDEL Controle Commande
> >>> rue Nungesser & Coli
> >>> 44860 St Aignan de Grand Lieu
> >>>
> >>> E-mail : cedric_aubert at yahoo.fr
> >>> Http : http://www.controle-commande.sdel.fr/
> >>>
> >>> __________________________________
> >>> Do you Yahoo!?
> >>> Yahoo! SiteBuilder - Free, easy-to-use web site
> design software
> >>> http://sitebuilder.yahoo.com
> >>
> >>
> >>
> >> --------------------------------------------
> >> IMD Ingenieurbuero fuer Microcomputertechnik
> >> Thomas Doerfler           Herbststrasse 8
> >> D-82178 Puchheim          Germany
> >> email:    Thomas.Doerfler at imd-systems.de
> >> PGP public key available at: http://www.imd-
> >> systems.de/pgp_keys.htm
> >>
> >
> >
> 
> -- 
> Brett Swimley
> Advanced Electronic Designs
> brett.swimley at aedinc.net
> ph: 406-585-8892 fax: 406-585-8893
> 
> 
> 


__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com



More information about the users mailing list