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 interface file for data gateway call-out functions. 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_PAN_CO_H 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_CO_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_pan_api.h" 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Constants 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BT_HDR buffer offset */ 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_MIN_OFFSET PAN_MINIMUM_OFFSET 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Data Flow Mask */ 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_RX_PUSH 0x00 /* RX push. */ 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_RX_PUSH_BUF 0x01 /* RX push with zero copy. */ 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_RX_PULL 0x02 /* RX pull. */ 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_TX_PUSH 0x00 /* TX push. */ 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_TX_PUSH_BUF 0x10 /* TX push with zero copy. */ 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_PAN_TX_PULL 0x20 /* TX pull. */ 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function Declarations 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_init 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This callout function is executed by PAN when a server is 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** started by calling BTA_PanEnable(). This function can be 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** used by the phone to initialize data paths or for other 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** initialization purposes. The function must return the 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** data flow mask as described below. 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns Data flow mask. 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern UINT8 bta_pan_co_init(UINT8 *q_level); 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_open 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is executed by PAN when a connection 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** is opened. The phone can use this function to set 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** up data paths or perform any required initialization. 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_pan_co_open(UINT16 handle, UINT8 app_id, tBTA_PAN_ROLE local_role, tBTA_PAN_ROLE peer_role, BD_ADDR peer_addr); 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_close 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called by PAN when a connection to a 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** server is closed. 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_pan_co_close(UINT16 handle, UINT8 app_id); 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_tx_path 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called by PAN to transfer data on the 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** TX path; that is, data being sent from BTA to the phone. 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** This function is used when the TX data path is configured 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** to use the pull interface. 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_pan_co_tx_path(UINT16 handle, UINT8 app_id); 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_rx_path 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called by PAN to transfer data on the 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** RX path; that is, data being sent from the phone to BTA. 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** This function is used when the RX data path is configured 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** to use the pull interface. 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_pan_co_rx_path(UINT16 handle, UINT8 app_id); 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_tx_write 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called by PAN to send data to the phone 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** when the TX path is configured to use a push interface. 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** The implementation of this function must copy the data to 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the phone's memory. 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_pan_co_tx_write(UINT16 handle, UINT8 app_id, BD_ADDR src, BD_ADDR dst, UINT16 protocol, UINT8 *p_data, 1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len, BOOLEAN ext, BOOLEAN forward); 1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_tx_writebuf 1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called by PAN to send data to the phone 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** when the TX path is configured to use a push interface with 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** zero copy. The phone must free the buffer using function 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** GKI_freebuf() when it is through processing the buffer. 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_pan_co_tx_writebuf(UINT16 handle, UINT8 app_id, BD_ADDR src, BD_ADDR dst, UINT16 protocol, BT_HDR *p_buf, 1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN ext, BOOLEAN forward); 1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_rx_flow 1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description This function is called by PAN to enable or disable 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** data flow on the RX path when it is configured to use 1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** a push interface. If data flow is disabled the phone must 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** not call bta_pan_ci_rx_write() or bta_pan_ci_rx_writebuf() 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** until data flow is enabled again. 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_pan_co_rx_flow(UINT16 handle, UINT8 app_id, BOOLEAN enable); 1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_filt_ind 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description protocol filter indication from peer device 1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_pan_co_pfilt_ind(UINT16 handle, BOOLEAN indication, tBTA_PAN_STATUS result, 1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len, UINT8 *p_filters); 1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_pan_co_mfilt_ind 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description multicast filter indication from peer device 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/ 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_pan_co_mfilt_ind(UINT16 handle, BOOLEAN indication, tBTA_PAN_STATUS result, 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 len, UINT8 *p_filters); 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_PAN_CO_H */ 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 202