On Thursday 07 February 2008, Mike Frysinger wrote:
> On Thursday 07 February 2008, Tilman Schmidt wrote:
> > Am 06.02.2008 23:23 schrieb Mike Frysinger:
> > >>> hmm, this doesnt seem right ... this does not allow for arbitrary
> > >>> baud rates which newer versions of linux now supports.
> >
> > [...]
> >
> > > ive documented the current way of doing it here:
> > > http://docs.blackfin.uclinux.org/doku.php?id=faq
> > > (see the question at the bottom about custom/high speeds)
> >
> > Great! Thanks.
> >
> > > since this is relatively new, you may have to wrap the code in
> > > something like: #ifdef BOTHER
> > >  < new way >
> > > #else
> > >  < old cfsetspeed way >
> > > #endif
> >
> > Ok. Now, being curious I poked around in the current kernel for
> > that termios2 structure, and I couldn't help noticing that some
> > architectures (including the very first one, alpha) do not have
> > it, but instead integrate the c_ispeed and c_ospeed fields in
> > struct termios. Do I have to handle that case? Would something
> > like
> >
> > #ifndef TCGETS2
> > #define termios2 termios
> > #define TCGETS2 TCGETS
> > #define TCSETS2 TCSETS
> > #endif
>
> while i havent actually tested this, it should be fine.  termios2 was
> created because not all arches integrated the speed fields into the termios
> structure.  for those that did, there was no need for termios2.
>
> until these details get pushed into the libc, the code in ldattach prob
> needs to look something like:
>
> #ifndef TCGETS2
> #define termios2 termios
> #define TCGETS2 TCGETS
> #define TCSETS2 TCSETS
> #endif
> ...
> #ifdef BOTHER
>       < do BOTHER / CBAUD stuff >
>       if (ioctl( TCGETS ) works)
>               return;
> #endif
>       < normal speed functions >
>
> this way you can build a binary against newer headers but have it work OK
> on older kernels where TCGETS2 isnt implemented

actually, it'd probably be best if this were a lib func in like 
lib/tty_speed.c or something ...
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to