15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2004-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 is the private interface file for the BTA data gateway. 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_PAN_INT_H 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_INT_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 27bba583cd520b99d954f3585c38f59ef138d2fe40Pavlin Radoslavov#include "osi/include/fixed_queue.h" 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_sys.h" 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_pan_api.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 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PAN events */ 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectenum 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* these events are handled by the state machine */ 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_API_CLOSE_EVT = BTA_SYS_EVT_START(BTA_ID_PAN), 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_CI_TX_READY_EVT, 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_CI_RX_READY_EVT, 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_CI_TX_FLOW_EVT, 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_CI_RX_WRITE_EVT, 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_CI_RX_WRITEBUF_EVT, 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_CONN_OPEN_EVT, 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_CONN_CLOSE_EVT, 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_BNEP_FLOW_ENABLE_EVT, 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_RX_FROM_BNEP_READY_EVT, 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* these events are handled outside of the state machine */ 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_API_ENABLE_EVT, 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_API_DISABLE_EVT, 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_API_SET_ROLE_EVT, 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BTA_PAN_API_OPEN_EVT 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6036f43cc4b0ce38007c29d573f251ec594d95b180Nitin Shivpure/* state machine states */ 6136f43cc4b0ce38007c29d573f251ec594d95b180Nitin Shivpureenum 6236f43cc4b0ce38007c29d573f251ec594d95b180Nitin Shivpure{ 6336f43cc4b0ce38007c29d573f251ec594d95b180Nitin Shivpure BTA_PAN_IDLE_ST, 6436f43cc4b0ce38007c29d573f251ec594d95b180Nitin Shivpure BTA_PAN_OPEN_ST, 6536f43cc4b0ce38007c29d573f251ec594d95b180Nitin Shivpure BTA_PAN_CLOSING_ST 6636f43cc4b0ce38007c29d573f251ec594d95b180Nitin Shivpure}; 6736f43cc4b0ce38007c29d573f251ec594d95b180Nitin Shivpure 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Data types 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_PAN_API_ENABLE_EVT */ 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; /* Event header */ 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_CBACK *p_cback; /* PAN callback function */ 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_API_ENABLE; 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_PAN_API_REG_ROLE_EVT */ 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; /* Event header */ 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char user_name[BTA_SERVICE_NAME_LEN+1]; /* Service name */ 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char gn_name[BTA_SERVICE_NAME_LEN+1]; /* Service name */ 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char nap_name[BTA_SERVICE_NAME_LEN+1]; /* Service name */ 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_ROLE role; 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 user_app_id; 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 gn_app_id; 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 nap_app_id; 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_SEC user_sec_mask; /* Security mask */ 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_SEC gn_sec_mask; /* Security mask */ 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_SEC nap_sec_mask; /* Security mask */ 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_API_SET_ROLE; 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_PAN_API_OPEN_EVT */ 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; /* Event header */ 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_ROLE local_role; /* local role */ 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_ROLE peer_role; /* peer role */ 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr; /* peer bdaddr */ 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_API_OPEN; 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_PAN_CI_TX_FLOW_EVT */ 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; /* Event header */ 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN enable; /* Flow control setting */ 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_CI_TX_FLOW; 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_PAN_CONN_OPEN_EVT */ 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; /* Event header */ 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tPAN_RESULT result; 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_CONN; 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* union of all data types */ 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef union 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_API_ENABLE api_enable; 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_API_SET_ROLE api_set_role; 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_API_OPEN api_open; 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_CI_TX_FLOW ci_tx_flow; 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_CONN conn; 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_DATA; 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* state machine control block */ 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr; /* peer bdaddr */ 142bba583cd520b99d954f3585c38f59ef138d2fe40Pavlin Radoslavov fixed_queue_t *data_queue; /* Queue of buffers waiting to be passed to application */ 1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 handle; /* BTA PAN/BNEP handle */ 1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN in_use; /* scb in use */ 1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_SEC sec_mask; /* Security mask */ 1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN pan_flow_enable;/* BNEP flow control state */ 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN app_flow_enable;/* Application flow control state */ 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 state; /* State machine state */ 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_ROLE local_role; /* local role */ 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_ROLE peer_role; /* peer role */ 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_id; /* application id for the connection */ 1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_SCB; 1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* main control block */ 1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_SCB scb[BTA_PAN_NUM_CONN]; /* state machine control blocks */ 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_PAN_CBACK *p_cback; /* PAN callback function */ 1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 app_id[3]; /* application id for PAN roles */ 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 flow_mask; /* Data flow mask */ 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 q_level; /* queue level set by application for TX data */ 1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_CB; 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* pan data param */ 1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_HDR hdr; 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR src; 1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR dst; 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 protocol; 1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN ext; 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN forward; 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PAN_DATA_PARAMS; 1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Global data 1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PAN control block */ 1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BTA_DYNAMIC_MEMORY == FALSE 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_PAN_CB bta_pan_cb; 1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_PAN_CB *bta_pan_cb_ptr; 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define bta_pan_cb (*bta_pan_cb_ptr) 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function prototypes 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_PAN_SCB *bta_pan_scb_alloc(void); 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_scb_dealloc(tBTA_PAN_SCB *p_scb); 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern UINT8 bta_pan_scb_to_idx(tBTA_PAN_SCB *p_scb); 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_PAN_SCB *bta_pan_scb_by_handle(UINT16 handle); 2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN bta_pan_hdl_event(BT_HDR *p_msg); 2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* action functions */ 2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_enable(tBTA_PAN_DATA *p_data); 2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_disable(void); 2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_set_role(tBTA_PAN_DATA *p_data); 2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_open(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_api_close(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_set_shutdown(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_rx_path(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_tx_path(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_tx_flow(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_conn_open(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_conn_close(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_writebuf(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_write_buf(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_pan_free_buf(tBTA_PAN_SCB *p_scb, tBTA_PAN_DATA *p_data); 2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_PAN_INT_H */ 222