内核模块参数设计
2015-08-26 15:26
218 查看
通过module_param指定模块参数,模块参数用于在加载模块时传递参数给模块
module_param(name, type, perm)
name:名字
type:类型
perm:权限
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("EmbedSky");
MODULE_DESCRIPTION("Hello world module");
static char *name = "Guwhao";
static int age = 30;
module_param(age, int, S_IRUGO);
module_param(name, charp, S_IRUGO);
static int hello_init(void)
{
printk("<0>"" Name:%s\n", name);
printk(KERN_EMERG" Age:%d\n", age);
printk(KERN_ERR "hello world!\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_EMERG "hello exit!\n");
}
module_init(hello_init);
module_exit(hello_exit);
在输入的时候加上 age=12 将改变age的值
导出内核模块符号
EXPORT_SYMBOL(*****);
EXPORT_SYMBOL_GPL(*****);
那么其他模块可以使用这个符号
uname -r 查看当前运行的内核版本
module_param(name, type, perm)
name:名字
type:类型
perm:权限
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("EmbedSky");
MODULE_DESCRIPTION("Hello world module");
static char *name = "Guwhao";
static int age = 30;
module_param(age, int, S_IRUGO);
module_param(name, charp, S_IRUGO);
static int hello_init(void)
{
printk("<0>"" Name:%s\n", name);
printk(KERN_EMERG" Age:%d\n", age);
printk(KERN_ERR "hello world!\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_EMERG "hello exit!\n");
}
module_init(hello_init);
module_exit(hello_exit);
在输入的时候加上 age=12 将改变age的值
导出内核模块符号
EXPORT_SYMBOL(*****);
EXPORT_SYMBOL_GPL(*****);
那么其他模块可以使用这个符号
uname -r 查看当前运行的内核版本
相关文章推荐
- div+css实现蓝色vista风格css导航菜单效果
- 顺序表
- 算法实现一行数据左边奇数右边偶数
- 虚函数的机制
- 从零开始学Java之单例模式:懒汉模式和饱汉模式
- iOS入门如何选择Swift和objective-c
- Java开发中Maven Jar包管理建议
- poj 3580 splay
- Active Directory Tools For SharePoint
- 【Git 】$ ./gradlew idea 构建一个idea的项目
- leetcode 220
- js根据类名获取元素——自定义getElementsByClass()
- Android下拉上滑显示与隐藏Toolbar另一种实现
- 理解Linux系统负荷
- pointPolygonTest函数
- R语言_方差分析
- Android下拉上滑显示与隐藏Toolbar另一种实现
- salt-API基本验证命令
- JS文档生成工具:JSDoc 介绍
- Hibernate延迟加载