设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 操作系统 >> OpenBSD >> OpenBSD可加载内核模块编程完全指南
精品推荐
OpenBSD点击TOP10
·Free BSD,Linux之比较
·freebsd VPN 搭建
·freebsd系统时间同步及ntp服务的提供
·freebsd ipf+ipnat+ipfw建立带流量控制的透明网关
·FreeBSD的配置
·ipf+ipnat+ipfw建立带流量控制的透明网关
·POSTFIX下的反垃圾反病毒邮件系统
·FreeBSD 5.2.1R Web Server架设实例过程
·OpenBSD可加载内核模块编程完全指南
·FreeBSD+IPFILTER实现整网(N个Vlan)透明代理上网
操作系统点击TOP10
·Windows Vista完全硬盘安装法
·Windows Vista 激活不求人
·Windows Vista局域网网络连接设置
·Windows Vista系统动态桌面截图欣赏
·Windows XP中磁盘的分区应用
·Windows NT/2000/XP 出现蓝屏并显示“STOP 0x0000007f”错误
·让Windows XP变身Vista
·一招搞定Vista系统软件不兼容问题
·教你如何正确配置和优化Windows Vista
·只转两圈 加快Windows XP启动速度
精选专题

OpenBSD可加载内核模块编程完全指南

作者: 来源:网络文章 时间:2005-12-13 0:45:31

OpenBSD可加载内核模块编程完全指南(6)         char    *lkm_name;
        u_long  lkm_offset;
        DEVTYPE lkm_devtype;
        union {
                void    *anon;
                struct bdevsw   *bdev;
                struct cdevsw   *cdev;
        } lkm_dev;
        union
        {
                struct bdevsw bdev;
                struct cdevsw cdev;
        } lkm_olddev;
};

首先我们需要一个模块的类型(这里是LM_DEV),然后是lkm的版本号,再就是它的名称和它在cdevsw[]或者bdevsw[]表中的位置

(lkm_offset).然后我们到了DEVTYPE定义的
lkm_devtype成员,它定义了我们设备的类型,或者是一个字符型设备或者是一个块设备,分别被LM_DT_CHAR或者LM_DT_BLOCK宏指

定.再下面定义了两个枚举类型的结构,在模
快被加载的时候分别定义了新的设备的操作空间以及保留了老的设备结构,此结构通过MOD_DEV宏来初始化:
MOD_DEV("ourdev", LM_DT_CHAR, -1, &cdev_ourdev)

首先我们通过我们的模块名以及设备类型,在此例中我们得知我们创建的是一个字符型的设备.接下来需要在cdevsw[]中有个入口,就象上面

的系统调用的例子那样,-1代表我们可以
不去关心放置的确切位置,让系统自己去寻找可用的入口.如果没有空闲的入口,函数ENFILE ("Too many open files in system")将会被

返回.最后我们通过初始化cdevsw
结构来对我们的设备进行操作.
我们的字符设备将会支持四种操作:open,close,read和ioctl.不能干再多的事情了,它将存储一个字符串和一个数字,该数字可以被ioctl调用

设置和返回,字符串也可以用read
调用返回.
我们定义的内部结构如下:

#define MAXMSGLEN 100

struct ourdev_io {
        int value;

1.OpenBSD可加载内核模块编程完全指南(1)
2.OpenBSD可加载内核模块编程完全指南(2)
3.OpenBSD可加载内核模块编程完全指南(3)
4.OpenBSD可加载内核模块编程完全指南(4)
5.OpenBSD可加载内核模块编程完全指南(5)
6.OpenBSD可加载内核模块编程完全指南(6)
7.OpenBSD可加载内核模块编程完全指南(7)
8.OpenBSD可加载内核模块编程完全指南(8)
9.OpenBSD可加载内核模块编程完全指南(9)
10.OpenBSD可加载内核模块编程完全指南(10)
11.OpenBSD可加载内核模块编程完全指南(11)
12.OpenBSD可加载内核模块编程完全指南(12)
13.OpenBSD可加载内核模块编程完全指南(13)
14.OpenBSD可加载内核模块编程完全指南(14)
15.OpenBSD可加载内核模块编程完全指南(15)
16.OpenBSD可加载内核模块编程完全指南(16)
17.OpenBSD可加载内核模块编程完全指南(17)
18.OpenBSD可加载内核模块编程完全指南(18)
19.OpenBSD可加载内核模块编程完全指南(19)
共19页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [198 :>

OpenBSD可加载内核模块编程完全指南 相关文章:
OpenBSD可加载内核模块编程完全指南 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com