mail:bookworepeng@Hotmail.com
qq:196568501
author:Driver Monkey
phone:13410905075
#include <linux/init.h> #include <linux/module.h> #include <linux/cdev.h> #include <linux/fs.h> #include <linux/device.h> MODULE_LICENSE("Dual BSD/GPL"); MODULE_AUTHOR("Driver Monkey"); static int monkey_match(struct device *dev, struct device_driver *driver) { printk(KERN_INFO"monkey_match()++\n"); printk(KERN_INFO"monkey_match()--\n"); return 0; } static int monkey_uevent(struct device *dev, struct kobj_uevent_env *env) { printk(KERN_INFO"monkey_hotplug()++\n"); printk(KERN_INFO"monkey_hotplug()++\n"); return 0; } struct bus_type monkey_bus_type = { .name = "monkey_bus", .match = monkey_match, .uevent = monkey_uevent, }; static int monkey_init(void) { int err = 0; printk("monkey_init()++\n"); err = bus_register(&monkey_bus_type); if(err < 0) return err; printk("monkey_init()--\n"); return 0; } static void monkey_exit(void) { printk(KERN_INFO"monkey_exit()++\n"); bus_unregister(&monkey_bus_type); printk(KERN_INFO"monkey_exit()--\n"); } module_init(monkey_init); module_exit(monkey_exit);
查看路径注册成功:
/sys/bus # ls
i2c monkey_bus scsi spi
mdio_bus platform serio usb