15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 2009-2012 Broadcom Corporation
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  you may not use this file except in compliance with the License.
75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  You may obtain a copy of the License at:
85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  See the License for the specific language governing permissions and
155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  limitations under the License.
165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  This interface file contains the interface to the Multi-Channel
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Adaptation Protocol (MCAP).
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef MCA_API_H
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_API_H
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h"
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "l2c_api.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* move the following to bt_target.h or other place later */
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_NUM_TC_TBL  ((MCA_NUM_REGS)*(MCA_NUM_LINKS)*(MCA_NUM_MDLS+1))
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_NUM_CCBS	((MCA_NUM_REGS)*(MCA_NUM_LINKS))    /* Number of control channel control blocks	*/
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_NUM_DCBS	((MCA_NUM_REGS)*(MCA_NUM_LINKS)*(MCA_NUM_MDLS)) /* Number of data channel control blocks */
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** constants
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* API function return value result codes. */
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_SUCCESS                0       /* Function successful */
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_BAD_PARAMS             1       /* Invalid parameters */
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_NO_RESOURCES           2       /* Not enough resources */
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_BAD_HANDLE             3       /* Bad handle */
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_BUSY                   4       /* A procedure is already in progress */
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_WRITE_FAIL             5       /* Write failed */
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_BAD_MDL_ID             6       /* MDL ID is not valid for the current API */
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tMCA_RESULT;
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* MDEP data type.  */
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_TDEP_ECHO              0       /* MDEP for echo test  */
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_TDEP_DATA              1       /* MDEP for normal data */
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Control callback events. */
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_ERROR_RSP_EVT           0       /* error response */
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_CREATE_IND_EVT          1       /* create mdl indication */
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_CREATE_CFM_EVT          2       /* create mdl confirm */
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RECONNECT_IND_EVT       3       /* reconnect mdl indication */
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RECONNECT_CFM_EVT       4       /* reconnect mdl confirm */
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_ABORT_IND_EVT           5       /* abort mdl indication */
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_ABORT_CFM_EVT           6       /* abort mdl confirm */
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_DELETE_IND_EVT          7       /* delete mdl indication */
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_DELETE_CFM_EVT          8       /* delete mdl confirm */
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_SYNC_CAP_IND_EVT        0x11   /* request sync capabilities & requirements */
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_SYNC_CAP_CFM_EVT        0x12   /* indicate completion */
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_SYNC_SET_IND_EVT        0x13   /* request to set the time-stamp clock */
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_SYNC_SET_CFM_EVT        0x14   /* indicate completion */
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_SYNC_INFO_IND_EVT       0x15   /* update of the actual time-stamp clock instant from the sync slave */
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_CONNECT_IND_EVT         0x20    /* Control channel connected */
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_DISCONNECT_IND_EVT      0x21    /* Control channel disconnected */
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OPEN_IND_EVT            0x22    /* Data channel open indication */
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_OPEN_CFM_EVT            0x23    /* Data channel open confirm */
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_CLOSE_IND_EVT           0x24    /* Data channel close indication */
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_CLOSE_CFM_EVT           0x25    /* Data channel close confirm */
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_CONG_CHG_EVT            0x26    /* congestion change event */
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_RSP_TOUT_IND_EVT        0x27    /* Control channel message response timeout */
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Type Definitions
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8  tMCA_HANDLE; /* the handle for registration. 1 based index to rcb */
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8  tMCA_CL;     /* the handle for a control channel; reported at MCA_CONNECT_IND_EVT */
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8  tMCA_DEP;    /* the handle for MCA_CreateDep. This is also the local mdep_id */
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tMCA_DL;     /* the handle for the data channel. This is reported at MCA_OPEN_CFM_EVT or MCA_OPEN_IND_EVT */
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This is the data callback function.  It is executed when MCAP has a data
885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** packet ready for the application.
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tMCA_DATA_CBACK)(tMCA_DL mdl, BT_HDR *p_pkt);
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This structure contains parameters which are set at registration. */
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      rsp_tout;   /* MCAP signaling response timeout */
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      ctrl_psm;   /* L2CAP PSM for the MCAP control channel */
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      data_psm;   /* L2CAP PSM for the MCAP data channel */
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      sec_mask;   /* Security mask for BTM_SetSecurityLevel() */
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_REG;
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This structure contains parameters to create a MDEP. */
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           type;       /* MCA_TDEP_DATA, or MCA_TDEP_ECHO. a regiatration may have only one MCA_TDEP_ECHO MDEP */
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           max_mdl;    /* The maximum number of MDLs for this MDEP (max is MCA_NUM_MDLS) */
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DATA_CBACK *p_data_cback;  /* Data callback function */
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_CS;
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_FCS_NONE        0       /* fcs_present=FALSE */
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_FCS_BYPASS      0x10    /* fcs_present=TRUE, fcs=L2CAP_CFG_FCS_BYPASS */
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_FCS_USE         0x11    /* fcs_present=TRUE, fcs=L2CAP_CFG_FCS_USE */
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_FCS_PRESNT_MASK 0x10    /* fcs_present=TRUE */
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MCA_FCS_USE_MASK    0x01    /* mask for fcs */
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tMCA_FCS_OPT;
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This structure contains L2CAP configuration parameters for the channel. */
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tL2CAP_FCR_OPTS fcr_opt;
1182990f79de941189cfcce32e8bd7dc9e75bc118a5Pavlin Radoslavov    UINT16          user_rx_buf_size;
1192990f79de941189cfcce32e8bd7dc9e75bc118a5Pavlin Radoslavov    UINT16          user_tx_buf_size;
1202990f79de941189cfcce32e8bd7dc9e75bc118a5Pavlin Radoslavov    UINT16          fcr_rx_buf_size;
1212990f79de941189cfcce32e8bd7dc9e75bc118a5Pavlin Radoslavov    UINT16          fcr_tx_buf_size;
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_FCS_OPT    fcs;
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          data_mtu;   /* L2CAP MTU of the MCAP data channel */
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_CHNL_CFG;
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Header structure for callback event parameters. */
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mdl_id;     /* The associated MDL ID */
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           op_code;    /* The op (request/response) code */
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_EVT_HDR;
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Response Header structure for callback event parameters. */
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mdl_id;     /* The associated MDL ID */
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           op_code;    /* The op (request/response) code */
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rsp_code;   /* The response code */
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_RSP_EVT;
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This data structure is associated with the MCA_CREATE_IND_EVT. */
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mdl_id;     /* The associated MDL ID */
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           op_code;    /* The op (request/response) code */
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           dep_id;     /* MDEP ID */
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           cfg;        /* The configuration to negotiate */
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_CREATE_IND;
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This data structure is associated with the MCA_CREATE_CFM_EVT. */
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mdl_id;     /* The associated MDL ID */
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           op_code;    /* The op (request/response) code */
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           rsp_code;   /* The response code. */
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8           cfg;        /* The configuration to negotiate */
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_CREATE_CFM;
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This data structure is associated with MCA_CONNECT_IND_EVT. */
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;    /* The peer address */
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mtu;        /* peer mtu */
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_CONNECT_IND;
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This data structure is associated with MCA_DISCONNECT_IND_EVT. */
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR         bd_addr;    /* The peer address */
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          reason;     /* disconnect reason given by L2CAP */
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_DISCONNECT_IND;
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This data structure is associated with MCA_OPEN_IND_EVT, and MCA_OPEN_CFM_EVT. */
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mdl_id;     /* The associated MDL ID */
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DL         mdl;        /* The handle for the data channel */
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mtu;        /* peer mtu */
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_DL_OPEN;
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This data structure is associated with MCA_CLOSE_IND_EVT and MCA_CLOSE_CFM_EVT. */
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mdl_id;     /* The associated MDL ID */
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DL         mdl;        /* The handle for the data channel */
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          reason;     /* disconnect reason given by L2CAP */
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_DL_CLOSE;
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This data structure is associated with MCA_CONG_CHG_EVT. */
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct {
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16          mdl_id;     /* N/A - This is a place holder */
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DL	        mdl;        /* The handle for the data channel */
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN         cong;       /* TRUE, if the channel is congested */
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_CONG_CHG;
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all control callback event data structures */
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union {
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_EVT_HDR        hdr;
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_RSP_EVT        rsp;
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_CREATE_IND     create_ind;
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_CREATE_CFM     create_cfm;
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_EVT_HDR        reconnect_ind;
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_RSP_EVT        reconnect_cfm;
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_EVT_HDR        abort_ind;
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_RSP_EVT        abort_cfm;
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_EVT_HDR        delete_ind;
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_RSP_EVT        delete_cfm;
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_CONNECT_IND    connect_ind;
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DISCONNECT_IND disconnect_ind;
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DL_OPEN        open_ind;
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DL_OPEN        open_cfm;
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DL_CLOSE       close_ind;
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_DL_CLOSE       close_cfm;
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tMCA_CONG_CHG       cong_chg;
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tMCA_CTRL;
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This is the control callback function.  This function passes control events
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** to the application.
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tMCA_CTRL_CBACK)(tMCA_HANDLE handle, tMCA_CL mcl, UINT8 event,
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                tMCA_CTRL *p_data);
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_Init
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Initialize MCAP internal control blocks.
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  This function is called at stack start up.
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
22724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void MCA_Init(void);
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_SetTraceLevel
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sets the debug trace level for MCA.
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If 0xff is passed, the current trace level is returned.
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Input Parameters:
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      level:  The level to set the MCA tracing to:
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      0xff-returns the current setting.
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      0-turns off tracing.
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      >= 1-Errors.
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      >= 2-Warnings.
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      >= 3-APIs.
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      >= 4-Events.
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                      >= 5-Debug.
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          The new trace level or current trace level if
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the input parameter is 0xff.
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
25024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT8 MCA_SetTraceLevel (UINT8 level);
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_Register
2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function registers an MCAP implementation.
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  It is assumed that the control channel PSM and data channel
2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  PSM are not used by any other instances of the stack.
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If the given p_reg->ctrl_psm is 0, this handle is INT only.
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          0, if failed. Otherwise, the MCA handle.
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
26424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_HANDLE MCA_Register(tMCA_REG *p_reg, tMCA_CTRL_CBACK *p_cback);
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_Deregister
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function is called to deregister an MCAP implementation.
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  Before this function can be called, all control and data
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  channels must be removed with MCA_DisconnectReq and MCA_CloseReq.
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
27724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void MCA_Deregister(tMCA_HANDLE handle);
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_CreateDep
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Create a data endpoint.  If the MDEP is created successfully,
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the MDEP ID is returned in *p_dep. After a data endpoint is
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  created, an application can initiate a connection between this
2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  endpoint and an endpoint on a peer device.
2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
29124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_CreateDep(tMCA_HANDLE handle, tMCA_DEP *p_dep, tMCA_CS *p_cs);
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_DeleteDep
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Delete a data endpoint.  This function is called when
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the implementation is no longer using a data endpoint.
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If this function is called when the endpoint is connected
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  the connection is closed and the data endpoint
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is removed.
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
30624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_DeleteDep(tMCA_HANDLE handle, tMCA_DEP dep);
3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_ConnectReq
3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function initiates an MCAP control channel connection
3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to the peer device.  When the connection is completed, an
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  MCA_CONNECT_IND_EVT is reported to the application via its
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  control callback function.
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  This control channel is identified by tMCA_CL.
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If the connection attempt fails, an MCA_DISCONNECT_IND_EVT is
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  reported. The security mask parameter overrides the outgoing
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  security mask set in MCA_Register().
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
32424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_ConnectReq(tMCA_HANDLE handle, BD_ADDR bd_addr,
32524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                  UINT16 ctrl_psm,
32624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                  UINT16 sec_mask);
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_DisconnectReq
3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function disconnect an MCAP control channel
3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  to the peer device.
3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If associated data channel exists, they are disconnected.
3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the MCL is disconnected an MCA_DISCONNECT_IND_EVT is
3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  reported to the application via its control callback function.
3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
34124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_DisconnectReq(tMCA_CL mcl);
3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_CreateMdl
3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sends a CREATE_MDL request to the peer device.
3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the response is received, a MCA_CREATE_CFM_EVT is reported
3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  with the given MDL ID.
3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If the response is successful, a data channel is open
3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  with the given p_chnl_cfg
3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the data channel is open successfully, a MCA_OPEN_CFM_EVT
3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is reported. This data channel is identified as tMCA_DL.
3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
35824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_CreateMdl(tMCA_CL mcl, tMCA_DEP dep, UINT16 data_psm,
35924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                 UINT16 mdl_id, UINT8 peer_dep_id,
36024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                 UINT8 cfg, const tMCA_CHNL_CFG *p_chnl_cfg);
3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_CreateMdlRsp
3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sends a CREATE_MDL response to the peer device
3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  in response to a received MCA_CREATE_IND_EVT.
3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If the rsp_code is successful, a data channel is open
3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  with the given p_chnl_cfg
3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the data channel is open successfully, a MCA_OPEN_IND_EVT
3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is reported. This data channel is identified as tMCA_DL.
3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
37624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_CreateMdlRsp(tMCA_CL mcl, tMCA_DEP dep,
37724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                    UINT16 mdl_id, UINT8 cfg, UINT8 rsp_code,
37824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                    const tMCA_CHNL_CFG *p_chnl_cfg);
3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_CloseReq
3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Close a data channel.  When the channel is closed, an
3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  MCA_CLOSE_CFM_EVT is sent to the application via the
3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  control callback function for this handle.
3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
39124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_CloseReq(tMCA_DL mdl);
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_ReconnectMdl
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sends a RECONNECT_MDL request to the peer device.
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the response is received, a MCA_RECONNECT_CFM_EVT is reported.
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If the response is successful, a data channel is open.
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the data channel is open successfully, a MCA_OPEN_CFM_EVT
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is reported.
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
40624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_ReconnectMdl(tMCA_CL mcl, tMCA_DEP dep, UINT16 data_psm,
40724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                    UINT16 mdl_id, const tMCA_CHNL_CFG *p_chnl_cfg);
4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_ReconnectMdlRsp
4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sends a RECONNECT_MDL response to the peer device
4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  in response to a MCA_RECONNECT_IND_EVT event.
4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  If the response is successful, a data channel is open.
4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the data channel is open successfully, a MCA_OPEN_IND_EVT
4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is reported.
4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
42224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_ReconnectMdlRsp(tMCA_CL mcl, tMCA_DEP dep,
42324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                       UINT16 mdl_id, UINT8 rsp_code,
42424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                       const tMCA_CHNL_CFG *p_chnl_cfg);
4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_DataChnlCfg
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function initiates a data channel connection toward the
4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  connected peer device.
4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the data channel is open successfully, a MCA_OPEN_CFM_EVT
4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  is reported. This data channel is identified as tMCA_DL.
4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
43824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_DataChnlCfg(tMCA_CL mcl, const tMCA_CHNL_CFG *p_chnl_cfg);
4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_Abort
4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sends a ABORT_MDL request to the peer device.
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the response is received, a MCA_ABORT_CFM_EVT is reported.
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
45024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_Abort(tMCA_CL mcl);
4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_Delete
4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This function sends a DELETE_MDL request to the peer device.
4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  When the response is received, a MCA_DELETE_CFM_EVT is reported.
4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
46224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_Delete(tMCA_CL mcl, UINT16 mdl_id);
4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_WriteReq
4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Send a data packet to the peer device.
4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  The application passes the packet using the BT_HDR structure.
4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  The offset field must be equal to or greater than L2CAP_MIN_OFFSET.
4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  This allows enough space in the buffer for the L2CAP header.
4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  The memory pointed to by p_pkt must be a GKI buffer
4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  allocated by the application.  This buffer will be freed
4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  by the protocol stack; the application must not free
4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  this buffer.
4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          MCA_SUCCESS if successful, otherwise error.
4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
48224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tMCA_RESULT MCA_WriteReq(tMCA_DL mdl, BT_HDR *p_pkt);
4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         MCA_GetL2CapChannel
4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      Get the L2CAP CID used by the given data channel handle.
4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          L2CAP channel ID if successful, otherwise 0.
4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
49324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern UINT16 MCA_GetL2CapChannel (tMCA_DL mdl);
4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* MCA_API_H */
496