linux内核模块编程之符号导出
很简单的一个程序,sub模块提供两个函数sub_integer,add_integer,并将其导出到内核符号表中,sub_test模块对这两个函数进行调用。这算是自己写的第一个内核模块程序吧,纪念一下.
sub.c:
#include<linux/init.h>
#include<linux/kernel.h>
#include<linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
//int add_integar(int,int);
//int sub_integar(int,int);
int add_integer(int a,int b){
return a+b;
}
int sub_integer(int a,int b){
return a-b;
}
int __init mod_init(){
printk(KERN_ALERT "the first module program");
return 0;
}
void __exit mod_exit(){
printk(KERN_ALERT "i like u");
}
EXPORT_SYMBOL(add_integer);
EXPORT_SYMBOL(sub_integer);
module_init(mod_init);
module_exit(mod_exit);
sub_test.c:
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
MODULE_LICENSE("Dual BSD/GPL");
extern int sub_integer(int,int);
extern int add_integer(int,int);
int __init test1(void){
int a=sub_integer(3,1);
int b=add_integer(2,2);
printk(KERN_ALERT"sub:%d\nadd:%d\n",a,b);
return 0;
}
void __exit test2(void){
printk(KERN_ALERT"bybye\n");
}
module_init(test1);
module_exit(test2);
对这两个函数的引用应该有比extern更好的方式,要是都extern就太麻烦了
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
Console 修改/etc/inputrc文件
set bell-style off
VIM 如果是在 console 模式下使用 vi/vim,一旦按错键会发出 bi 的一声,这样做可以提醒我们,但是很多时候会影响其他人工作、学习或者休息,如何关闭呢?
可以在 vi/vim 中使用
:set noeb
命令(其中 noeb 是 noerrorbells 的缩写) ......
作者:王昭银
---- SCO
Unix系统因其稳定可靠的特点,在金融、保险等行业得到广泛应用,但他的安装和维护对于专业技术人员也不是一件轻松的事。笔者所维护的系统安装有SCO
Unix操作系统、Informix数据库连同应用软件,安装后还要调整核心参数、安装设备连同链接核心等,安装一套完整的系统需花费数小时。所以,假如
制 ......