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