tty driver(1)
来源:互联网 发布:运动仿真软件 编辑:程序博客网 时间:2024/06/05 23:01
tty 子系统由那些文件组成?
/*******************************************************************************/
all the head file about tty.
include/linux/tty*.h
tty_flip.h
tty.h
tty_ldisc.h
tty_driver.h
/*******************************************************************************/
tty_flip.h
tty_flip.h: just function statement not including the structure definition;
/*******************************************************************************/
tty_ldisc.h:
struct tty_ldisc {
struct tty_ldisc_ops *ops;
atomic_t users;
};
struct tty_ldisc_ops {
int magic;
char *name;
int num;
int flags;
/*
* The following routines are called from above.
*/
int (*open)(struct tty_struct *);
---
}
/*******************************************************************************/
tty_driver.h
structures
struct tty_driver;
struct tty_operations
/*****************/
variables:
struct list_head tty_drivers;
/*******************************************************************************/
tty.h
structures
struct tty_buffer;
struct tty_bufhead;
struct tty_file_private;
struct tty_port;
struct tty_port_operations;
struct tty_struct;
/*****************/
variables:
struct class *tty_class;
struct mutex tty_mutex;
spinlock_t tty_files_lock;
const struct file_operations tty_ldiscs_proc_fops;
struct tty_ldisc_ops tty_ldisc_N_TTY;
/*******************************************************************************/
all the c file about tty.
obj-y += tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \
tty_buffer.o tty_port.o tty_mutex.o
tty_io.c
/*
* 'tty_io.c' gives an orthogonal feeling to tty's, be they consoles
* or rs-channels. It also implements echoing, cooked mode etc.
*
* Kill-line thanks to John T Kohl, who also corrected VMIN = VTIME = 0.
*
* Modified by Theodore Ts'o, 9/14/92, to dynamically allocate the
* tty_struct and tty_queue structures. Previously there was an array
* of 256 tty_struct's which was statically allocated, and the
* tty_queue structures were allocated at boot time. Both are now
* dynamically allocated only when the tty is open.
*
* Also restructured routines so that there is more of a separation
* between the high-level tty routines (tty_io.c and tty_ioctl.c) and
* the low-level tty routines (serial.c, pty.c, console.c). This
* makes for cleaner and more compact code. -TYT, 9/17/92
*
* Modified by Fred N. van Kempen, 01/29/93, to add line disciplines
* which can be dynamically activated and de-activated by the line
* discipline handling modules (like SLIP).
*
* NOTE: pay no attention to the line discipline code (yet); its
* interface is still subject to change in this version...
* -- TYT, 1/31/92
*
* Added functionality to the OPOST tty handling. No delays, but all
* other bits should be there.
* -- Nick Holloway <alfie@dcs.warwick.ac.uk>, 27th May 1993.
*
* Rewrote canonical mode and added more termios flags.
* -- julian@uhunix.uhcc.hawaii.edu (J. Cowley), 13Jan94
*
* Reorganized FASYNC support so mouse code can share it.
* -- ctm@ardi.com, 9Sep95
*
* New TIOCLINUX variants added.
* -- mj@k332.feld.cvut.cz, 19-Nov-95
*
* Restrict vt switching via ioctl()
* -- grif@cs.ucr.edu, 5-Dec-95
*
* Move console and virtual terminal code to more appropriate files,
* implement CONFIG_VT and generalize console device interface.
* -- Marko Kohtala <Marko.Kohtala@hut.fi>, March 97
*
* Rewrote tty_init_dev and tty_release_dev to eliminate races.
* -- Bill Hawes <whawes@star.net>, June 97
*
* Added devfs support.
* -- C. Scott Ananian <cananian@alumni.princeton.edu>, 13-Jan-1998
*
* Added support for a Unix98-style ptmx device.
* -- C. Scott Ananian <cananian@alumni.princeton.edu>, 14-Jan-1998
*
* Reduced memory usage for older ARM systems
* -- Russell King <rmk@arm.linux.org.uk>
*
* Move do_SAK() into process context. Less stack use in devfs functions.
* alloc_tty_struct() always uses kmalloc()
* -- Andrew Morton <andrewm@uow.edu.eu> 17Mar01
*/
n_tty.c
/*
* n_tty.c --- implements the N_TTY line discipline.
*
* This code used to be in tty_io.c, but things are getting hairy
* enough that it made sense to split things off. (The N_TTY
* processing has changed so much that it's hardly recognizable,
* anyway...)
*
* Note that the open routine for N_TTY is guaranteed never to return
* an error. This is because Linux will fall back to setting a line
* to N_TTY if it can not switch to any other line discipline.
*
* Written by Theodore Ts'o, Copyright 1994.
*
* This file also contains code originally written by Linus Torvalds,
* Copyright 1991, 1992, 1993, and by Julian Cowley, Copyright 1994.
*
* This file may be redistributed under the terms of the GNU General Public
* License.
*
* Reduced memory usage for older ARM systems - Russell King.
*
* 2000/01/20 Fixed SMP locking on put_tty_queue using bits of
* the patch by Andrew J. Kroll <ag784@freenet.buffalo.edu>
* who actually finally proved there really was a race.
*
* 2002/03/18 Implemented n_tty_wakeup to send SIGIO POLL_OUTs to
* waiting writing processes-Sapan Bhatia <sapan@corewars.org>.
* Also fixed a bug in BLOCKING mode where n_tty_write returns
* EAGAIN
*/
tty_ioctl.c
/*
* Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds
*
* Modified by Fred N. van Kempen, 01/29/93, to add line disciplines
* which can be dynamically activated and de-activated by the line
* discipline handling modules (like SLIP).
*/
tty_ldisc.c
line dis
tty_buf.c
/*
* Tty buffer allocation management
*/
tty_port.c
* Tty port functions
tty_mutex.c
/*
* The 'big tty mutex'
*
* This mutex is taken and released by tty_lock() and tty_unlock(),
* replacing the older big kernel lock.
* It can no longer be taken recursively, and does not get
* released implicitly while sleeping.
*
* Don't use in new code.
*/
- tty driver(1)
- Linux tty driver
- tty driver(2)
- tty driver(3)
- tty driver(4)
- tty driver(5)
- tty driver总结
- linux tty driver
- tty driver 赏析
- A soft watchdog of tty driver
- Linux TTY framework(4)_TTY driver
- TTY 1
- linux tty driver 相关结构体 整理(tty driver 自己写出来之前保持更新)
- TTY
- tty
- tty
- tty
- TTY
- SRM 577 Div II Level Two: EllysRoomAssignmentsDiv2
- ioctl() 函数
- 快速算法实现方法
- Eclipse+Tomcat配置
- VI命令
- tty driver(1)
- 时间函数的用法
- Android使用 LruCache 缓存图片
- 试论知识工作者的任务分析
- 基于Eclipse的Hadoop应用开发环境配置
- html to xml:Jtidy的使用及注意事项(jtidy-r938)
- 扒网站神器
- 关键路径算法 具体代码实现
- inux CentOS LAMP安装配置文档(apache+mysql+php+phpmyadmin)