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
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
信号指定处理函数
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 ......
tty0-6是linux本地终端,pts/x是远程登陆需要的终端,比如某人要telnet到你的机子,就需要你的系统有pts/x。
基本概念:
1. tty(终端设备的统称):
tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代 ......
前言,Linux/Unix 社区的版块不热闹,新手太多,高手太忙,偶把自己这几年的Linux学习的过程讲讲,希望能给大家有点帮助,
引导初学者学习的方向,少走弯路,事半功倍,同时也是抛砖引玉,请过来人热烈发言。
1. 首先熟悉 Linux
建议在 Windows 上安装 VMware Workstation 6.5.0(以下简称VM), 下载种子在 ......
/* Offtimer.c.For auto halt. */
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#define DELAY 60/* Time of sleeping */
int main()
{
time_t now;
struct tm *p;
while(1)
{
now = time(NULL);
&n ......