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