15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 2001-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 internally used BNEP definitions
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef  BNEP_INT_H
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_INT_H
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h"
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "gki.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bnep_api.h"
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btm_int.h"
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btu.h"
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BNEP frame types
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FRAME_GENERAL_ETHERNET                 0x00
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FRAME_CONTROL                          0x01
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FRAME_COMPRESSED_ETHERNET              0x02
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FRAME_COMPRESSED_ETHERNET_SRC_ONLY     0x03
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FRAME_COMPRESSED_ETHERNET_DEST_ONLY    0x04
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BNEP filter control message types
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_CONTROL_COMMAND_NOT_UNDERSTOOD         0x00
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_SETUP_CONNECTION_REQUEST_MSG           0x01
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_SETUP_CONNECTION_RESPONSE_MSG          0x02
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_NET_TYPE_SET_MSG                0x03
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_NET_TYPE_RESPONSE_MSG           0x04
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_MULTI_ADDR_SET_MSG              0x05
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_MULTI_ADDR_RESPONSE_MSG         0x06
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BNEP header extension types
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_EXTENSION_FILTER_CONTROL   0x00
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BNEP Setup Connection response codes
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_SETUP_CONN_OK              0x0000
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_SETUP_INVALID_DEST_UUID    0x0001
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_SETUP_INVALID_SRC_UUID     0x0002
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_SETUP_INVALID_UUID_SIZE    0x0003
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_SETUP_CONN_NOT_ALLOWED     0x0004
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BNEP filter control response codes
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_CRL_OK              0x0000
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_CRL_UNSUPPORTED     0x0001
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_CRL_BAD_RANGE       0x0002
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_CRL_MAX_REACHED     0x0003
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_CRL_SECURITY_ERR    0x0004
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 802.1p protocol packet will have actual protocol field in side the payload */
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_802_1_P_PROTOCOL           0x8100
805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Timeout definitions.
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_CONN_TIMEOUT           20               /* Connection related timeout */
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_HOST_TIMEOUT           200              /* host responce timeout */
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FILTER_SET_TIMEOUT     10
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the Out-Flow default values. */
885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_OFLOW_QOS_FLAG                 0
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_OFLOW_SERV_TYPE                0
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_OFLOW_TOKEN_RATE               0
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_OFLOW_TOKEN_BUCKET_SIZE        0
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_OFLOW_PEAK_BANDWIDTH           0
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_OFLOW_LATENCY                  0
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_OFLOW_DELAY_VARIATION          0
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the In-Flow default values. */
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_IFLOW_QOS_FLAG                 0
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_IFLOW_SERV_TYPE                0
995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_IFLOW_TOKEN_RATE               0
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_IFLOW_TOKEN_BUCKET_SIZE        0
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_IFLOW_PEAK_BANDWIDTH           0
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_IFLOW_LATENCY                  0
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define  BNEP_IFLOW_DELAY_VARIATION          0
1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FLUSH_TO                       0xFFFF
1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_MAX_RETRANSMITS                 3
1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the BNEP Connection Control Block
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_STATE_IDLE              0
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_STATE_CONN_START        1
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_STATE_CFG_SETUP         2
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_STATE_CONN_SETUP        3
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_STATE_SEC_CHECKING      4
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_STATE_SETUP_RCVD        5
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_STATE_CONNECTED         6
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8             con_state;
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FLAGS_IS_ORIG           0x01
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FLAGS_HIS_CFG_DONE      0x02
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FLAGS_MY_CFG_DONE       0x04
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FLAGS_L2CAP_CONGESTED   0x08
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FLAGS_FILTER_RESP_PEND  0x10
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FLAGS_MULTI_RESP_PEND   0x20
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FLAGS_SETUP_RCVD        0x40
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BNEP_FLAGS_CONN_COMPLETED    0x80
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8             con_flags;
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BT_HDR            *p_pending_data;
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            l2cap_cid;
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR           rem_bda;
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            rem_mtu_size;
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    TIMER_LIST_ENT    conn_tle;
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BUFFER_Q          xmit_q;
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            sent_num_filters;
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            sent_prot_filter_start[BNEP_MAX_PROT_FILTERS];
1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            sent_prot_filter_end[BNEP_MAX_PROT_FILTERS];
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            sent_mcast_filters;
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR           sent_mcast_filter_start[BNEP_MAX_MULTI_FILTERS];
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR           sent_mcast_filter_end[BNEP_MAX_MULTI_FILTERS];
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            rcvd_num_filters;
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            rcvd_prot_filter_start[BNEP_MAX_PROT_FILTERS];
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            rcvd_prot_filter_end[BNEP_MAX_PROT_FILTERS];
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            rcvd_mcast_filters;
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR           rcvd_mcast_filter_start[BNEP_MAX_MULTI_FILTERS];
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR           rcvd_mcast_filter_end[BNEP_MAX_MULTI_FILTERS];
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            bad_pkts_rcvd;
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8             re_transmits;
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16            handle;
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBT_UUID          prv_src_uuid;
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBT_UUID          prv_dst_uuid;
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBT_UUID          src_uuid;
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBT_UUID          dst_uuid;
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBNEP_CONN;
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*  The main BNEP control block
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tL2CAP_CFG_INFO         l2cap_my_cfg;                   /* My L2CAP config     */
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBNEP_CONN              bcb[BNEP_MAX_CONNECTIONS];
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBNEP_CONNECT_IND_CB    *p_conn_ind_cb;
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBNEP_CONN_STATE_CB     *p_conn_state_cb;
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBNEP_DATA_IND_CB       *p_data_ind_cb;
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBNEP_DATA_BUF_CB       *p_data_buf_cb;
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBNEP_FILTER_IND_CB     *p_filter_ind_cb;
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBNEP_MFILTER_IND_CB    *p_mfilter_ind_cb;
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tBNEP_TX_DATA_FLOW_CB   *p_tx_data_flow_cb;
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    tL2CAP_APPL_INFO        reg_info;
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    TIMER_LIST_ENT          bnep_tle;
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 profile_registered;             /* TRUE when we got our BD addr */
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8                   trace_level;
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BOOLEAN                 got_my_bd_addr;         /* TRUE when we got our BD addr */
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    BD_ADDR                 my_bda;                 /* BD Address of this device    */
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBNEP_CB;
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C" {
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Global BNEP data
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BNEP_DYNAMIC_MEMORY == FALSE
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBNEP_API extern tBNEP_CB  bnep_cb;
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBNEP_API extern tBNEP_CB  *bnep_cb_ptr;
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define bnep_cb (*bnep_cb_ptr)
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Functions provided by bnep_main.c
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBNEP_RESULT bnep_register_with_l2cap (void);
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnep_disconnect (tBNEP_CONN *p_bcb, UINT16 reason);
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBNEP_CONN *bnep_conn_originate (UINT8 *p_bd_addr);
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnep_process_timeout (TIMER_LIST_ENT *p_tle);
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnep_connected (tBNEP_CONN *p_bcb);
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Functions provided by bnep_utils.c
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBNEP_CONN *bnepu_find_bcb_by_cid (UINT16 cid);
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBNEP_CONN *bnepu_find_bcb_by_bd_addr (UINT8 *p_bda);
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBNEP_CONN *bnepu_allocate_bcb (BD_ADDR p_rem_bda);
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnepu_release_bcb (tBNEP_CONN *p_bcb);
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnepu_send_peer_our_filters (tBNEP_CONN *p_bcb);
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnepu_send_peer_our_multi_filters (tBNEP_CONN *p_bcb);
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern BOOLEAN     bnepu_does_dest_support_prot (tBNEP_CONN *p_bcb, UINT16 protocol);
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnepu_build_bnep_hdr (tBNEP_CONN *p_bcb, BT_HDR *p_buf, UINT16 protocol,
2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         UINT8 *p_src_addr, UINT8 *p_dest_addr, BOOLEAN ext_bit);
2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        test_bnepu_build_bnep_hdr (tBNEP_CONN *p_bcb, BT_HDR *p_buf, UINT16 protocol,
2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                         UINT8 *p_src_addr, UINT8 *p_dest_addr, UINT8 type);
2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBNEP_CONN *bnepu_get_route_to_dest (UINT8 *p_bda);
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnepu_check_send_packet (tBNEP_CONN *p_bcb, BT_HDR *p_buf);
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnep_send_command_not_understood (tBNEP_CONN *p_bcb, UINT8 cmd_code);
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnepu_process_peer_filter_set (tBNEP_CONN *p_bcb, UINT8 *p_filters, UINT16 len);
2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnepu_process_peer_filter_rsp (tBNEP_CONN *p_bcb, UINT8 *p_data);
2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnepu_process_multicast_filter_rsp (tBNEP_CONN *p_bcb, UINT8 *p_data);
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnep_send_conn_req (tBNEP_CONN *p_bcb);
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnep_send_conn_responce (tBNEP_CONN *p_bcb, UINT16 resp_code);
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnep_process_setup_conn_req (tBNEP_CONN *p_bcb, UINT8 *p_setup, UINT8 len);
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnep_process_setup_conn_responce (tBNEP_CONN *p_bcb, UINT8 *p_setup);
2377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Battaextern UINT8       *bnep_process_control_packet (tBNEP_CONN *p_bcb, UINT8 *p, UINT16 *len,
2387fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta                                                        BOOLEAN is_ext);
2397fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Battaextern void        bnep_sec_check_complete (BD_ADDR bd_addr, tBT_TRANSPORT trasnport,
2407fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta                                                    void *p_ref_data, UINT8 result);
2417fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Battaextern tBNEP_RESULT bnep_is_packet_allowed (tBNEP_CONN *p_bcb, BD_ADDR p_dest_addr, UINT16 protocol,
2427fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta                                                    BOOLEAN fw_ext_present, UINT8 *p_data);
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern UINT32      bnep_get_uuid32 (tBT_UUID *src_uuid);
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void        bnep_dump_status (void);
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
255