553 lines
23 KiB
C
553 lines
23 KiB
C
/******************************************************************************
|
|
*
|
|
* Copyright (C) 2009-2012 Broadcom Corporation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at:
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
******************************************************************************/
|
|
|
|
/******************************************************************************
|
|
*
|
|
* This interface file contains the interface to the Multi-Channel
|
|
* Adaptation Protocol (MCAP).
|
|
*
|
|
******************************************************************************/
|
|
#ifndef MCA_API_H
|
|
#define MCA_API_H
|
|
|
|
#include "bt_target.h"
|
|
#include "l2c_api.h"
|
|
|
|
/* move the following to bt_target.h or other place later */
|
|
#define MCA_NUM_TC_TBL ((MCA_NUM_REGS) * (MCA_NUM_LINKS) * (MCA_NUM_MDLS + 1))
|
|
/* Number of control channel control blocks */
|
|
#define MCA_NUM_CCBS ((MCA_NUM_REGS) * (MCA_NUM_LINKS))
|
|
/* Number of data channel control blocks */
|
|
#define MCA_NUM_DCBS ((MCA_NUM_REGS) * (MCA_NUM_LINKS) * (MCA_NUM_MDLS))
|
|
|
|
/*****************************************************************************
|
|
* constants
|
|
****************************************************************************/
|
|
/* API function return value result codes. */
|
|
#define MCA_SUCCESS 0 /* Function successful */
|
|
#define MCA_BAD_PARAMS 1 /* Invalid parameters */
|
|
#define MCA_NO_RESOURCES 2 /* Not enough resources */
|
|
#define MCA_BAD_HANDLE 3 /* Bad handle */
|
|
#define MCA_BUSY 4 /* A procedure is already in progress */
|
|
#define MCA_WRITE_FAIL 5 /* Write failed */
|
|
#define MCA_BAD_MDL_ID 6 /* MDL ID is not valid for the current API */
|
|
typedef uint8_t tMCA_RESULT;
|
|
|
|
/* MDEP data type. */
|
|
#define MCA_TDEP_ECHO 0 /* MDEP for echo test */
|
|
#define MCA_TDEP_DATA 1 /* MDEP for normal data */
|
|
|
|
/* Control callback events. */
|
|
#define MCA_ERROR_RSP_EVT 0 /* error response */
|
|
#define MCA_CREATE_IND_EVT 1 /* create mdl indication */
|
|
#define MCA_CREATE_CFM_EVT 2 /* create mdl confirm */
|
|
#define MCA_RECONNECT_IND_EVT 3 /* reconnect mdl indication */
|
|
#define MCA_RECONNECT_CFM_EVT 4 /* reconnect mdl confirm */
|
|
#define MCA_ABORT_IND_EVT 5 /* abort mdl indication */
|
|
#define MCA_ABORT_CFM_EVT 6 /* abort mdl confirm */
|
|
#define MCA_DELETE_IND_EVT 7 /* delete mdl indication */
|
|
#define MCA_DELETE_CFM_EVT 8 /* delete mdl confirm */
|
|
|
|
/* request sync capabilities & requirements */
|
|
#define MCA_SYNC_CAP_IND_EVT 0x11
|
|
#define MCA_SYNC_CAP_CFM_EVT 0x12 /* indicate completion */
|
|
/* request to set the time-stamp clock */
|
|
#define MCA_SYNC_SET_IND_EVT 0x13
|
|
#define MCA_SYNC_SET_CFM_EVT 0x14 /* indicate completion */
|
|
/* update of the actual time-stamp clock instant from the sync slave */
|
|
#define MCA_SYNC_INFO_IND_EVT 0x15
|
|
|
|
#define MCA_CONNECT_IND_EVT 0x20 /* Control channel connected */
|
|
#define MCA_DISCONNECT_IND_EVT 0x21 /* Control channel disconnected */
|
|
#define MCA_OPEN_IND_EVT 0x22 /* Data channel open indication */
|
|
#define MCA_OPEN_CFM_EVT 0x23 /* Data channel open confirm */
|
|
#define MCA_CLOSE_IND_EVT 0x24 /* Data channel close indication */
|
|
#define MCA_CLOSE_CFM_EVT 0x25 /* Data channel close confirm */
|
|
#define MCA_CONG_CHG_EVT 0x26 /* congestion change event */
|
|
#define MCA_RSP_TOUT_IND_EVT \
|
|
0x27 /* Control channel message response timeout \
|
|
*/
|
|
/*****************************************************************************
|
|
* Type Definitions
|
|
****************************************************************************/
|
|
typedef uint8_t
|
|
tMCA_HANDLE; /* the handle for registration. 1 based index to rcb */
|
|
typedef uint8_t tMCA_CL; /* the handle for a control channel; reported at
|
|
MCA_CONNECT_IND_EVT */
|
|
typedef uint8_t
|
|
tMCA_DEP; /* the handle for MCA_CreateDep. This is also the local mdep_id */
|
|
typedef uint16_t tMCA_DL; /* the handle for the data channel. This is reported
|
|
at MCA_OPEN_CFM_EVT or MCA_OPEN_IND_EVT */
|
|
|
|
/* This is the data callback function. It is executed when MCAP has a data
|
|
* packet ready for the application.
|
|
*/
|
|
typedef void(tMCA_DATA_CBACK)(tMCA_DL mdl, BT_HDR* p_pkt);
|
|
|
|
/* This structure contains parameters which are set at registration. */
|
|
typedef struct {
|
|
uint32_t rsp_tout; /* MCAP signaling response timeout */
|
|
uint16_t ctrl_psm; /* L2CAP PSM for the MCAP control channel */
|
|
uint16_t data_psm; /* L2CAP PSM for the MCAP data channel */
|
|
uint16_t sec_mask; /* Security mask for BTM_SetSecurityLevel() */
|
|
} tMCA_REG;
|
|
|
|
/* This structure contains parameters to create a MDEP. */
|
|
typedef struct {
|
|
uint8_t type; /* MCA_TDEP_DATA, or MCA_TDEP_ECHO. a regiatration may have only
|
|
one MCA_TDEP_ECHO MDEP */
|
|
uint8_t max_mdl; /* The maximum number of MDLs for this MDEP (max is
|
|
MCA_NUM_MDLS) */
|
|
tMCA_DATA_CBACK* p_data_cback; /* Data callback function */
|
|
} tMCA_CS;
|
|
|
|
#define MCA_FCS_NONE 0 /* fcs_present=false */
|
|
#define MCA_FCS_BYPASS 0x10 /* fcs_present=true, fcs=L2CAP_CFG_FCS_BYPASS */
|
|
#define MCA_FCS_USE 0x11 /* fcs_present=true, fcs=L2CAP_CFG_FCS_USE */
|
|
#define MCA_FCS_PRESNT_MASK 0x10 /* fcs_present=true */
|
|
#define MCA_FCS_USE_MASK 0x01 /* mask for fcs */
|
|
typedef uint8_t tMCA_FCS_OPT;
|
|
|
|
/* This structure contains L2CAP configuration parameters for the channel. */
|
|
typedef struct {
|
|
tL2CAP_FCR_OPTS fcr_opt;
|
|
uint16_t user_rx_buf_size;
|
|
uint16_t user_tx_buf_size;
|
|
uint16_t fcr_rx_buf_size;
|
|
uint16_t fcr_tx_buf_size;
|
|
tMCA_FCS_OPT fcs;
|
|
uint16_t data_mtu; /* L2CAP MTU of the MCAP data channel */
|
|
} tMCA_CHNL_CFG;
|
|
|
|
/* Header structure for callback event parameters. */
|
|
typedef struct {
|
|
uint16_t mdl_id; /* The associated MDL ID */
|
|
uint8_t op_code; /* The op (request/response) code */
|
|
} tMCA_EVT_HDR;
|
|
|
|
/* Response Header structure for callback event parameters. */
|
|
typedef struct {
|
|
uint16_t mdl_id; /* The associated MDL ID */
|
|
uint8_t op_code; /* The op (request/response) code */
|
|
uint8_t rsp_code; /* The response code */
|
|
} tMCA_RSP_EVT;
|
|
|
|
/* This data structure is associated with the MCA_CREATE_IND_EVT. */
|
|
typedef struct {
|
|
uint16_t mdl_id; /* The associated MDL ID */
|
|
uint8_t op_code; /* The op (request/response) code */
|
|
uint8_t dep_id; /* MDEP ID */
|
|
uint8_t cfg; /* The configuration to negotiate */
|
|
} tMCA_CREATE_IND;
|
|
|
|
/* This data structure is associated with the MCA_CREATE_CFM_EVT. */
|
|
typedef struct {
|
|
uint16_t mdl_id; /* The associated MDL ID */
|
|
uint8_t op_code; /* The op (request/response) code */
|
|
uint8_t rsp_code; /* The response code. */
|
|
uint8_t cfg; /* The configuration to negotiate */
|
|
} tMCA_CREATE_CFM;
|
|
|
|
/* This data structure is associated with MCA_CONNECT_IND_EVT. */
|
|
typedef struct {
|
|
RawAddress bd_addr; /* The peer address */
|
|
uint16_t mtu; /* peer mtu */
|
|
} tMCA_CONNECT_IND;
|
|
|
|
/* This data structure is associated with MCA_DISCONNECT_IND_EVT. */
|
|
typedef struct {
|
|
RawAddress bd_addr; /* The peer address */
|
|
uint16_t reason; /* disconnect reason given by L2CAP */
|
|
} tMCA_DISCONNECT_IND;
|
|
|
|
/* This data structure is for MCA_OPEN_IND_EVT, and MCA_OPEN_CFM_EVT. */
|
|
typedef struct {
|
|
uint16_t mdl_id; /* The associated MDL ID */
|
|
tMCA_DL mdl; /* The handle for the data channel */
|
|
uint16_t mtu; /* peer mtu */
|
|
} tMCA_DL_OPEN;
|
|
|
|
/* This data structure is for MCA_CLOSE_IND_EVT and MCA_CLOSE_CFM_EVT. */
|
|
typedef struct {
|
|
uint16_t mdl_id; /* The associated MDL ID */
|
|
tMCA_DL mdl; /* The handle for the data channel */
|
|
uint16_t reason; /* disconnect reason given by L2CAP */
|
|
} tMCA_DL_CLOSE;
|
|
|
|
/* This data structure is associated with MCA_CONG_CHG_EVT. */
|
|
typedef struct {
|
|
uint16_t mdl_id; /* N/A - This is a place holder */
|
|
tMCA_DL mdl; /* The handle for the data channel */
|
|
bool cong; /* true, if the channel is congested */
|
|
} tMCA_CONG_CHG;
|
|
|
|
/* Union of all control callback event data structures */
|
|
typedef union {
|
|
tMCA_EVT_HDR hdr;
|
|
tMCA_RSP_EVT rsp;
|
|
tMCA_CREATE_IND create_ind;
|
|
tMCA_CREATE_CFM create_cfm;
|
|
tMCA_EVT_HDR reconnect_ind;
|
|
tMCA_RSP_EVT reconnect_cfm;
|
|
tMCA_EVT_HDR abort_ind;
|
|
tMCA_RSP_EVT abort_cfm;
|
|
tMCA_EVT_HDR delete_ind;
|
|
tMCA_RSP_EVT delete_cfm;
|
|
tMCA_CONNECT_IND connect_ind;
|
|
tMCA_DISCONNECT_IND disconnect_ind;
|
|
tMCA_DL_OPEN open_ind;
|
|
tMCA_DL_OPEN open_cfm;
|
|
tMCA_DL_CLOSE close_ind;
|
|
tMCA_DL_CLOSE close_cfm;
|
|
tMCA_CONG_CHG cong_chg;
|
|
} tMCA_CTRL;
|
|
|
|
/* This is the control callback function. This function passes control events
|
|
* to the application.
|
|
*/
|
|
typedef void(tMCA_CTRL_CBACK)(tMCA_HANDLE handle, tMCA_CL mcl, uint8_t event,
|
|
tMCA_CTRL* p_data);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_Init
|
|
*
|
|
* Description Initialize MCAP internal control blocks.
|
|
* This function is called at stack start up.
|
|
*
|
|
* Returns void
|
|
*
|
|
******************************************************************************/
|
|
extern void MCA_Init(void);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_SetTraceLevel
|
|
*
|
|
* Description This function sets the debug trace level for MCA.
|
|
* If 0xff is passed, the current trace level is returned.
|
|
*
|
|
* Input Parameters:
|
|
* level: The level to set the MCA tracing to:
|
|
* 0xff-returns the current setting.
|
|
* 0-turns off tracing.
|
|
* >= 1-Errors.
|
|
* >= 2-Warnings.
|
|
* >= 3-APIs.
|
|
* >= 4-Events.
|
|
* >= 5-Debug.
|
|
*
|
|
* Returns The new trace level or current trace level if
|
|
* the input parameter is 0xff.
|
|
*
|
|
******************************************************************************/
|
|
extern uint8_t MCA_SetTraceLevel(uint8_t level);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_Register
|
|
*
|
|
* Description This function registers an MCAP implementation.
|
|
* It is assumed that the control channel PSM and data channel
|
|
* PSM are not used by any other instances of the stack.
|
|
* If the given p_reg->ctrl_psm is 0, this handle is INT only.
|
|
*
|
|
* Returns 0, if failed. Otherwise, the MCA handle.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_HANDLE MCA_Register(tMCA_REG* p_reg, tMCA_CTRL_CBACK* p_cback);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_Deregister
|
|
*
|
|
* Description Deregister an MCAP implementation. Before this function can
|
|
* be called, all control and data channels must be removed
|
|
* with MCA_DisconnectReq and MCA_CloseReq.
|
|
*
|
|
* Returns void
|
|
*
|
|
******************************************************************************/
|
|
extern void MCA_Deregister(tMCA_HANDLE handle);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_CreateDep
|
|
*
|
|
* Description Create a data endpoint. If the MDEP is created
|
|
* successfully, the MDEP ID is returned in *p_dep. After a
|
|
* data endpoint is created, an application can initiate a
|
|
* connection between this endpoint and an endpoint on a peer
|
|
* device.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_CreateDep(tMCA_HANDLE handle, tMCA_DEP* p_dep,
|
|
tMCA_CS* p_cs);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_DeleteDep
|
|
*
|
|
* Description Delete a data endpoint. This function is called when
|
|
* the implementation is no longer using a data endpoint.
|
|
* If this function is called when the endpoint is connected
|
|
* the connection is closed and the data endpoint
|
|
* is removed.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_DeleteDep(tMCA_HANDLE handle, tMCA_DEP dep);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_ConnectReq
|
|
*
|
|
* Description This function initiates an MCAP control channel connection
|
|
* to the peer device. When the connection is completed, an
|
|
* MCA_CONNECT_IND_EVT is reported to the application via its
|
|
* control callback function.
|
|
* This control channel is identified by tMCA_CL.
|
|
* If the connection attempt fails, an MCA_DISCONNECT_IND_EVT
|
|
* is reported. The security mask parameter overrides the
|
|
* outgoing security mask set in MCA_Register().
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_ConnectReq(tMCA_HANDLE handle, const RawAddress& bd_addr,
|
|
uint16_t ctrl_psm, uint16_t sec_mask);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_DisconnectReq
|
|
*
|
|
* Description This function disconnect an MCAP control channel
|
|
* to the peer device.
|
|
* If associated data channel exists, they are disconnected.
|
|
* When the MCL is disconnected an MCA_DISCONNECT_IND_EVT is
|
|
* reported to the application via its control callback
|
|
* function.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_DisconnectReq(tMCA_CL mcl);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_CreateMdl
|
|
*
|
|
* Description This function sends a CREATE_MDL request to the peer device.
|
|
* When the response is received, a MCA_CREATE_CFM_EVT is
|
|
* reported with the given MDL ID.
|
|
* If the response is successful, a data channel is open
|
|
* with the given p_chnl_cfg
|
|
* When the data channel is open successfully, a
|
|
* MCA_OPEN_CFM_EVT is reported. This data channel is
|
|
* identified as tMCA_DL.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_CreateMdl(tMCA_CL mcl, tMCA_DEP dep, uint16_t data_psm,
|
|
uint16_t mdl_id, uint8_t peer_dep_id,
|
|
uint8_t cfg, const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_CreateMdlRsp
|
|
*
|
|
* Description This function sends a CREATE_MDL response to the peer device
|
|
* in response to a received MCA_CREATE_IND_EVT.
|
|
* If the rsp_code is successful, a data channel is open
|
|
* with the given p_chnl_cfg
|
|
* When the data channel is open successfully, a
|
|
* MCA_OPEN_IND_EVT is reported. This data channel is
|
|
* identified as tMCA_DL.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_CreateMdlRsp(tMCA_CL mcl, tMCA_DEP dep, uint16_t mdl_id,
|
|
uint8_t cfg, uint8_t rsp_code,
|
|
const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_CloseReq
|
|
*
|
|
* Description Close a data channel. When the channel is closed, an
|
|
* MCA_CLOSE_CFM_EVT is sent to the application via the
|
|
* control callback function for this handle.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_CloseReq(tMCA_DL mdl);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_ReconnectMdl
|
|
*
|
|
* Description This function sends a RECONNECT_MDL request to the peer
|
|
* device. When the response is received, a
|
|
* MCA_RECONNECT_CFM_EVT is reported. If the response is
|
|
* successful, a data channel is open. When the data channel is
|
|
* open successfully, a MCA_OPEN_CFM_EVT is reported.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_ReconnectMdl(tMCA_CL mcl, tMCA_DEP dep,
|
|
uint16_t data_psm, uint16_t mdl_id,
|
|
const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_ReconnectMdlRsp
|
|
*
|
|
* Description Send a RECONNECT_MDL response to the peer device in response
|
|
* to a MCA_RECONNECT_IND_EVT event.
|
|
* If the response is successful, a data channel is open.
|
|
* When the data channel is open successfully, a
|
|
* MCA_OPEN_IND_EVT is reported.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_ReconnectMdlRsp(tMCA_CL mcl, tMCA_DEP dep,
|
|
uint16_t mdl_id, uint8_t rsp_code,
|
|
const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_DataChnlCfg
|
|
*
|
|
* Description This function initiates a data channel connection toward the
|
|
* connected peer device.
|
|
* When the data channel is open successfully, a
|
|
* MCA_OPEN_CFM_EVT is reported. This data channel is
|
|
* identified as tMCA_DL.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_DataChnlCfg(tMCA_CL mcl,
|
|
const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_Abort
|
|
*
|
|
* Description This function sends a ABORT_MDL request to the peer device.
|
|
* When the response is received, a MCA_ABORT_CFM_EVT is
|
|
* reported.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_Abort(tMCA_CL mcl);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_Delete
|
|
*
|
|
* Description This function sends a DELETE_MDL request to the peer device.
|
|
* When the response is received, a MCA_DELETE_CFM_EVT is
|
|
* reported.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_Delete(tMCA_CL mcl, uint16_t mdl_id);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_WriteReq
|
|
*
|
|
* Description Send a data packet to the peer device.
|
|
*
|
|
* The application passes the packet using the BT_HDR
|
|
* structure. The offset field must be equal to or greater than
|
|
* L2CAP_MIN_OFFSET. This allows enough space in the buffer for
|
|
* the L2CAP header.
|
|
*
|
|
* The memory pointed to by p_pkt must be a GKI buffer
|
|
* allocated by the application. This buffer will be freed
|
|
* by the protocol stack; the application must not free
|
|
* this buffer.
|
|
*
|
|
* Returns MCA_SUCCESS if successful, otherwise error.
|
|
*
|
|
******************************************************************************/
|
|
extern tMCA_RESULT MCA_WriteReq(tMCA_DL mdl, BT_HDR* p_pkt);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function MCA_GetL2CapChannel
|
|
*
|
|
* Description Get the L2CAP CID used by the given data channel handle.
|
|
*
|
|
* Returns L2CAP channel ID if successful, otherwise 0.
|
|
*
|
|
******************************************************************************/
|
|
extern uint16_t MCA_GetL2CapChannel(tMCA_DL mdl);
|
|
|
|
/**
|
|
* The following definitions are for test interface only, they mirror function
|
|
* definitions above. This struct allows an external application to load and
|
|
* call these methods without linking against the core library.
|
|
*/
|
|
typedef struct {
|
|
size_t size;
|
|
void (*init)(void);
|
|
tMCA_HANDLE (*register_application)(tMCA_REG* p_reg,
|
|
tMCA_CTRL_CBACK* p_cback);
|
|
void (*deregister_application)(tMCA_HANDLE handle);
|
|
tMCA_RESULT (*create_mdep)(tMCA_HANDLE handle, tMCA_DEP* p_dep,
|
|
tMCA_CS* p_cs);
|
|
tMCA_RESULT (*delete_mdep)(tMCA_HANDLE handle, tMCA_DEP dep);
|
|
tMCA_RESULT (*connect_mcl)(tMCA_HANDLE handle, const RawAddress& bd_addr,
|
|
uint16_t ctrl_psm, uint16_t sec_mask);
|
|
tMCA_RESULT (*disconnect_mcl)(tMCA_CL mcl);
|
|
tMCA_RESULT (*create_mdl_request)(tMCA_CL mcl, tMCA_DEP dep,
|
|
uint16_t data_psm, uint16_t mdl_id,
|
|
uint8_t peer_dep_id, uint8_t cfg,
|
|
const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
tMCA_RESULT (*create_mdl_response)(tMCA_CL mcl, tMCA_DEP dep, uint16_t mdl_id,
|
|
uint8_t cfg, uint8_t rsp_code,
|
|
const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
tMCA_RESULT (*close_mdl_request)(tMCA_DL mdl);
|
|
tMCA_RESULT (*reconnect_mdl_request)(tMCA_CL mcl, tMCA_DEP dep,
|
|
uint16_t data_psm, uint16_t mdl_id,
|
|
const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
tMCA_RESULT (*reconnect_mdl_response)(tMCA_CL mcl, tMCA_DEP dep,
|
|
uint16_t mdl_id, uint8_t rsp_code,
|
|
const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
tMCA_RESULT (*data_channel_config)(tMCA_CL mcl,
|
|
const tMCA_CHNL_CFG* p_chnl_cfg);
|
|
tMCA_RESULT (*abort_mdl)(tMCA_CL mcl);
|
|
tMCA_RESULT (*delete_mdl)(tMCA_CL mcl, uint16_t mdl_id);
|
|
tMCA_RESULT (*write_mdl)(tMCA_DL mdl, BT_HDR* p_pkt);
|
|
uint16_t (*get_l2cap_channel)(tMCA_DL mdl);
|
|
} btmcap_test_interface_t;
|
|
|
|
#endif /* MCA_API_H */
|