1 /* Public domain. */ 2 3 #ifndef _LINUX_COMPONENT_H 4 #define _LINUX_COMPONENT_H 5 6 #include <sys/_null.h> 7 8 struct component_match; 9 struct device; 10 11 struct component_ops { 12 int (*bind)(struct device *, struct device *, void *); 13 void (*unbind)(struct device *, struct device *, void *); 14 }; 15 16 struct component_master_ops { 17 int (*bind)(struct device *); 18 void (*unbind)(struct device *); 19 }; 20 21 int component_add(struct device *, const struct component_ops *); 22 int component_add_typed(struct device *, const struct component_ops *, int); 23 #define component_del(a, b) 24 25 int component_bind_all(struct device *, void *); 26 #define component_unbind_all(a, b) 27 28 int component_compare_of(struct device *, void *); 29 int component_master_add_with_match(struct device *, 30 const struct component_master_ops *, struct component_match *); 31 32 #endif 33