xref: /linux-6.15/include/linux/component.h (revision fae9e2e0)
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 (*bind)(struct device *);
21 	void (*unbind)(struct device *);
22 };
23 
24 void component_master_del(struct device *,
25 	const struct component_master_ops *);
26 
27 struct component_match;
28 
29 int component_master_add_with_match(struct device *,
30 	const struct component_master_ops *, struct component_match *);
31 void component_match_add(struct device *, struct component_match **,
32 	int (*compare)(struct device *, void *), void *compare_data);
33 
34 #endif
35