2010-03-30 13:56:21 +00:00
/*
* Copyright ( C ) ST - Ericsson AB 2010
* Author : Sjur Brendeland / sjur . brandeland @ stericsson . com
* License terms : GNU General Public License ( GPL ) version 2
*/
# ifndef CFSRVL_H_
# define CFSRVL_H_
# include <linux/list.h>
# include <linux/stddef.h>
# include <linux/types.h>
2010-04-28 08:54:36 +00:00
# include <linux/kref.h>
2010-03-30 13:56:21 +00:00
struct cfsrvl {
struct cflayer layer ;
bool open ;
bool phy_flow_on ;
bool modem_flow_on ;
2010-06-17 06:55:38 +00:00
bool supports_flowctrl ;
2010-03-30 13:56:21 +00:00
struct dev_info dev_info ;
2010-04-28 08:54:36 +00:00
struct kref ref ;
2010-03-30 13:56:21 +00:00
} ;
2010-04-28 08:54:36 +00:00
void cfsrvl_release ( struct kref * kref ) ;
2010-03-30 13:56:21 +00:00
struct cflayer * cfvei_create ( u8 linkid , struct dev_info * dev_info ) ;
struct cflayer * cfdgml_create ( u8 linkid , struct dev_info * dev_info ) ;
struct cflayer * cfutill_create ( u8 linkid , struct dev_info * dev_info ) ;
struct cflayer * cfvidl_create ( u8 linkid , struct dev_info * dev_info ) ;
struct cflayer * cfrfml_create ( u8 linkid , struct dev_info * dev_info ) ;
struct cflayer * cfdbgl_create ( u8 linkid , struct dev_info * dev_info ) ;
bool cfsrvl_phyid_match ( struct cflayer * layer , int phyid ) ;
void cfservl_destroy ( struct cflayer * layer ) ;
void cfsrvl_init ( struct cfsrvl * service ,
2010-06-17 06:55:38 +00:00
u8 channel_id ,
struct dev_info * dev_info ,
bool supports_flowctrl ) ;
2010-03-30 13:56:21 +00:00
bool cfsrvl_ready ( struct cfsrvl * service , int * err ) ;
u8 cfsrvl_getphyid ( struct cflayer * layer ) ;
2010-04-28 08:54:36 +00:00
static inline void cfsrvl_get ( struct cflayer * layr )
{
struct cfsrvl * s ;
if ( layr = = NULL )
return ;
s = container_of ( layr , struct cfsrvl , layer ) ;
kref_get ( & s - > ref ) ;
}
static inline void cfsrvl_put ( struct cflayer * layr )
{
struct cfsrvl * s ;
if ( layr = = NULL )
return ;
s = container_of ( layr , struct cfsrvl , layer ) ;
kref_put ( & s - > ref , cfsrvl_release ) ;
}
2010-03-30 13:56:21 +00:00
# endif /* CFSRVL_H_ */