xref: /linux-6.15/include/linux/component.h (revision 9d54c8a3)
1 #ifndef COMPONENT_H
2 #define COMPONENT_H
3 
4 struct device;
5 
6 struct component_ops {
7 	int (*bind)(struct device *, struct device *, void *);
8 	void (*unbind)(struct device *, struct device *, void *);
9 };
10 
11 int component_add(struct device *, const struct component_ops *);
12 void component_del(struct device *, const struct component_ops *);
13 
14 int component_bind_all(struct device *, void *);
15 void component_unbind_all(struct device *, void *);
16 
17 struct master;
18 
19 struct component_master_ops {
20 	int (*add_components)(struct device *, struct master *);
21 	int (*bind)(struct device *);
22 	void (*unbind)(struct device *);
23 };
24 
25 int component_master_add(struct device *, const struct component_master_ops *);
26 void component_master_del(struct device *,
27 	const struct component_master_ops *);
28 
29 int component_master_add_child(struct master *master,
30 	int (*compare)(struct device *, void *), void *compare_data);
31 
32 #endif
33