codecamp

18.9. 快速参考

18.9. 快速参考

本节提供了对本章介绍的概念的参考. 它还解释了每个 tty 驱动需要包含的头文件的角色. 在 tty_driver 和 tty_device 结构中的成员变量的列表, 但是, 在这里不重复.

#include <linux/tty_driver.h>

头文件, 包含 struct tty_driver 的定义和声明一些在这个结构中的不同的标志.

#include <linux/tty.h>

头文件, 包含 tty_struct 结构的定义和几个不同的宏定义来易于存取 struct termios 的成员的单个值. 它还含有 tty 驱动核心的函数声明.

#include <linux/tty_flip.h>

头文件, 包含几个 tty flip 缓冲内联函数, 使得易于操作 flip 缓冲结构.

#include <asm/termios.h>

头文件, 包含 struct termio 的定义, 用于内核所建立的特定硬件平台.

struct tty_driver *alloc_tty_driver(int lines);

函数, 创建一个 struct tty_driver, 可之后传递给 tty_register_driver 和 tty_unregister_driver 函数.

void put_tty_driver(struct tty_driver *driver);

函数, 清理尚未成功注册到 tty 内核的 struct tty_driver 结构.

void tty_set_operations(struct tty_driver *driver, struct tty_operations *op);

函数, 初始化 struct tty_driver 的函数回调. 有必要在 tty_register_driver 可被调用前调用.

int tty_register_driver(struct tty_driver *driver);int tty_unregister_driver(struct tty_driver *driver);

函数, 从 tty 核心注册和注销一个 tty 驱动.

void tty_register_device(struct tty_driver *driver, unsigned minor, struct device *device);
void tty_unregister_device(struct tty_driver *driver, unsigned minor);

对 tty 核心注册和注销一个单个 tty 设备的函数.

void tty_insert_flip_char(struct tty_struct *tty, unsigned char ch, char flag);

插入字符到 tty 设备的要被用户读的 flip 缓冲的函数.

TTY_NORMAL
TTY_BREAK
TTY_FRAME
TTY_PARITY
TTY_OVERRUN

flag 参数的不同值, 用在 tty_insert_flip_char 函数.

int tty_get_baud_rate(struct tty_struct *tty);

函数, 获取当前为特定 tty 设备设置的波特率.

void tty_flip_buffer_push(struct tty_struct *tty);

函数, 将当前 flip 缓冲中的数据推给用户.

tty_std_termios 

变量, 使用一套通用的缺省线路设置来初始化一个 termios 结构.

18.8. tty_struct 结构的细节
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }