Rev 6082 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6082 | serge | 1 | #ifndef COMPONENT_H |
2 | #define COMPONENT_H |
||
3 | |||
6936 | serge | 4 | #include |
5 | |||
6082 | serge | 6 | struct device; |
7 | |||
8 | struct component_ops { |
||
6936 | serge | 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); |
||
6082 | serge | 13 | }; |
14 | |||
15 | int component_add(struct device *, const struct component_ops *); |
||
16 | void component_del(struct device *, const struct component_ops *); |
||
17 | |||
6936 | serge | 18 | int component_bind_all(struct device *master, void *master_data); |
19 | void component_unbind_all(struct device *master, void *master_data); |
||
6082 | serge | 20 | |
21 | struct master; |
||
22 | |||
23 | struct component_master_ops { |
||
6936 | serge | 24 | int (*bind)(struct device *master); |
25 | void (*unbind)(struct device *master); |
||
6082 | serge | 26 | }; |
27 | |||
28 | void component_master_del(struct device *, |
||
29 | const struct component_master_ops *); |
||
30 | |||
31 | struct component_match; |
||
32 | |||
33 | int component_master_add_with_match(struct device *, |
||
34 | const struct component_master_ops *, struct component_match *); |
||
6936 | serge | 35 | void component_match_add_release(struct device *master, |
36 | struct component_match **matchptr, |
||
37 | void (*release)(struct device *, void *), |
||
6082 | serge | 38 | int (*compare)(struct device *, void *), void *compare_data); |
39 | |||
6936 | serge | 40 | static 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 | |||
6082 | serge | 48 | #endif |