Subversion Repositories Kolibri OS

Rev

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