怎么根据不同的设备分配不同的缓冲区大小
时间:2010-11-16
来源:互联网
小菜学习Linux内核驱动,想以scull字符设备驱动为原型实现自己的一个驱动。
这个驱动需要生成几个不同的设备,比如生成5个不同的字符设备,这5个设备都要使用到我编写的驱动。
我想要让这几个不同设备的内存缓冲区大小不一样,比如第一个设备分配的缓冲区大小:1kb 第二个设备: 2kb 。。依次类推
驱动的子设备号是 0,1,2,3,4
我想在open_my_device函数即打开设备驱动的时候,分配这些不同大小的缓冲区,这样子的话我需要怎么操作呢?条件编译?还是怎么弄呢?
麻烦各位,谢谢了
这个驱动需要生成几个不同的设备,比如生成5个不同的字符设备,这5个设备都要使用到我编写的驱动。
我想要让这几个不同设备的内存缓冲区大小不一样,比如第一个设备分配的缓冲区大小:1kb 第二个设备: 2kb 。。依次类推
驱动的子设备号是 0,1,2,3,4
我想在open_my_device函数即打开设备驱动的时候,分配这些不同大小的缓冲区,这样子的话我需要怎么操作呢?条件编译?还是怎么弄呢?
麻烦各位,谢谢了
作者: wpclub 发布时间: 2010-11-16
那么你得有一种机制,什么样的设备分配多大内存,然后让驱动可以获取到你的设备名,并根据设备名决定分配多大的内存。
作者: Godbach 发布时间: 2010-11-16
回复 Godbach
额,这个。。。我目前只生成一个内核module,这个module的名称是"dev_demo",并且需要借助这个内核module生成5个设备,这5个设备的唯一区别就是分配的缓冲区大小不一样
设备名?是不是设备节点?我有点菜
生成设备节点的话,需要加载进内核以后才可以通过mknod生成,/dev/demo1 /dev/demo2 ...... 后续的操作我不太清楚需要怎么做了,麻烦您指点一下吧?
btw:我还有一种想法就是不在open_my_device时分配内存,直接在初始化struct cdev的时候 根据不同的子设备编号0,1,2,3,4 分配好对应的内存缓冲区大小,这是可以做到的。上面的方法我只是想尝试一下,麻烦您再指点一下。。谢谢了
额,这个。。。我目前只生成一个内核module,这个module的名称是"dev_demo",并且需要借助这个内核module生成5个设备,这5个设备的唯一区别就是分配的缓冲区大小不一样
设备名?是不是设备节点?我有点菜
生成设备节点的话,需要加载进内核以后才可以通过mknod生成,/dev/demo1 /dev/demo2 ...... 后续的操作我不太清楚需要怎么做了,麻烦您指点一下吧?
btw:我还有一种想法就是不在open_my_device时分配内存,直接在初始化struct cdev的时候 根据不同的子设备编号0,1,2,3,4 分配好对应的内存缓冲区大小,这是可以做到的。上面的方法我只是想尝试一下,麻烦您再指点一下。。谢谢了

作者: wpclub 发布时间: 2010-11-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28