diff options
Diffstat (limited to 'include/net/caif/cfsrvl.h')
-rw-r--r-- | include/net/caif/cfsrvl.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/net/caif/cfsrvl.h b/include/net/caif/cfsrvl.h new file mode 100644 index 000000000000..2dc9eb193ecf --- /dev/null +++ b/include/net/caif/cfsrvl.h | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson AB 2010 | ||
3 | * Author: Sjur Brendeland/sjur.brandeland@stericsson.com | ||
4 | * License terms: GNU General Public License (GPL) version 2 | ||
5 | */ | ||
6 | |||
7 | #ifndef CFSRVL_H_ | ||
8 | #define CFSRVL_H_ | ||
9 | #include <linux/list.h> | ||
10 | #include <linux/stddef.h> | ||
11 | #include <linux/types.h> | ||
12 | #include <linux/kref.h> | ||
13 | |||
14 | struct cfsrvl { | ||
15 | struct cflayer layer; | ||
16 | bool open; | ||
17 | bool phy_flow_on; | ||
18 | bool modem_flow_on; | ||
19 | struct dev_info dev_info; | ||
20 | struct kref ref; | ||
21 | }; | ||
22 | |||
23 | void cfsrvl_release(struct kref *kref); | ||
24 | struct cflayer *cfvei_create(u8 linkid, struct dev_info *dev_info); | ||
25 | struct cflayer *cfdgml_create(u8 linkid, struct dev_info *dev_info); | ||
26 | struct cflayer *cfutill_create(u8 linkid, struct dev_info *dev_info); | ||
27 | struct cflayer *cfvidl_create(u8 linkid, struct dev_info *dev_info); | ||
28 | struct cflayer *cfrfml_create(u8 linkid, struct dev_info *dev_info); | ||
29 | struct cflayer *cfdbgl_create(u8 linkid, struct dev_info *dev_info); | ||
30 | bool cfsrvl_phyid_match(struct cflayer *layer, int phyid); | ||
31 | void cfservl_destroy(struct cflayer *layer); | ||
32 | void cfsrvl_init(struct cfsrvl *service, | ||
33 | u8 channel_id, | ||
34 | struct dev_info *dev_info); | ||
35 | bool cfsrvl_ready(struct cfsrvl *service, int *err); | ||
36 | u8 cfsrvl_getphyid(struct cflayer *layer); | ||
37 | |||
38 | static inline void cfsrvl_get(struct cflayer *layr) | ||
39 | { | ||
40 | struct cfsrvl *s; | ||
41 | if (layr == NULL) | ||
42 | return; | ||
43 | s = container_of(layr, struct cfsrvl, layer); | ||
44 | kref_get(&s->ref); | ||
45 | } | ||
46 | |||
47 | static inline void cfsrvl_put(struct cflayer *layr) | ||
48 | { | ||
49 | struct cfsrvl *s; | ||
50 | if (layr == NULL) | ||
51 | return; | ||
52 | s = container_of(layr, struct cfsrvl, layer); | ||
53 | kref_put(&s->ref, cfsrvl_release); | ||
54 | } | ||
55 | |||
56 | #endif /* CFSRVL_H_ */ | ||