X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=Documentation%2Ftty.txt;h=8ff7bc2a08113223e783fb57a03ec494d5e84053;hb=43bc926fffd92024b46cafaf7350d669ba9ca884;hp=a496056426c64c5da0cec1f972fabe28002b862f;hpb=a2c21200f1c81b08cb55e417b68150bba439b646;p=linux-2.6.git diff --git a/Documentation/tty.txt b/Documentation/tty.txt index a49605642..8ff7bc2a0 100644 --- a/Documentation/tty.txt +++ b/Documentation/tty.txt @@ -22,7 +22,7 @@ copy of the structure. You must not re-register over the top of the line discipline even with the same data or your computer again will be eaten by demons. -In order to remove a line discipline call tty_register_ldisc passing NULL. +In order to remove a line discipline call tty_unregister_ldisc(). In ancient times this always worked. In modern times the function will return -EBUSY if the ldisc is currently in use. Since the ldisc referencing code manages the module counts this should not usually be a concern. @@ -49,10 +49,9 @@ open() - Called when the line discipline is attached to discipline for this tty will occur until it completes successfully. Can sleep. -write() - A process is writing data from user space - through the line discipline. Multiple write calls - are serialized by the tty layer for the ldisc. May - sleep. +write() - A process is writing data through the line + discipline. Multiple write calls are serialized + by the tty layer for the ldisc. May sleep. flush_buffer() - May be called at any point between open and close. @@ -94,6 +93,11 @@ write_wakeup() - May be called at any point between open and close. ldisc must be careful about setting order and to handle unexpected calls. Must not sleep. + The driver is forbidden from calling this directly + from the ->write call from the ldisc as the ldisc + is permitted to call the driver write method from + this function. In such a situation defer it. + Locking