免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3622 | 回复: 2
打印 上一主题 下一主题

cdev_alloc 的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-20 16:58 |只看该作者 |倒序浏览
cdev_alloc 可以用来动态分配一个struct cdev 结构

函数原型:
      struct cdev *cdev_alloc(void) ;

问题:

      要想动态或者一个struct cdev,用kmalloc不就可以了吗?为什么还有一个专门的处理函数?

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
2 [报告]
发表于 2009-10-20 17:13 |只看该作者

  1. 527 /**
  2. 528  * cdev_alloc() - allocate a cdev structure
  3. 529  *  
  4. 530  * Allocates and returns a cdev structure, or NULL on failure.
  5. 531  */
  6. 532 struct cdev *cdev_alloc(void)
  7. 533 {      
  8. 534     struct cdev *p = kzalloc(sizeof(struct cdev), GFP_KERNEL);
  9. 535     if (p) {
  10. 536         INIT_LIST_HEAD(&p->list);
  11. 537         kobject_init(&p->kobj, &ktype_cdev_dynamic);
  12. 538     }
  13. 539     return p;
  14. 540 }      
复制代码


因为kzalloc以后还要kobject_init

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
3 [报告]
发表于 2009-11-07 23:11 |只看该作者
原帖由 qiangqiang02 于 2009-10-20 16:58 发表
cdev_alloc 可以用来动态分配一个struct cdev 结构

函数原型:
      struct cdev *cdev_alloc(void) ;

问题:

      要想动态或者一个struct cdev,用kmalloc不就可以了吗?为什么还有一个专门的处理 ...


封装复用,还有LS说的,实际上单纯分配一个结构简单,但是要更新相关的系统数据结构就比较复杂了
封装一下方便许多
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP