Linux-字符设备-数据结构

来源:互联网 发布:怎么加入淘宝类目群 编辑:程序博客网 时间:2024/04/27 05:36

每个字符设备都对应一个tty_struct数据结构,主要用来保存终端设备当前参数设置、所属的前台进程组ID和字符IO缓冲队列等信息。Linux内核使用了数组tty_table[]来保存系统中每个终端设备的信息。


// tty数据结构。

 struct tty_struct {

         struct termiostermios;                  // 终端io属性和控制字符数据结构。

         int pgrp;                                //所属进程组。

         int session;                             //会话号。

         int stopped;                             //停止标志。

         void (*write)(structtty_struct * tty);   // tty写函数指针。

         struct tty_queue *read_q;                // tty读队列。

         struct tty_queue *write_q;               // tty写队列。

         struct tty_queue *secondary;             // tty辅助队列(存放规范模式字符序列)

         };                                       //可称为规范()模式队列。


   // tty字符缓冲队列数据结构。用于tty_struc结构中的读、写和辅助(规范)缓冲队列。

 struct tty_queue {

         unsigned long data;             // 队列缓冲区中含有字符行数值(不是当前字符数)。

                                            // 对于串口终端,则存放串行端口地址。

         unsigned long head;             //缓冲区中数据头指针。

         unsigned long tail;             // 缓冲区中数据尾指针。

         struct task_struct * proc_list;  //等待本队列的进程列表。

         char buf[TTY_BUF_SIZE];         //队列的缓冲区。

  };