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