单个变量及数组能够在模块加载时传递给模块,那么结构体数组是否可行呢?
传递如下的结构体数组:struct usbid{int vid;int pid;};static struct usbid id[5];
insmod ./hello.ko id=4,3,2,1,0
打印结果:id: 4,0,3,0,2,0,1,0,0,0
我的赋值方式是否有问题,试了{};等符号,不能够识别请问应该如何赋值?
把详细代码贴出来看看
写的一个测试程序
struct usbid{ int vid; int pid;};
static struct usbid id[5];
static int hello_init(void){ printk("id: %d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n", id[0].vid,id[0].pid,id[1].vid,id[1].pid, id[2].vid,id[2].pid,id[3].vid,id[3].pid, id[4].vid,id[4].pid); return 0;}
static void hello_exit(void){ printk("Goodbye!\n ");}
module_init(hello_init);module_exit(hello_exit);
module_param_array(id, int, num, S_IRUGO | S_IWUSR);
建议在用户空间实现
to dreamice: 呵呵,没关系,这样显示很好!
insmod是在用户态做的,“insmod ./hello.ko id=4,3,2,1,0”,结果是把值赋给了结构体的第一个成员应该怎样写才能给结构体的每个成员都赋值呢?在通过配置文件给模块配置参数时需要这种应用,请高手指点,多谢!
你研究一下Linux module programming,置顶资料里面有。不过我建议不要传结构体这样的东东,显得比较复杂。
注意好user space 和kernel space应该都没有问题吧
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(7)
传递如下的结构体数组:
struct usbid{
int vid;
int pid;
};
static struct usbid id[5];
insmod ./hello.ko id=4,3,2,1,0
打印结果:
id: 4,0,3,0,2,0,1,0,0,0
我的赋值方式是否有问题,试了{};等符号,不能够识别
请问应该如何赋值?
把详细代码贴出来看看
写的一个测试程序
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
struct usbid{
int vid;
int pid;
};
static struct usbid id[5];
static int hello_init(void)
{
printk("id: %d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
id[0].vid,id[0].pid,id[1].vid,id[1].pid,
id[2].vid,id[2].pid,id[3].vid,id[3].pid,
id[4].vid,id[4].pid);
return 0;
}
static void hello_exit(void)
{
printk("Goodbye!\n ");
}
module_init(hello_init);
module_exit(hello_exit);
module_param_array(id, int, num, S_IRUGO | S_IWUSR);
建议在用户空间实现
to dreamice: 呵呵,没关系,这样显示很好!
insmod是在用户态做的,
“insmod ./hello.ko id=4,3,2,1,0”,结果是把值赋给了结构体的第一个成员
应该怎样写才能给结构体的每个成员都赋值呢?
在通过配置文件给模块配置参数时需要这种应用,请高手指点,多谢!
你研究一下Linux module programming,置顶资料里面有。不过我建议不要传结构体这样的东东,显得比较复杂。
注意好user space 和kernel space应该都没有问题吧