caif: Add debug connection type for CAIF.
Added new CAIF protocol type CAIFPROTO_DEBUG for accessing CAIF debug on the ST Ericsson modems. There are two debug servers on the modem, one for radio related debug (CAIF_RADIO_DEBUG_SERVICE) and the other for communication/application related debug (CAIF_COM_DEBUG_SERVICE). The debug connection can contain trace debug printouts or interactive debug used for debugging and test. Debug connections can be of type STREAM or SEQPACKET. Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2aa40aef9d
commit
69ad78208e
2 changed files with 39 additions and 0 deletions
|
@ -62,6 +62,7 @@ enum caif_channel_priority {
|
||||||
* @CAIFPROTO_DATAGRAM_LOOP: Datagram loopback channel, used for testing.
|
* @CAIFPROTO_DATAGRAM_LOOP: Datagram loopback channel, used for testing.
|
||||||
* @CAIFPROTO_UTIL: Utility (Psock) channel.
|
* @CAIFPROTO_UTIL: Utility (Psock) channel.
|
||||||
* @CAIFPROTO_RFM: Remote File Manager
|
* @CAIFPROTO_RFM: Remote File Manager
|
||||||
|
* @CAIFPROTO_DEBUG: Debug link
|
||||||
*
|
*
|
||||||
* This enum defines the CAIF Channel type to be used. This defines
|
* This enum defines the CAIF Channel type to be used. This defines
|
||||||
* the service to connect to on the modem.
|
* the service to connect to on the modem.
|
||||||
|
@ -72,6 +73,7 @@ enum caif_protocol_type {
|
||||||
CAIFPROTO_DATAGRAM_LOOP,
|
CAIFPROTO_DATAGRAM_LOOP,
|
||||||
CAIFPROTO_UTIL,
|
CAIFPROTO_UTIL,
|
||||||
CAIFPROTO_RFM,
|
CAIFPROTO_RFM,
|
||||||
|
CAIFPROTO_DEBUG,
|
||||||
_CAIFPROTO_MAX
|
_CAIFPROTO_MAX
|
||||||
};
|
};
|
||||||
#define CAIFPROTO_MAX _CAIFPROTO_MAX
|
#define CAIFPROTO_MAX _CAIFPROTO_MAX
|
||||||
|
@ -83,6 +85,28 @@ enum caif_protocol_type {
|
||||||
enum caif_at_type {
|
enum caif_at_type {
|
||||||
CAIF_ATTYPE_PLAIN = 2
|
CAIF_ATTYPE_PLAIN = 2
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* enum caif_debug_type - Content selection for debug connection
|
||||||
|
* @CAIF_DEBUG_TRACE_INTERACTIVE: Connection will contain
|
||||||
|
* both trace and interactive debug.
|
||||||
|
* @CAIF_DEBUG_TRACE: Connection contains trace only.
|
||||||
|
* @CAIF_DEBUG_INTERACTIVE: Connection to interactive debug.
|
||||||
|
*/
|
||||||
|
enum caif_debug_type {
|
||||||
|
CAIF_DEBUG_TRACE_INTERACTIVE = 0,
|
||||||
|
CAIF_DEBUG_TRACE,
|
||||||
|
CAIF_DEBUG_INTERACTIVE,
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum caif_debug_service - Debug Service Endpoint
|
||||||
|
* @CAIF_RADIO_DEBUG_SERVICE: Debug service on the Radio sub-system
|
||||||
|
* @CAIF_APP_DEBUG_SERVICE: Debug for the applications sub-system
|
||||||
|
*/
|
||||||
|
enum caif_debug_service {
|
||||||
|
CAIF_RADIO_DEBUG_SERVICE = 1,
|
||||||
|
CAIF_APP_DEBUG_SERVICE
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct sockaddr_caif - the sockaddr structure for CAIF sockets.
|
* struct sockaddr_caif - the sockaddr structure for CAIF sockets.
|
||||||
|
@ -109,6 +133,12 @@ enum caif_at_type {
|
||||||
*
|
*
|
||||||
* @u.rfm.volume: Volume to mount.
|
* @u.rfm.volume: Volume to mount.
|
||||||
*
|
*
|
||||||
|
* @u.dbg: Applies when family = CAIFPROTO_DEBUG.
|
||||||
|
*
|
||||||
|
* @u.dbg.type: Type of debug connection to set up
|
||||||
|
* (caif_debug_type).
|
||||||
|
*
|
||||||
|
* @u.dbg.service: Service sub-system to connect (caif_debug_service
|
||||||
* Description:
|
* Description:
|
||||||
* This structure holds the connect parameters used for setting up a
|
* This structure holds the connect parameters used for setting up a
|
||||||
* CAIF Channel. It defines the service to connect to on the modem.
|
* CAIF Channel. It defines the service to connect to on the modem.
|
||||||
|
@ -130,6 +160,10 @@ struct sockaddr_caif {
|
||||||
__u32 connection_id;
|
__u32 connection_id;
|
||||||
char volume[16];
|
char volume[16];
|
||||||
} rfm; /* CAIFPROTO_RFM */
|
} rfm; /* CAIFPROTO_RFM */
|
||||||
|
struct {
|
||||||
|
__u8 type; /* type:enum caif_debug_type */
|
||||||
|
__u8 service; /* service:caif_debug_service */
|
||||||
|
} dbg; /* CAIFPROTO_DEBUG */
|
||||||
} u;
|
} u;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,11 @@ int connect_req_to_link_param(struct cfcnfg *cnfg,
|
||||||
memcpy(l->u.utility.params, s->param.data,
|
memcpy(l->u.utility.params, s->param.data,
|
||||||
l->u.utility.paramlen);
|
l->u.utility.paramlen);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case CAIFPROTO_DEBUG:
|
||||||
|
l->linktype = CFCTRL_SRV_DBG;
|
||||||
|
l->endpoint = s->sockaddr.u.dbg.service;
|
||||||
|
l->chtype = s->sockaddr.u.dbg.type;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
Loading…
Add table
Reference in a new issue