易截截图软件、单文件、免安装、纯绿色、仅160KB

linux 2.6源代码情景分析笔记之中断与异常6

每个中断向量都有自己的irq_desc_t描述符,所有的这些描述符组织在一起形成irq_desc数组。
typedef struct irq_desc {
        hw_irq_controller *handler;指向pic对象(hw_irq_controller描述符),服务于irq线
        void *handler_data;指向pic方法所使用的数据
        struct irqaction *action;       /* IRQ action list */标识当出现irq时要调用的中断服务例程。该字段指向irq的irqaction描述符链表的第一个元素。
        unsigned int status;            /* IRQ status */描述irq线状态的一组标志
        unsigned int depth;             /* nested irq disables */如果irq线被激活,则显示0;如果irq线被禁止了不止一次,则显示一个正数
        unsigned int irq_count;         /* For detecting broken interrupts */中断计数器,统计irq线上发生的中断计数
        unsigned int irqs_unhandled;中断计数器,统计irq线上发生的无法处理的中断进行计数
        spinlock_t lock;用于串行访问irq描述符和pic的自旋锁。
} ____cacheline_aligned irq_desc_t;
extern irq_desc_t irq_desc [NR_IRQS];
/*
 * IRQ line status.
 */
#define IRQ_INPROGRESS  1       /* IRQ handler active - do not enter! */IRQ的一个处理程序正在执行
#define IRQ_DISABLED    2       /* IRQ disabled - do not enter! */由一个设备驱动程序故意地禁用irq线
#define IRQ_PENDING     4       /* IRQ pending - replay on enable */一个irq已经出现在线上,它的出现也已对pic做出应答,但是内核还没有为它提供服务
#define IRQ_REPLAY      8 &nbs


相关文档:

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

linux内核函数笔记(二)

信号指定处理函数
void (*signal (int signum,void (*handle)(int)))(int);设置某个信号的处理方法
int sigaction(int signum,const struct sigaction *act,struct sigaction *oldact);用于检查或改变进程在接到信号时的动作
信号集操作函数
static inline void sigaddset(sigset_t *set,int _sig);
static inline voi ......

Linux tty/pty/pts 概念区别

tty0-6是linux本地终端,pts/x是远程登陆需要的终端,比如某人要telnet到你的机子,就需要你的系统有pts/x。 
基本概念:
 
 1. tty(终端设备的统称):
  tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代 ......

linux 2.6源代码情景分析笔记之中断与异常2

高级可编程控制器
如果系统只有一个cpu,主pic输出线以直截了当的方式连接到cpu的intr引脚。如果系统中包含两个或多个cpu,就需要更加复杂的pic.
intel从p3开始引入i/o高级可变成控制器(APIC)组件。80x86微处理器当前所有的cpu都含有一个本地apic。每个本地apic都有32位寄存器,一个内部时钟,一个本地定是设备以及为本� ......

linux 2.6源代码情景分析笔记之中断与异常3

初始化中断描述符表
内核启用中断以前,必须把idt表的初始地址装到idtr寄存器,并初始化表中的每一项。这项工作是在初始化系统时完成。
int指令允许用户态进程发出一个中断信号,其值可以是0-255的任意一个向量。因此。为了防止用户通过int指令模拟非法的中断和异常,idt的初始化必须非常小心。这可以通过把中断或者陷阱� ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号