内核版本2.6.24和2.6.32 device_create

时间:2012-05-25 14:38:26

标签: function linux-kernel device

我正在使用该功能创建设备 device_create() 但它在Ubuntu 8.04内核版本2.6.24中创建了一个警告:

  

警告:格式

的参数太多

以下是我使用此功能的方法:

device_create(my_class, NULL, MKDEV(major, 0), NULL, "my_dev");

此代码与 Ubuntu 10.04 - 内核版本2.6.32 一起正常工作,但在 Ubuntu 8.04 - 内核版本2.6中创建警告。 24

任何人都可以请我更正以删除该警告吗?

提前谢谢你。 娜斯迪胡

1 个答案:

答案 0 :(得分:1)

旧的API没有drvdata的第四个参数,你提供的是NULL。所以摆脱NULL,你应该没事。

也就是说,其他API也发生了变化,所以期待其他问题。考虑定义一些在内核版本中做正确事情的预处理器宏。例如:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
    #define my_device_create(a, b, c, d) device_create(a, b, c, NULL, d)
#else
    #define my_device_create(a, b, c, d) device_create(a, b, c, d)
#endif