1#ifndef COMPONENT_H 2#define COMPONENT_H 3 4#include <linux/stddef.h> 5 6struct device; 7 8struct component_ops { 9 int (*bind)(struct device *comp, struct device *master, 10 void *master_data); 11 void (*unbind)(struct device *comp, struct device *master, 12 void *master_data); 13}; 14 15int component_add(struct device *, const struct component_ops *); 16void component_del(struct device *, const struct component_ops *); 17 18int component_bind_all(struct device *master, void *master_data); 19void component_unbind_all(struct device *master, void *master_data); 20 21struct master; 22 23struct component_master_ops { 24 int (*bind)(struct device *master); 25 void (*unbind)(struct device *master); 26}; 27 28void component_master_del(struct device *, 29 const struct component_master_ops *); 30 31struct component_match; 32 33int component_master_add_with_match(struct device *, 34 const struct component_master_ops *, struct component_match *); 35void component_match_add_release(struct device *master, 36 struct component_match **matchptr, 37 void (*release)(struct device *, void *), 38 int (*compare)(struct device *, void *), void *compare_data); 39 40static inline void component_match_add(struct device *master, 41 struct component_match **matchptr, 42 int (*compare)(struct device *, void *), void *compare_data) 43{ 44 component_match_add_release(master, matchptr, NULL, compare, 45 compare_data); 46} 47 48#endif 49