All of lore.kernel.org
 help / color / mirror / Atom feed
* serial and tty driver
@ 2007-02-17 17:31 Mockern
  2007-02-17 18:24 ` Paul Fulghum
  0 siblings, 1 reply; 5+ messages in thread
From: Mockern @ 2007-02-17 17:31 UTC (permalink / raw)
  To: linux-kernel


I have a question, what is really difference between serial and tty
drivers?

As I understand tty is high level and communicates with user space. 

Thank you  

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: serial and tty driver
  2007-02-17 17:31 serial and tty driver Mockern
@ 2007-02-17 18:24 ` Paul Fulghum
  2007-02-17 23:20   ` Theodore Tso
  0 siblings, 1 reply; 5+ messages in thread
From: Paul Fulghum @ 2007-02-17 18:24 UTC (permalink / raw)
  To: Mockern; +Cc: linux-kernel

Mockern wrote:
> I have a question, what is really difference between serial and tty
> drivers?
> 
> As I understand tty is high level and communicates with user space. 

The serial core implements many of the details of a tty
driver in a common place so that individual hardware drivers
(serial drivers) only need implement the hardware specific code.

This prevents duplicating tty logic in many drivers,
with the possibility of mistakes/inconsistency in the
different tty drivers.

The stand alone tty drivers are mostly legacy code from
the time before serial core that have not been ported
to be a serial drivers.

--
Paul

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: serial and tty driver
  2007-02-17 18:24 ` Paul Fulghum
@ 2007-02-17 23:20   ` Theodore Tso
  2007-02-18  8:52     ` Mockern
  0 siblings, 1 reply; 5+ messages in thread
From: Theodore Tso @ 2007-02-17 23:20 UTC (permalink / raw)
  To: Paul Fulghum; +Cc: Mockern, linux-kernel

On Sat, Feb 17, 2007 at 12:24:22PM -0600, Paul Fulghum wrote:
> Mockern wrote:
> >I have a question, what is really difference between serial and tty
> >drivers?
> >
> >As I understand tty is high level and communicates with user space. 
> 
> The serial core implements many of the details of a tty
> driver in a common place so that individual hardware drivers
> (serial drivers) only need implement the hardware specific code.
> 
> This prevents duplicating tty logic in many drivers,
> with the possibility of mistakes/inconsistency in the
> different tty drivers.
> 
> The stand alone tty drivers are mostly legacy code from
> the time before serial core that have not been ported
> to be a serial drivers.

Not necessarily; there are a number of tty drivers, such as the
console drivers and pseudo-tty drivers that have absolutely nothing to
do with an RS-232 port.

On the other side of the argument, another factorization of the layers
that might have made sense was to move the functionality to the
high-level tty layer (or in the case of hangup code, all the way up to
the VFS layer as a generic sys_revoke functionality), but the reason
why it didn't is largely historical.

						- Ted

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: serial and tty driver
  2007-02-17 23:20   ` Theodore Tso
@ 2007-02-18  8:52     ` Mockern
  2007-02-18 13:03       ` Theodore Tso
  0 siblings, 1 reply; 5+ messages in thread
From: Mockern @ 2007-02-18  8:52 UTC (permalink / raw)
  To: tytso; +Cc: linux-kernel

Thank you for you respond.

I asked this question since I have one problem with my tty driver.
It based on serial_core.c. It works well except Linux cat operation:(.
(e.g. cat < ttyS10). I thought in tty driver there is no function
for this operation and I wanted to know that maybe serial driver has it.

Could it be the reason that cat operation in tty driver does not work
(but I can write and read from user space application!)?
Or maybe I need to implement a special function in my tty driver to support Linux
cat operation?

Thank you again 

  

>On Sat, Feb 17, 2007 at 12:24:22PM -0600, Paul Fulghum wrote:
>> Mockern wrote:
>> >I have a question, what is really difference between serial and tty
>> >drivers?
>> >
>> >As I understand tty is high level and communicates with user space. 
>> 
>> The serial core implements many of the details of a tty
>> driver in a common place so that individual hardware drivers
>> (serial drivers) only need implement the hardware specific code.
>> 
>> This prevents duplicating tty logic in many drivers,
>> with the possibility of mistakes/inconsistency in the
>> different tty drivers.
>> 
>> The stand alone tty drivers are mostly legacy code from
>> the time before serial core that have not been ported
>> to be a serial drivers.
>
>Not necessarily; there are a number of tty drivers, such as the
>console drivers and pseudo-tty drivers that have absolutely nothing to
>do with an RS-232 port.
>
>On the other side of the argument, another factorization of the layers
>that might have made sense was to move the functionality to the
>high-level tty layer (or in the case of hangup code, all the way up to
>the VFS layer as a generic sys_revoke functionality), but the reason
>why it didn't is largely historical.
>
>						- Ted
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at  http://www.tux.org/lkml/


-- 
Яндекс.Почта: объем почтового ящика не ограничен! http://mail.yandex.ru/monitoring/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: serial and tty driver
  2007-02-18  8:52     ` Mockern
@ 2007-02-18 13:03       ` Theodore Tso
  0 siblings, 0 replies; 5+ messages in thread
From: Theodore Tso @ 2007-02-18 13:03 UTC (permalink / raw)
  To: Mockern; +Cc: linux-kernel

On Sun, Feb 18, 2007 at 11:52:58AM +0300, Mockern wrote:
> Thank you for you respond.
> 
> I asked this question since I have one problem with my tty driver.
> It based on serial_core.c. It works well except Linux cat operation:(.
> (e.g. cat < ttyS10). I thought in tty driver there is no function
> for this operation and I wanted to know that maybe serial driver has it.
> 
> Could it be the reason that cat operation in tty driver does not work
> (but I can write and read from user space application!)?
> Or maybe I need to implement a special function in my tty driver to support Linux
> cat operation?

If you do something like "cat < ttyS10" it will work by opening the
device just like a user space application --- but the shell, which is
opening /dev/ttyS10, won't use any of the special flags that a user
space application might use to not wait for the carrier detect line to
go high, for example.  

I'd have to see the sources of the driver and your user space
application to be sure, but one thing you should try is "stty -F
/dev/ttyS10 clocal" and see if that allows "cat < /dev/ttyS10" to
work.  

Regards,

						- Ted

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-02-18 13:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-17 17:31 serial and tty driver Mockern
2007-02-17 18:24 ` Paul Fulghum
2007-02-17 23:20   ` Theodore Tso
2007-02-18  8:52     ` Mockern
2007-02-18 13:03       ` Theodore Tso

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.