Scripsit Samuel Thibault die 17.07.2009 19:54: > Janusz Krzysztofik, le Tue 14 Jul 2009 17:31:23 +0200, a écrit : >> AFAICS, even if tty lowlevel write() could be used unmodified, a >> convenient way of reading characters from a tty is missing and should >> be implemented in a line discipline. Please correct me if I am wrong. > > Have you seen the receive_buf line discipline hook? Indeed it's not a > read() operation as from userland, but at least you can get the data > from the tty that way. That's as it should be. A read() operation that sleeps until some data is available isn't very useful in kernel mode, as it can only be used if you have the ability to sleep. A callback function which runs your code as soon as the data arrives is a much better fit, although of course it requires a bit of rethinking. >> OTOH, I found that some kind of abstraction layer for acccessing devices >> over a tty could be convenient. Instead of allocating a new line >> discipline for each specific device, sometimes found on a specific board >> only, why not just create a new bus type? > > I'd tend to agree with you, as I also have a use case for that: braille > & speech synthesis devices. However for now I haven't found a really > convincing argument why line disciplines aren't enough. I was in the same situation three years ago when I implemented the ser_gigaset driver for an RS232 connected ISDN adapter, and found the line discipline (LD) interface quite adequate once I had figured out how to use it. The only inconvenience is how LDs are loaded and attached to a serial interface, via the TIOCSETD ioctl, because you need a userspace daemon which keeps the tty device open so that the LD stays attached to it. -- Tilman Schmidt E-Mail: tilman@xxxxxxx Bonn, Germany Diese Nachricht besteht zu 100% aus wiederverwerteten Bits. Ungeöffnet mindestens haltbar bis: (siehe Rückseite)
Attachment:
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel