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
9 #include <linux/list.h>
10 #include <linux/stddef.h>
11 #include <linux/types.h>
12 #include <linux/kref.h>
19 bool supports_flowctrl
;
20 void (*release
)(struct kref
*);
21 struct dev_info dev_info
;
25 void cfsrvl_release(struct kref
*kref
);
26 struct cflayer
*cfvei_create(u8 linkid
, struct dev_info
*dev_info
);
27 struct cflayer
*cfdgml_create(u8 linkid
, struct dev_info
*dev_info
);
28 struct cflayer
*cfutill_create(u8 linkid
, struct dev_info
*dev_info
);
29 struct cflayer
*cfvidl_create(u8 linkid
, struct dev_info
*dev_info
);
30 struct cflayer
*cfrfml_create(u8 linkid
, struct dev_info
*dev_info
,
32 struct cflayer
*cfdbgl_create(u8 linkid
, struct dev_info
*dev_info
);
33 bool cfsrvl_phyid_match(struct cflayer
*layer
, int phyid
);
34 void cfservl_destroy(struct cflayer
*layer
);
35 void cfsrvl_init(struct cfsrvl
*service
,
37 struct dev_info
*dev_info
,
38 bool supports_flowctrl
);
39 bool cfsrvl_ready(struct cfsrvl
*service
, int *err
);
40 u8
cfsrvl_getphyid(struct cflayer
*layer
);
42 static inline void cfsrvl_get(struct cflayer
*layr
)
47 s
= container_of(layr
, struct cfsrvl
, layer
);
51 static inline void cfsrvl_put(struct cflayer
*layr
)
56 s
= container_of(layr
, struct cfsrvl
, layer
);
60 kref_put(&s
->ref
, s
->release
);
63 #endif /* CFSRVL_H_ */