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