1 /****************************************************************************** 2 * 3 * Copyright 2004-2012 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19 /****************************************************************************** 20 * 21 * This is the interface file for pan call-in functions. 22 * 23 ******************************************************************************/ 24 #ifndef BTA_PAN_CI_H 25 #define BTA_PAN_CI_H 26 27 #include <cstdint> 28 29 #include "bta/include/bta_pan_api.h" 30 #include "stack/include/bt_hdr.h" 31 #include "types/raw_address.h" 32 33 /***************************************************************************** 34 * Function Declarations 35 ****************************************************************************/ 36 /******************************************************************************* 37 * 38 * Function bta_pan_ci_tx_ready 39 * 40 * Description This function sends an event to PAN indicating the phone is 41 * ready for more data and PAN should call 42 * bta_pan_co_tx_path(). 43 * This function is used when the TX data path is configured 44 * to use a pull interface. 45 * 46 * 47 * Returns void 48 * 49 ******************************************************************************/ 50 extern void bta_pan_ci_tx_ready(uint16_t handle); 51 52 /******************************************************************************* 53 * 54 * Function bta_pan_ci_rx_ready 55 * 56 * Description This function sends an event to PAN indicating the phone 57 * has data available to send to PAN and PAN should call 58 * bta_pan_co_rx_path(). This function is used when the RX 59 * data path is configured to use a pull interface. 60 * 61 * 62 * Returns void 63 * 64 ******************************************************************************/ 65 extern void bta_pan_ci_rx_ready(uint16_t handle); 66 67 /******************************************************************************* 68 * 69 * Function bta_pan_ci_tx_flow 70 * 71 * Description This function is called to enable or disable data flow on 72 * the TX path. The phone should call this function to 73 * disable data flow when it is congested and cannot handle 74 * any more data sent by bta_pan_co_tx_write(). 75 * This function is used when the 76 * TX data path is configured to use a push interface. 77 * 78 * 79 * Returns void 80 * 81 ******************************************************************************/ 82 extern void bta_pan_ci_tx_flow(uint16_t handle, bool enable); 83 84 /******************************************************************************* 85 * 86 * Function bta_pan_ci_rx_writebuf 87 * 88 * Description This function is called to send data to the phone when 89 * the RX path is configured to use a push interface with 90 * zero copy. The function sends an event to PAN containing 91 * the data buffer. The buffer will be freed by BTA; the 92 * phone must not free the buffer. 93 * 94 * 95 * Returns true if flow enabled 96 * 97 ******************************************************************************/ 98 extern void bta_pan_ci_rx_writebuf(uint16_t handle, const RawAddress& src, 99 const RawAddress& dst, uint16_t protocol, 100 BT_HDR* p_buf, bool ext); 101 102 /******************************************************************************* 103 * 104 * Function bta_pan_ci_readbuf 105 * 106 * Description This function is called by the phone to read data from PAN 107 * when the TX path is configured to use a pull interface. 108 * The caller must free the buffer when it is through 109 * processing the buffer. 110 * 111 * 112 * Returns void 113 * 114 ******************************************************************************/ 115 extern BT_HDR* bta_pan_ci_readbuf(uint16_t handle, RawAddress& src, 116 RawAddress& dst, uint16_t* p_protocol, 117 bool* p_ext, bool* p_forward); 118 119 #endif /* BTA_PAN_CI_H */ 120