linux中的outb、outw、inb、inw
在linux的驱动程序中,都会使用大量的outb、outw、inb、inw等等宏来访问硬件或寄存器。这些宏的定义都在相应处理器体系下的include\asm目录下的io.h中定义。追究下去,这些宏最终就是一个volatile变量的的赋值:
#define __arch_putb(v,a) (*(volatile unsigned char *)(a) = (v))
#define __raw_writeb(v,a) __arch_putb(v,a)
#define outb(v,p) __raw_writeb(v,__io(p))
在(*(volatile unsigned char *)(a) = (v))中,a是一个物理地址(实地址,多数是特殊功能寄存器地址)。(volatile unsigned char *)对a进行类型转换,成为一个指向该地址指针,最后*(volatile unsigned char *)(a)引用该指针对该地址赋值v。这样就可以达到访问底层硬件的目的了。
相关文档:
Cassandra是一个开源的分布式Key-Value存储系统,主要用于Facebook、Digg、Twitter等大型大数据量的网站,现在已经成为Apache的顶级项目。
需要先安装Java 1.6以上版本和Thrift。
下载Cassandra:
1.wget http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.6.0/apache-cassandra-0.6.0-bin.tar.gz
解压缩:
2.t ......
从前天开始学习驱动,感觉不到驱动的精髓。不过随着时间的流逝我将搞定他。
因为我不是特别动如果我写的不到位的地方希望大家指正,共同进步
。
设备驱动
驱动框架:
驱动和普通程序的区别在于他是事件驱动
的,也就是说他不是像普通程序那样从main()执行,从main()结束。因为驱动是以模块的形式“融合”入 ......
Linux版的google-chrome,为了"不重造轮子",使用第三方工具进行证书的验证。
方法如下:
先决条件:安装好第三方的证书管理工具:
yum install nss-tools
第一、从https网站,导出CA证书,方法参考:
http://blog.avirtualhome.com/2010/02/02/adding-ssl-certificates-to-google-chrome-linux-ubuntu/
考虑到一些英 ......
第一部分 第三章 Linux主机的规划
1.计算机硬件配置基本知识(略)
2.Linux中的硬件驱动号,在Linux中每个设备都被当成一个文件来处理
IDE硬盘: /dev/hd[a-d]
SCSI硬盘:/dev/sd[a-p]
U盘: &nbs ......
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
pthread_mutex_t wqy_mutex_pause = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t wqy_cond_pause = PTHREAD_COND_INITIALIZER;
bool wqy_pthread_pause = false;
void wqy_pthread_suspend(void)
{
if ......