136 int (*probe) (struct device * dev); 137 int (*remove) (struct device * dev); 138 void (*shutdown) (struct device * dev); 139 int (*suspend) (struct device * dev, pm_message_t state); 140 int (*resume) (struct device * dev); 141}; 1. 2. 3. 4. 5. 6. 7. 8. ...
enum probe_type probe_type; const struct of_device_id *of_match_table; const struct acpi_device_id *acpi_match_table; int (*probe) (struct device *dev); int (*remove) (struct device *dev); void (*shutdown) (struct device *dev); int (*suspend) (struct device *dev, pm_message_t...
在最低层, Linux 系统中的每个设备由一个 struct device 代表: struct device { struct device *parent; struct kobject kobj; char bus_id[BUS_ID_SIZE]; struct bus_type *bus; struct device_driver *driver; void *driver_data; void (*release)(struct device *dev); /* Several fields omitted */...
void *dev_get_drvdata(const struct device *dev)///返回驱动数据的指针, 参数设备指针 { if (dev && dev->p)//设备指针不为NULL, 下面的p也不为NULL return dev->p->driver_data;//返回它的驱动数据 return NULL;///否则返回NULL } 你还是问问把,感觉加的注释也没啥意义 ...
11 12 int (*match)(struct device * dev, struct device_driver * drv); 13 int (*hotplug) (struct device *dev, char **envp, 14 int num_envp, char *buffer, int buffer_size); 15 int (*suspend)(struct device * dev, u32 state); 16 int (*resume)(struct device * dev); 17 }; ...
@@ -950,7 +950,7 @@ static int __usb_bus_reprobe_drivers(struct device *dev, void *data) int ret; /* Don't reprobe if current driver isn't usb_generic_driver */ if (dev->driver != &usb_generic_driver.drvwrap.driver) if (dev->driver != &usb_generic_driver.driver) return...
struct net_device *dev = (struct net_device *)ptr; switch(event) { caseNETDEV_UP: if(dev && dev->name) printk("dev[%s] is up\n",dev->name); break; caseNETDEV_DOWN: if(dev && dev->name) printk("dev[%s] is down\n",dev->name); ...
u8 tos, struct net_device *dev) { ... res = ip_route_input_slow(skb, daddr, saddr, tos, dev); returnres; } 这里记着 ip_route_input_slow 就行了,后面我们再看。 1.3 linux 路由小结 路由在内核协议栈中的位置可以用如下一张图来表示。
//从devicetree数据中populateplatform devices。intof_platform_populate(structdevice_node *root,conststruct of_device_id *matches,conststruct of_dev_auxdata *lookup,structdevice *parent){ structdevice_node *child;intrc = 0;root= root ? of_node_get(root) : of_find_node_by_path("...
struct device*dev; /* parent device */ struct resource*addr_res; /* resources found */ struct resource *data_res;struct resource*addr_req; /* resources requested */ struct resource *data_req;struct resource *irq_res;int irq_wake;struct mutex addr_lock;/* phy and ee...