uboot uclass和uclass_driver

struct uclass {

         void*priv;

         structuclass_driver *uc_drv;

         structlist_head dev_head;

         structlist_head sibling_node;

};

struct uclass_driver {

         constchar *name;

         enumuclass_id id;

         int(*post_bind)(struct udevice *dev);

         int(*pre_unbind)(struct udevice *dev);

         int(*pre_probe)(struct udevice *dev);

         int(*post_probe)(struct udevice *dev);

         int(*pre_remove)(struct udevice *dev);

         int(*child_post_bind)(struct udevice *dev);

         int(*child_pre_probe)(struct udevice *dev);

         int(*init)(struct uclass *class);

         int(*destroy)(struct uclass *class);

         intpriv_auto_alloc_size;

         intper_device_auto_alloc_size;

         intper_device_platdata_auto_alloc_size;

         intper_child_auto_alloc_size;

         intper_child_platdata_auto_alloc_size;

         constvoid *ops;

         uint32_tflags;

};

你可能感兴趣的:(uboot,源码研究)