关于class_device_create和class_device_destroy

我在linux-2.6.27版本下面编译驱动程序到时候,发现找不到class_device_create和class_device_destroy到声明。
在网上搜索以下,发现有人也遇到了此问题。
解决办法如下:
2.6.15中的函数:
class_device_create();
class_device_destroy();
在2.6.27中变为:
device_create()
device_destroy()

此函数声明在:include/linux/device.h
函数原型:drivers/base/core.c

在设备驱动程序中,可以使用`platform_device_register()`函数来注册一个平台设备并指定其`class`。该函数的第二个参数是一个指向`platform_device`结构体的指针,该结构体包含了设备的信息,其中一个成员是`dev`,可以通过该成员来指定设备的`class`。 例如,以下代码注册了一个名为`my_device`的平台设备,并将其`class`设置为`my_class`: ``` static struct platform_device my_device = { .name = "my_device", .id = -1, .dev = { .class = &my_class, }, }; int my_driver_probe(struct platform_device *pdev) { // do driver initialization here } static int __init my_driver_init(void) { platform_device_register(&my_device); platform_driver_register(&my_driver); return 0; } static void __exit my_driver_exit(void) { platform_driver_unregister(&my_driver); platform_device_unregister(&my_device); } module_init(my_driver_init); module_exit(my_driver_exit); ``` 其中,`my_class`是一个指向设备所属类的指针,可以通过`class_create()`函数创建。例如: ``` static struct class *my_class; static int __init my_driver_init(void) { my_class = class_create(THIS_MODULE, "my_class"); if (IS_ERR(my_class)) return PTR_ERR(my_class); platform_device_register(&my_device); platform_driver_register(&my_driver); return 0; } static void __exit my_driver_exit(void) { platform_driver_unregister(&my_driver); platform_device_unregister(&my_device); class_destroy(my_class); } module_init(my_driver_init); module_exit(my_driver_exit); ``` 这样就可以在`/sys/class/my_class/`路径下找到`my_device`设备的相关信息了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值