Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/chrome...
[linux-2.6/btrfs-unstable.git] / include / linux / component.h
blobc00dcc3026116370681a9701d36e2202c61b9107
1 #ifndef COMPONENT_H
2 #define COMPONENT_H
4 struct device;
6 struct component_ops {
7 int (*bind)(struct device *, struct device *, void *);
8 void (*unbind)(struct device *, struct device *, void *);
9 };
11 int component_add(struct device *, const struct component_ops *);
12 void component_del(struct device *, const struct component_ops *);
14 int component_bind_all(struct device *, void *);
15 void component_unbind_all(struct device *, void *);
17 struct master;
19 struct component_master_ops {
20 int (*add_components)(struct device *, struct master *);
21 int (*bind)(struct device *);
22 void (*unbind)(struct device *);
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 *);
29 int component_master_add_child(struct master *master,
30 int (*compare)(struct device *, void *), void *compare_data);
32 struct component_match;
34 int component_master_add_with_match(struct device *,
35 const struct component_master_ops *, struct component_match *);
36 void component_match_add(struct device *, struct component_match **,
37 int (*compare)(struct device *, void *), void *compare_data);
39 #endif