15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 1999-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 file contains the L2CAP API definitions 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef L2C_API_H 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2C_API_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h" 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "l2cdefs.h" 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "hcidefs.h" 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Constants 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the minimum offset that L2CAP needs in a buffer. This is made up of 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** HCI type(1), len(2), handle(2), L2CAP len(2) and CID(2) => 9 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_MIN_OFFSET 13 /* plus control(2), SDU length(2) */ 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Minimum offset for broadcast needs another two bytes for the PSM */ 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_BCST_MIN_OFFSET 11 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ping result codes */ 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_PING_RESULT_OK 0 /* Ping reply received OK */ 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_PING_RESULT_NO_LINK 1 /* Link could not be setup */ 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_PING_RESULT_NO_RESP 2 /* Remote L2CAP did not reply */ 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* result code for L2CA_DataWrite() */ 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_DW_FAILED FALSE 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_DW_SUCCESS TRUE 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_DW_CONGESTED 2 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Values for priority parameter to L2CA_SetAclPriority */ 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_PRIORITY_NORMAL 0 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_PRIORITY_HIGH 1 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Values for priority parameter to L2CA_SetTxPriority */ 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CHNL_PRIORITY_HIGH 0 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CHNL_PRIORITY_MEDIUM 1 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CHNL_PRIORITY_LOW 2 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tL2CAP_CHNL_PRIORITY; 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Values for Tx/Rx data rate parameter to L2CA_SetChnlDataRate */ 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CHNL_DATA_RATE_HIGH 3 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CHNL_DATA_RATE_MEDIUM 2 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CHNL_DATA_RATE_LOW 1 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CHNL_DATA_RATE_NO_TRAFFIC 0 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT8 tL2CAP_CHNL_DATA_RATE; 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Data Packet Flags (bits 2-15 are reserved) */ 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* layer specific 14-15 bits are used for FCR SAR */ 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FLUSHABLE_MASK 0x0003 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FLUSHABLE_CH_BASED 0x0000 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FLUSHABLE_PKT 0x0001 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_NON_FLUSHABLE_PKT 0x0002 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* L2CA_FlushChannel num_to_flush definitions */ 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FLUSH_CHANS_ALL 0xffff 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FLUSH_CHANS_GET 0x0000 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* special CID for Multi-AV for reporting congestion */ 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_MULTI_AV_CID 0 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* length of the HCI header block */ 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI header(4) + SNK count(1) + FCR bits(1) + AV data length(2) */ 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_MULTI_AV_HCI_HDR_LEN 8 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* length of padding for 4 bytes align */ 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_MULTI_AV_PADDING_LEN 2 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* length of the HCI header block with padding for FCR */ 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI header(4) + SNK count(1) + FCR bits(1) + AV data length(2) + padding(2) */ 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_MULTI_AV_HCI_HDR_LEN_WITH_PADDING 10 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* length of the L2CAP header block */ 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI header(4) + L2CAP header(4) + padding(4) or control word(2) + FCS(2) */ 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_MULTI_AV_L2C_HDR_LEN 12 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* definition used for L2CA_SetDesireRole */ 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_ROLE_SLAVE HCI_ROLE_SLAVE 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_ROLE_MASTER HCI_ROLE_MASTER 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_ROLE_ALLOW_SWITCH 0x80 /* set this bit to allow switch at create conn */ 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_ROLE_DISALLOW_SWITCH 0x40 /* set this bit to disallow switch at create conn */ 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_ROLE_CHECK_SWITCH 0xC0 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Values for 'allowed_modes' field passed in structure tL2CAP_ERTM_INFO 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FCR_CHAN_OPT_BASIC (1 << L2CAP_FCR_BASIC_MODE) 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FCR_CHAN_OPT_ERTM (1 << L2CAP_FCR_ERTM_MODE) 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FCR_CHAN_OPT_STREAM (1 << L2CAP_FCR_STREAM_MODE) 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FCR_CHAN_OPT_ALL_MASK (L2CAP_FCR_CHAN_OPT_BASIC | L2CAP_FCR_CHAN_OPT_ERTM | L2CAP_FCR_CHAN_OPT_STREAM) 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Validity check for PSM. PSM values must be odd. Also, all PSM values must 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** be assigned such that the least significant bit of the most sigificant 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** octet equals zero. 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2C_INVALID_PSM(psm) (((psm) & 0x0101) != 0x0001) 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2C_IS_VALID_PSM(psm) (((psm) & 0x0101) == 0x0001) 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BLE_INCLUDED == TRUE) 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_LE_INT_MIN 0x0006 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_LE_INT_MAX 0x0C80 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_LE_LATENCY_MAX 500 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_LE_TIMEOUT_MIN 0x000a 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_LE_TIMEOUT_MAX 0x0C80 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_LE_TIMEOUT_DEFAULT 0x07D0 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Type Definitions 1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FCR_BASIC_MODE 0x00 1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FCR_ERTM_MODE 0x03 1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_FCR_STREAM_MODE 0x04 1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 mode; 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 tx_win_sz; 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 max_transmit; 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 rtrans_tout; 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mon_tout; 1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mps; 1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tL2CAP_FCR_OPTS; 1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define a structure to hold the configuration parameters. Since the 1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** parameters are optional, for each parameter there is a boolean to 1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** use to signify its presence or absence. 1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 result; /* Only used in confirm messages */ 1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN mtu_present; 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 mtu; 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN qos_present; 1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project FLOW_SPEC qos; 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN flush_to_present; 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 flush_to; 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN fcr_present; 1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CAP_FCR_OPTS fcr; 1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN fcs_present; /* Optionally bypasses FCS checks */ 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 fcs; /* '0' if desire is to bypass FCS, otherwise '1' */ 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN ext_flow_spec_present; 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tHCI_EXT_FLOW_SPEC ext_flow_spec; 1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 flags; /* bit 0: 0-no continuation, 1-continuation */ 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tL2CAP_CFG_INFO; 1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* L2CAP channel configured field bitmap */ 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CH_CFG_MASK_MTU 0x0001 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CH_CFG_MASK_QOS 0x0002 1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CH_CFG_MASK_FLUSH_TO 0x0004 1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CH_CFG_MASK_FCR 0x0008 1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CH_CFG_MASK_FCS 0x0010 1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_CH_CFG_MASK_EXT_FLOW_SPEC 0x0020 1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef UINT16 tL2CAP_CH_CFG_BITS; 1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/********************************* 1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Callback Functions Prototypes 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**********************************/ 1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connection indication callback prototype. Parameters are 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of remote 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID assigned to the connection 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** PSM that the remote wants to connect to 1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Identifier that the remote sent 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_CONNECT_IND_CB) (BD_ADDR, UINT16, UINT16, UINT8); 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connection confirmation callback prototype. Parameters are 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID 2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Result - 0 = connected, non-zero means failure reason 2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_CONNECT_CFM_CB) (UINT16, UINT16); 2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connection pending callback prototype. Parameters are 2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID 2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_CONNECT_PND_CB) (UINT16); 2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Configuration indication callback prototype. Parameters are 2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID assigned to the connection 2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Pointer to configuration info 2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_CONFIG_IND_CB) (UINT16, tL2CAP_CFG_INFO *); 2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Configuration confirm callback prototype. Parameters are 2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID assigned to the connection 2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Pointer to configuration info 2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_CONFIG_CFM_CB) (UINT16, tL2CAP_CFG_INFO *); 2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Disconnect indication callback prototype. Parameters are 2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID 2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Boolean whether upper layer should ack this 2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_DISCONNECT_IND_CB) (UINT16, BOOLEAN); 2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Disconnect confirm callback prototype. Parameters are 2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID 2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Result 2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_DISCONNECT_CFM_CB) (UINT16, UINT16); 2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* QOS Violation indication callback prototype. Parameters are 2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of violating device 2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_QOS_VIOLATION_IND_CB) (BD_ADDR); 2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Data received indication callback prototype. Parameters are 2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID 2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Address of buffer 2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_DATA_IND_CB) (UINT16, BT_HDR *); 2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Echo response callback prototype. Note that this is not included in the 2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** registration information, but is passed to L2CAP as part of the API to 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** actually send an echo request. Parameters are 2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Result 2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_ECHO_RSP_CB) (UINT16); 2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback function prototype to pass broadcom specific echo response */ 2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* to the upper layer */ 2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_ECHO_DATA_CB) (BD_ADDR, UINT16, UINT8 *); 2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Congestion status callback protype. This callback is optional. If 2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** an application tries to send data when the transmit queue is full, 2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the data will anyways be dropped. The parameter is: 2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID 2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** TRUE if congested, FALSE if uncongested 2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_CONGESTION_STATUS_CB) (UINT16, BOOLEAN); 2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Callback prototype for number of packets completed events. 2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** This callback notifies the application when Number of Completed Packets 2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** event has been received. 2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** This callback is originally designed for 3DG devices. 2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** The parameter is: 2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** peer BD_ADDR 2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_NOCP_CB) (BD_ADDR); 2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Transmit complete callback protype. This callback is optional. If 2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** set, L2CAP will call it when packets are sent or flushed. If the 2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** count is 0xFFFF, it means all packets are sent for that CID (eRTM 2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** mode only). The parameters are: 2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Local CID 2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Number of SDUs sent or dropped 2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_TX_COMPLETE_CB) (UINT16, UINT16); 2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the structure that applications use to register with 2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP. This structure includes callback functions. All functions 2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** MUST be provided, with the exception of the "connect pending" 2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** callback and "congestion status" callback. 2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_CONNECT_IND_CB *pL2CA_ConnectInd_Cb; 3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_CONNECT_CFM_CB *pL2CA_ConnectCfm_Cb; 3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_CONNECT_PND_CB *pL2CA_ConnectPnd_Cb; 3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_CONFIG_IND_CB *pL2CA_ConfigInd_Cb; 3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_CONFIG_CFM_CB *pL2CA_ConfigCfm_Cb; 3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_DISCONNECT_IND_CB *pL2CA_DisconnectInd_Cb; 3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_DISCONNECT_CFM_CB *pL2CA_DisconnectCfm_Cb; 3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_QOS_VIOLATION_IND_CB *pL2CA_QoSViolationInd_Cb; 3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_DATA_IND_CB *pL2CA_DataInd_Cb; 3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_CONGESTION_STATUS_CB *pL2CA_CongestionStatus_Cb; 3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_TX_COMPLETE_CB *pL2CA_TxComplete_Cb; 3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tL2CAP_APPL_INFO; 3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the structure that applications use to create or accept 3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** connections with enhanced retransmission mode. 3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 preferred_mode; 3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 allowed_modes; 3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 user_rx_pool_id; 3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 user_tx_pool_id; 3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 fcr_rx_pool_id; 3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 fcr_tx_pool_id; 3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tL2CAP_ERTM_INFO; 3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CA_REGISTER(a,b,c) L2CA_Register(a,(tL2CAP_APPL_INFO *)b) 3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CA_DEREGISTER(a) L2CA_Deregister(a) 3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CA_CONNECT_REQ(a,b,c,d) L2CA_ErtmConnectReq(a,b,c) 3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CA_CONNECT_RSP(a,b,c,d,e,f,g) L2CA_ErtmConnectRsp(a,b,c,d,e,f) 3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CA_CONFIG_REQ(a,b) L2CA_ConfigReq(a,b) 3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CA_CONFIG_RSP(a,b) L2CA_ConfigRsp(a,b) 3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CA_DISCONNECT_REQ(a) L2CA_DisconnectReq(a) 3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CA_DISCONNECT_RSP(a) L2CA_DisconnectRsp(a) 3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CA_DATA_WRITE(a, b) L2CA_DataWrite(a, b) 3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** External Function Declarations 3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C" 3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_Register 3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Other layers call this function to register for L2CAP 3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** services. 3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns PSM to use or zero if error. Typically, the PSM returned 3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is the same as was passed in, but for an outgoing-only 3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** connection to a dynamic PSM, a "virtual" PSM is returned 3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** and should be used in the calls to L2CA_ConnectReq() and 3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BTM_SetSecurityLevel(). 3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_Register (UINT16 psm, tL2CAP_APPL_INFO *p_cb_info); 3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_Deregister 3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Other layers call this function to deregister for L2CAP 3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** services. 3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern void L2CA_Deregister (UINT16 psm); 3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_AllocatePSM 3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Other layers call this function to find an unused PSM for L2CAP 3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** services. 3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns PSM to use. 3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_AllocatePSM(void); 3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_ConnectReq 3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to create an L2CAP connection. 3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Note that the connection is not established at this time, but 3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** connection establishment gets started. The callback function 3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** will be invoked when connection establishes or fails. 3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns the CID of the connection, or 0 if it failed to start 3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_ConnectReq (UINT16 psm, BD_ADDR p_bd_addr); 3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_ConnectRsp 4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to accept an incoming 4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP connection, for which they had gotten an connect 4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** indication callback. 4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE for success, FALSE for failure 4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_ConnectRsp (BD_ADDR p_bd_addr, UINT8 id, UINT16 lcid, 4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 result, UINT16 status); 4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_ErtmConnectReq 4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to create an L2CAP connection 4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** that needs to use Enhanced Retransmission Mode. 4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Note that the connection is not established at this time, but 4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** connection establishment gets started. The callback function 4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** will be invoked when connection establishes or fails. 4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns the CID of the connection, or 0 if it failed to start 4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_ErtmConnectReq (UINT16 psm, BD_ADDR p_bd_addr, 4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CAP_ERTM_INFO *p_ertm_info); 4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_ErtmConnectRsp 4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to accept an incoming 4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP connection, for which they had gotten an connect 4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** indication callback, and for which the higher layer wants 4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** to use Enhanced Retransmission Mode. 4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE for success, FALSE for failure 4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_ErtmConnectRsp (BD_ADDR p_bd_addr, UINT8 id, UINT16 lcid, 4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 result, UINT16 status, 4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CAP_ERTM_INFO *p_ertm_info); 4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_ConfigReq 4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to send configuration. 4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if configuration sent, else FALSE 4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_ConfigReq (UINT16 cid, tL2CAP_CFG_INFO *p_cfg); 4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_ConfigRsp 4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to send a configuration 4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** response. 4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if configuration response sent, else FALSE 4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_ConfigRsp (UINT16 cid, tL2CAP_CFG_INFO *p_cfg); 4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_DisconnectReq 4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to disconnect a channel. 4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if disconnect sent, else FALSE 4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_DisconnectReq (UINT16 cid); 4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_DisconnectRsp 4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to acknowledge the 4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** disconnection of a channel. 4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_DisconnectRsp (UINT16 cid); 4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_DataWrite 4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to write data. 4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns L2CAP_DW_SUCCESS, if data accepted, else FALSE 4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_DW_CONGESTED, if data accepted and the channel is congested 5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_DW_FAILED, if error 5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT8 L2CA_DataWrite (UINT16 cid, BT_HDR *p_data); 5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_Ping 5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to send an echo request. 5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if echo request sent, else FALSE. 5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_Ping (BD_ADDR p_bd_addr, tL2CA_ECHO_RSP_CB *p_cb); 5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_Echo 5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to send an echo request 5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** with application-specific data. 5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if echo request sent, else FALSE. 5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_Echo (BD_ADDR p_bd_addr, BT_HDR *p_data, tL2CA_ECHO_DATA_CB *p_callback); 5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetIdleTimeout 5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to set the idle timeout for 5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a connection, or for all future connections. The "idle timeout" 5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is the amount of time that a connection can remain up with 5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** no L2CAP channels on it. A timeout of zero means that the 5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** connection will be torn down immediately when the last channel 5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is removed. A timeout of 0xFFFF means no timeout. Values are 5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** in seconds. 5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if command succeeded, FALSE if failed 5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_SetIdleTimeout (UINT16 cid, UINT16 timeout, 5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN is_global); 5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetIdleTimeoutByBdAddr 5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to set the idle timeout for 5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a connection. The "idle timeout" is the amount of time that 5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a connection can remain up with no L2CAP channels on it. 5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** A timeout of zero means that the connection will be torn 5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** down immediately when the last channel is removed. 5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** A timeout of 0xFFFF means no timeout. Values are in seconds. 5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** A bd_addr is the remote BD address. If bd_addr = BT_BD_ANY, 5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** then the idle timeouts for all active l2cap links will be 5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** changed. 5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if command succeeded, FALSE if failed 5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** NOTE This timeout applies to all logical channels active on the 5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** ACL link. 5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_SetIdleTimeoutByBdAddr(BD_ADDR bd_addr, UINT16 timeout); 5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetTraceLevel 5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sets the trace level for L2CAP. If called with 5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a value of 0xFF, it simply reads the current trace level. 5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns the new (current) trace level 5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT8 L2CA_SetTraceLevel (UINT8 trace_level); 5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetDesireRole 5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sets the desire role for L2CAP. 5845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** If the new role is L2CAP_ROLE_ALLOW_SWITCH, allow switch on 5855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** HciCreateConnection. 5865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** If the new role is L2CAP_ROLE_DISALLOW_SWITCH, do not allow switch on 5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** HciCreateConnection. 5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** If the new role is a valid role (HCI_ROLE_MASTER or HCI_ROLE_SLAVE), 5905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the desire role is set to the new value. Otherwise, it is not changed. 5915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns the new (current) role 5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 5955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT8 L2CA_SetDesireRole (UINT8 new_role); 5965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_LocalLoopbackReq 6005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function sets up a CID for local loopback 6025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns CID of 0 if none. 6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_LocalLoopbackReq (UINT16 psm, UINT16 handle, BD_ADDR p_bd_addr); 6075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_FlushChannel 6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function flushes none, some or all buffers queued up 6135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** for xmission for a particular CID. If called with 6145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_FLUSH_CHANS_GET (0), it simply returns the number 6155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** of buffers queued for that CID L2CAP_FLUSH_CHANS_ALL (0xffff) 6165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** flushes all buffers. All other values specifies the maximum 6175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** buffers to flush. 6185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns Number of buffers left queued for that CID 6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_FlushChannel (UINT16 lcid, UINT16 num_to_flush); 6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetAclPriority 6285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Sets the transmission priority for an ACL channel. 6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** (For initial implementation only two values are valid. 6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_PRIORITY_NORMAL and L2CAP_PRIORITY_HIGH). 6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if a valid channel, else FALSE 6345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_SetAclPriority (BD_ADDR bd_addr, UINT8 priority); 6375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_FlowControl 6415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to flow control a channel. 6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** data_enabled - TRUE data flows, FALSE data is stopped 6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if valid channel, else FALSE 6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_FlowControl (UINT16 cid, BOOLEAN data_enabled); 6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SendTestSFrame 6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to send a test S-frame. 6565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if valid Channel, else FALSE 6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_SendTestSFrame (UINT16 cid, BOOLEAN rr_or_rej, 6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 back_track); 6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetTxPriority 6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Sets the transmission priority for a channel. (FCR Mode) 6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if a valid channel, else FALSE 6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_SetTxPriority (UINT16 cid, tL2CAP_CHNL_PRIORITY priority); 6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_RegForNoCPEvt 6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Register callback for Number of Completed Packets event. 6795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Input Param p_cb - callback for Number of completed packets event 6815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_bda - BT address of remote device 6825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns 6845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_RegForNoCPEvt(tL2CA_NOCP_CB *p_cb, BD_ADDR p_bda); 6875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 6895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetChnlDataRate 6915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Sets the tx/rx data rate for a channel. 6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if a valid channel, else FALSE 6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 6965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_SetChnlDataRate (UINT16 cid, tL2CAP_CHNL_DATA_RATE tx, tL2CAP_CHNL_DATA_RATE rx); 6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_RESERVE_CMPL_CBACK) (void); 7005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetFlushTimeout 7045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function set the automatic flush time out in Baseband 7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** for ACL-U packets. 7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BdAddr : the remote BD address of ACL link. If it is BT_DB_ANY 7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** then the flush time out will be applied to all ACL link. 7095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** FlushTimeout: flush time out in ms 7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 0x0000 : No automatic flush 7115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_NO_RETRANSMISSION : No retransmission 7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 0x0002 - 0xFFFE : flush time out, if (flush_tout*8)+3/5) 7135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** <= HCI_MAX_AUTO_FLUSH_TOUT (in 625us slot). 7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Otherwise, return FALSE. 7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_NO_AUTOMATIC_FLUSH : No automatic flush 7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if command succeeded, FALSE if failed 7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** NOTE This flush timeout applies to all logical channels active on the 7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** ACL link. 7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_SetFlushTimeout (BD_ADDR bd_addr, UINT16 flush_tout); 7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_DataWriteEx 7275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to write data with extended 7295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** flags. 7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** flags : L2CAP_FLUSHABLE_CH_BASED 7315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_FLUSHABLE_PKT 7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_NON_FLUSHABLE_PKT 7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns L2CAP_DW_SUCCESS, if data accepted, else FALSE 7355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_DW_CONGESTED, if data accepted and the channel is congested 7365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_DW_FAILED, if error 7375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT8 L2CA_DataWriteEx (UINT16 cid, BT_HDR *p_data, UINT16 flags); 7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetChnlFlushability 7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to set a channels 7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** flushability flags 7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if CID found, else FALSE 7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_SetChnlFlushability (UINT16 cid, BOOLEAN is_flushable); 7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_GetPeerFeatures 7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Get a peers features and fixed channel map 7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: BD address of the peer 7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Pointers to features and channel mask storage area 7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if peer is connected 7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_GetPeerFeatures (BD_ADDR bd_addr, UINT32 *p_ext_feat, UINT8 *p_chnl_mask); 7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_GetBDAddrbyHandle 7705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Get BD address for the given HCI handle 7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: HCI handle 7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD address of the peer 7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if found lcb for the given handle, FALSE otherwise 7775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_GetBDAddrbyHandle (UINT16 handle, BD_ADDR bd_addr); 7805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_GetChnlFcrMode 7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Get the channel FCR mode 7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: Local CID 7885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: Channel mode 7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 7925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT8 L2CA_GetChnlFcrMode (UINT16 lcid); 7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** UCD callback prototypes 7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 7995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* UCD discovery. Parameters are 8025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of remote 8035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Data Type 8045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Data 8055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 8065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_UCD_INFO_TYPE_RECEPTION 0x01 8075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define L2CAP_UCD_INFO_TYPE_MTU 0x02 8085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_UCD_DISCOVER_CB) (BD_ADDR, UINT8, UINT32); 8105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* UCD data received. Parameters are 8125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of remote 8135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Pointer to buffer with data 8145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 8155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_UCD_DATA_CB) (BD_ADDR, BT_HDR *); 8165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Congestion status callback protype. This callback is optional. If 8185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** an application tries to send data when the transmit queue is full, 8195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the data will anyways be dropped. The parameter is: 8205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** remote BD_ADDR 8215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** TRUE if congested, FALSE if uncongested 8225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 8235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_UCD_CONGESTION_STATUS_CB) (BD_ADDR, BOOLEAN); 8245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* UCD registration info (the callback addresses and PSM) 8265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 8275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 8285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 8295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_UCD_DISCOVER_CB *pL2CA_UCD_Discover_Cb; 8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_UCD_DATA_CB *pL2CA_UCD_Data_Cb; 8315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_UCD_CONGESTION_STATUS_CB *pL2CA_UCD_Congestion_Status_Cb; 8325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tL2CAP_UCD_CB_INFO; 8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_UcdRegister 8375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Register PSM on UCD. 8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: tL2CAP_UCD_CB_INFO 8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if successs 8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_UcdRegister ( UINT16 psm, tL2CAP_UCD_CB_INFO *p_cb_info ); 8465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_UcdDeregister 8505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Deregister PSM on UCD. 8525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: PSM 8545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if successs 8565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_UcdDeregister ( UINT16 psm ); 8595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_UcdDiscover 8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Discover UCD of remote device. 8655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: PSM 8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD_ADDR of remote device 8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** info_type : L2CAP_UCD_INFO_TYPE_RECEPTION 8695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_UCD_INFO_TYPE_MTU 8705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if successs 8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_UcdDiscover ( UINT16 psm, BD_ADDR rem_bda, UINT8 info_type ); 8765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_UcdDataWrite 8805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Send UCD to remote device 8825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: PSM 8845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of remote 8855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Pointer to buffer of type BT_HDR 8865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** flags : L2CAP_FLUSHABLE_CH_BASED 8875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_FLUSHABLE_PKT 8885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_NON_FLUSHABLE_PKT 8895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value L2CAP_DW_SUCCESS, if data accepted 8915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_DW_FAILED, if error 8925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 8945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_UcdDataWrite (UINT16 psm, BD_ADDR rem_bda, BT_HDR *p_buf, UINT16 flags); 8955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 8975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 8985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_UcdSetIdleTimeout 8995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Set UCD Idle timeout. 9015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: BD Addr 9035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Timeout in second 9045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if successs 9065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_UcdSetIdleTimeout ( BD_ADDR rem_bda, UINT16 timeout ); 9095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_UCDSetTxPriority 9135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Sets the transmission priority for a connectionless channel. 9155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if a valid channel, else FALSE 9175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_UCDSetTxPriority ( BD_ADDR rem_bda, tL2CAP_CHNL_PRIORITY priority ); 9205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Fixed Channel callback prototypes 9255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Fixed channel connected and disconnected. Parameters are 9295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of remote 9305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** TRUE if channel is connected, FALSE if disconnected 9315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Reason for connection failure 9325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 9335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_FIXED_CHNL_CB) (BD_ADDR, BOOLEAN, UINT16); 9345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Signalling data received. Parameters are 9365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of remote 9375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Pointer to buffer with data 9385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 9395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tL2CA_FIXED_DATA_CB) (BD_ADDR, BT_HDR *); 9405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Fixed channel registration info (the callback addresses and channel config) 9425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 9435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 9445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 9455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_FIXED_CHNL_CB *pL2CA_FixedConn_Cb; 9465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CA_FIXED_DATA_CB *pL2CA_FixedData_Cb; 9475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CAP_FCR_OPTS fixed_chnl_opts; 9485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 default_idle_tout; 9505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tL2CAP_FIXED_CHNL_REG; 9515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (L2CAP_NUM_FIXED_CHNLS > 0) 9545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_RegisterFixedChannel 9575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Register a fixed channel. 9595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: Fixed Channel # 9615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Channel Callbacks and config 9625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if registered OK 9645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_RegisterFixedChannel (UINT16 fixed_cid, tL2CAP_FIXED_CHNL_REG *p_freg); 9675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_ConnectFixedChnl 9715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Connect an fixed signalling channel to a remote device. 9735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: Fixed CID 9755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of remote 9765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if connection started 9785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_ConnectFixedChnl (UINT16 fixed_cid, BD_ADDR bd_addr); 9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SendFixedChnlData 9855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Write data on a fixed signalling channel. 9875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: Fixed CID 9895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of remote 9905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Pointer to buffer of type BT_HDR 9915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value L2CAP_DW_SUCCESS, if data accepted 9935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_DW_FAILED, if error 9945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 9955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 9965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_SendFixedChnlData (UINT16 fixed_cid, BD_ADDR rem_bda, BT_HDR *p_buf); 9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_RemoveFixedChnl 10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Remove a fixed channel to a remote device. 10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: Fixed CID 10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BD Address of remote 10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Idle timeout to use (or 0xFFFF if don't care) 10075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if channel removed 10095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_RemoveFixedChnl (UINT16 fixed_cid, BD_ADDR rem_bda); 10125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetFixedChannelTout 10165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Higher layers call this function to set the idle timeout for 10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a fixed channel. The "idle timeout" is the amount of time that 10195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a connection can remain up with no L2CAP channels on it. 10205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** A timeout of zero means that the connection will be torn 10215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** down immediately when the last channel is removed. 10225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** A timeout of 0xFFFF means no timeout. Values are in seconds. 10235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** A bd_addr is the remote BD address. If bd_addr = BT_BD_ANY, 10245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** then the idle timeouts for all active l2cap links will be 10255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** changed. 10265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if command succeeded, FALSE if failed 10285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_SetFixedChannelTout (BD_ADDR rem_bda, UINT16 fixed_cid, UINT16 idle_tout); 10315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* (L2CAP_NUM_FIXED_CHNLS > 0) */ 10335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_GetCurrentConfig 10375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function returns configurations of L2CAP channel 10395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** pp_our_cfg : pointer of our saved configuration options 10405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_our_cfg_bits : valid config in bitmap 10415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** pp_peer_cfg: pointer of peer's saved configuration options 10425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** p_peer_cfg_bits : valid config in bitmap 10435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns TRUE if successful 10455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_GetCurrentConfig (UINT16 lcid, 10485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CAP_CFG_INFO **pp_our_cfg, tL2CAP_CH_CFG_BITS *p_our_cfg_bits, 10495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tL2CAP_CFG_INFO **pp_peer_cfg, tL2CAP_CH_CFG_BITS *p_peer_cfg_bits); 10505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (L2CAP_CORRUPT_ERTM_PKTS == TRUE) 10525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SetupErtmTest 10555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is used for testing purposes only. 10575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** It corrupts or drops one or more packets used with ERTM channels. 10585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters 10605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** cid - channel ID (0 uses RFCOMM PSM's CID) 10615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** type - type of test to run (L2CAP_FCR_TTYPE_CORR_IFRAMES 10635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_FCR_TTYPE_CORR_SFRAME 10645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_FCR_TTYPE_STOP_TEST 10655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_FCR_TTYPE_GET_CID - returns rfcomm cid only) 10665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is_rx - TRUE to corrupt Rx packet, FALSE for Tx packet) 10685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** freq - L2CAP_FCR_FREQ_RANDOM (turns on random corruptions/drops) 10705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** L2CAP_FCR_FREQ_NORMAL (turns on test with "count" corruptions/drops) 10715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** count - number of packets in a row to drop or corrupt 10735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns CID of channel running test 10755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_SetupErtmTest (UINT16 cid, UINT8 type, BOOLEAN is_rx, UINT8 freq, UINT16 count); 10785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_SendPolledSFrame 10825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is used for testing purposes only. 10845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** It Sends a Polled RR or RNR to the peer 10855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters 10875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** cid - channel ID 10885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** sup_type - (L2CAP_FCR_SUP_RR or L2CAP_FCR_SUP_RNR) 10905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 10925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 10945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern void L2CA_SendPolledSFrame (UINT16 cid, UINT16 sup_type); 10955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 10985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_BypassSFrame 10995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is used for testing purposes only. 11015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** It skips sending 'count' S-Frames. 11025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters 11045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** cid - channel ID 11055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** count - Number of S-Frames to skip sending 11075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 11095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern void L2CA_BypassSFrame (UINT16 cid, UINT8 count); 11125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* (L2CAP_CORRUPT_ERTM_PKTS == TRUE) */ 11145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BLE_INCLUDED == TRUE) 11175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_CancelBleConnectReq 11205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Cancel a pending connection attempt to a BLE device. 11225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: BD Address of remote 11245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if connection was cancelled 11265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_CancelBleConnectReq (BD_ADDR rem_bda); 11295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_UpdateBleConnParams 11335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Update BLE connection parameters. 11355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: BD Address of remote 11375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if update started 11395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_UpdateBleConnParams (BD_ADDR rem_bdRa, UINT16 min_int, UINT16 max_int, UINT16 latency, UINT16 timeout); 11425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_EnableUpdateBleConnParams 11465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Update BLE connection parameters. 11485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Parameters: BD Address of remote 11505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** enable flag 11515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Return value: TRUE if update started 11535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern BOOLEAN L2CA_EnableUpdateBleConnParams (BD_ADDR rem_bda, BOOLEAN enable); 11565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_GetBleConnRole 11605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function returns the connection role. 11625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns link role. 11645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT8 L2CA_GetBleConnRole (BD_ADDR bd_addr); 11675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function L2CA_GetDisconnectReason 11715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function returns the disconnect reason code. 11735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns disconnect reason 11755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 11765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 11775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectL2C_API extern UINT16 L2CA_GetDisconnectReason (BD_ADDR remote_bda); 11785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* (BLE_INCLUDED == TRUE) */ 11805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 11825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 11835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 11845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* L2C_API_H */ 1186