Linux 内核设备注册

通常的注册和注销函数在:

int device_register(struct device *dev); void device_unregister(struct device *dev);

我们已经见到 lddbus 代码如何注册它的总线类型. 但是, 一个实际的总线是一个设备并 且必须单独注册. 为简单起见, lddbus 模块只支持一个单个虚拟总线, 因此这个驱动在 编译时建立它的设备:

static void ldd_bus_release(struct device *dev)

{

printk(KERN_DEBUG "lddbus release ");

 }

struct device ldd_bus = {

.bus_id = "ldd0",

.release = ldd_bus_release

};

这是顶级总线, 因此 parent 和 bus 成员留为 NULL. 我们有一个简单的, no-op release 方法, 并且, 作为第一个(并且唯一)总线, 它的名子时 ldd0. 这个总线设备被 注册, 使用:

ret = device_register(&ldd_bus); if (ret)

printk(KERN_NOTICE "Unable to register ldd0 ");

一旦调用完成, 新总线可在 sysfs 中 /sys/devices 下面见到. 任何加到这个总线的设 备接着在 /sys/devices/ldd0 下显示.

原文地址:https://www.cnblogs.com/fanweisheng/p/11147844.html