summaryrefslogtreecommitdiffstats
path: root/kernel/include/linux/component.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include/linux/component.h')
-rw-r--r--kernel/include/linux/component.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/kernel/include/linux/component.h b/kernel/include/linux/component.h
new file mode 100644
index 000000000..c00dcc302
--- /dev/null
+++ b/kernel/include/linux/component.h
@@ -0,0 +1,39 @@
+#ifndef COMPONENT_H
+#define COMPONENT_H
+
+struct device;
+
+struct component_ops {
+ int (*bind)(struct device *, struct device *, void *);
+ void (*unbind)(struct device *, struct device *, void *);
+};
+
+int component_add(struct device *, const struct component_ops *);
+void component_del(struct device *, const struct component_ops *);
+
+int component_bind_all(struct device *, void *);
+void component_unbind_all(struct device *, void *);
+
+struct master;
+
+struct component_master_ops {
+ int (*add_components)(struct device *, struct master *);
+ int (*bind)(struct device *);
+ void (*unbind)(struct device *);
+};
+
+int component_master_add(struct device *, const struct component_master_ops *);
+void component_master_del(struct device *,
+ const struct component_master_ops *);
+
+int component_master_add_child(struct master *master,
+ int (*compare)(struct device *, void *), void *compare_data);
+
+struct component_match;
+
+int component_master_add_with_match(struct device *,
+ const struct component_master_ops *, struct component_match *);
+void component_match_add(struct device *, struct component_match **,
+ int (*compare)(struct device *, void *), void *compare_data);
+
+#endif