16ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach/******************************************************************************
26ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *
36ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  Copyright (C) 2006-2012 Broadcom Corporation
46ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *
56ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  Licensed under the Apache License, Version 2.0 (the "License");
66ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  you may not use this file except in compliance with the License.
76ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  You may obtain a copy of the License at:
86ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *
96ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  http://www.apache.org/licenses/LICENSE-2.0
106ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *
116ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  Unless required by applicable law or agreed to in writing, software
126ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  distributed under the License is distributed on an "AS IS" BASIS,
136ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
146ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  See the License for the specific language governing permissions and
156ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  limitations under the License.
166ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *
176ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach ******************************************************************************/
186ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach
196ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach/******************************************************************************
206ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *
216ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *  This is the private interface file for the BTA Java I/F
226ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach *
236ef101187774e30ddba6b46bbedef549a42196adAndre Eisenbach ******************************************************************************/
2466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#ifndef BTA_JV_INT_H
2566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define BTA_JV_INT_H
2666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
2766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#include "bta_sys.h"
2866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#include "bta_api.h"
2966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#include "bta_jv_api.h"
3066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#include "rfcdefs.h"
3166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
3266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/*****************************************************************************
3366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani**  Constants
3466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani*****************************************************************************/
3566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
3666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanienum
3766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
3866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    /* these events are handled by the state machine */
3966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_ENABLE_EVT = BTA_SYS_EVT_START(BTA_ID_JV),
4066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_DISABLE_EVT,
4166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_SET_DISCOVERABILITY_EVT,
4266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_GET_LOCAL_DEVICE_ADDR_EVT,
4366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_GET_LOCAL_DEVICE_NAME_EVT,
4466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_GET_REMOTE_DEVICE_NAME_EVT,
4566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_SET_SERVICE_CLASS_EVT,
4666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_SET_ENCRYPTION_EVT,
4766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_GET_SCN_EVT,
4866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_FREE_SCN_EVT,
4966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_START_DISCOVERY_EVT,
5066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_CANCEL_DISCOVERY_EVT,
5166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_GET_SERVICES_LENGTH_EVT,
5266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_SERVICE_SELECT_EVT,
5366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_CREATE_RECORD_EVT,
5466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_UPDATE_RECORD_EVT,
5566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_ADD_ATTRIBUTE_EVT,
5666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_DELETE_ATTRIBUTE_EVT,
5766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_DELETE_RECORD_EVT,
5866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_L2CAP_CONNECT_EVT,
5966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_L2CAP_CLOSE_EVT,
6066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_L2CAP_START_SERVER_EVT,
6166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_L2CAP_STOP_SERVER_EVT,
6266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_L2CAP_READ_EVT,
6366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_L2CAP_WRITE_EVT,
6466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_RFCOMM_CONNECT_EVT,
6566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_RFCOMM_CLOSE_EVT,
6666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_RFCOMM_START_SERVER_EVT,
6766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_RFCOMM_STOP_SERVER_EVT,
6866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_RFCOMM_READ_EVT,
6966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_API_RFCOMM_WRITE_EVT,
7066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_MAX_INT_EVT
7166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani};
7266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
7366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_ENABLE_EVT */
7466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
7566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
7666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR          hdr;
7766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_DM_CBACK   *p_cback;
7866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_ENABLE;
7966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
8066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_SET_DISCOVERABILITY_EVT */
8166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
8266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
8366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR              hdr;
8466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_DISC    disc_mode;
8566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_SET_DISCOVERABILITY;
8666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
8766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
8866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_SET_SERVICE_CLASS_EVT */
8966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
9066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
9166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
9266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32      service;
9366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_SET_SERVICE_CLASS;
9466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
9566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_SET_ENCRYPTION_EVT */
9666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
9766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
9866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
9966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BD_ADDR     bd_addr;
10066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_SET_ENCRYPTION;
10166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
10266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_GET_REMOTE_DEVICE_NAME_EVT */
10366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
10466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
10566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
10666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BD_ADDR     bd_addr;
10766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_GET_REMOTE_NAME;
10866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
10966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_START_DISCOVERY_EVT */
11066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
11166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
11266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
11366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BD_ADDR bd_addr;
11466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16 num_uuid;
11566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tSDP_UUID uuid_list[BTA_JV_MAX_UUIDS];
11666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16 num_attr;
11766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16 attr_list[BTA_JV_MAX_ATTRS];
11866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    void            *user_data;      /* piggyback caller's private data*/
11966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_START_DISCOVERY;
12066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
12166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_CANCEL_DISCOVERY_EVT */
12266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
12366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
12466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
12566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    void            *user_data;      /* piggyback caller's private data*/
12666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_CANCEL_DISCOVERY;
12766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
12866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
12966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_GET_SERVICES_LENGTH_EVT */
13066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
13166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
13266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
13366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16      *p_services_len;
13466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BOOLEAN     inc_hdr;
13566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_GET_SERVICES_LENGTH;
13666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
13766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_GET_SERVICE_RESULT_EVT */
13866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
13966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
14066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
14166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8        **TLVs;
14266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_GET_SERVICE_RESULT;
14366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
14466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_SERVICE_SELECT_EVT */
14566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
14666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
14766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
14866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16        uuid;
14966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_SERVICE_SELECT;
15066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
15166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanienum
15266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
15366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_ST_NONE = 0,
15466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_ST_CL_OPENING,
15566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_ST_CL_OPEN,
15666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_ST_CL_CLOSING,
15766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_ST_SR_LISTEN,
15866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_ST_SR_OPEN,
15966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_ST_SR_CLOSING
16066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} ;
16166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef UINT8  tBTA_JV_STATE;
16266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define BTA_JV_ST_CL_MAX    BTA_JV_ST_CL_CLOSING
16366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
16466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* JV L2CAP control block */
16566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
16666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
16766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_L2CAP_CBACK *p_cback;   /* the callback function */
16866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              psm;        /* the psm used for this server connection */
16966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_STATE       state;      /* the state of this control block */
17066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_SERVICE_ID     sec_id;     /* service id */
17166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              handle;     /* the handle reported to java app (same as gap handle) */
17266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BOOLEAN             cong;       /* TRUE, if congested */
17366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_L2C_CB;
17466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
17566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define BTA_JV_RFC_HDL_MASK         0xFF
17666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define BTA_JV_RFC_HDL_TO_SIDX(r)   (((r)&0xFF00) >> 8)
17766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define BTA_JV_RFC_H_S_TO_HDL(h, s) ((h)|(s<<8))
17866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
17966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* port control block */
18066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
18166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
18266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32              handle;     /* the rfcomm session handle at jv */
18366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              port_handle; /* port handle */
18466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_STATE       state;      /* the state of this control block */
18566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8               max_sess;   /* max sessions */
18666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    void                *user_data; /* piggyback caller's private data*/
18766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BOOLEAN             cong;       /* TRUE, if congested */
18866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_PCB;
18966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
19066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* JV RFCOMM control block */
19166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
19266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
19366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_RFCOMM_CBACK *p_cback;  /* the callback function */
19466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              rfc_hdl[BTA_JV_MAX_RFC_SR_SESSION];
19566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_SERVICE_ID     sec_id;     /* service id */
19666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8               handle;     /* index: the handle reported to java app */
19766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8               scn;        /* the scn of the server */
19866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8               max_sess;   /* max sessions */
19966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_RFC_CB;
20066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
20166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_L2CAP_CONNECT_EVT */
20266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
20366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
20466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR          hdr;
20566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_SEC        sec_mask;
20666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_ROLE    role;
20766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16          remote_psm;
20866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16          rx_mtu;
20966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BD_ADDR         peer_bd_addr;
21066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_L2CAP_CBACK *p_cback;
21166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_L2CAP_CONNECT;
21266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
21366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_L2CAP_SERVER_EVT */
21466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
21566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
21666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR              hdr;
21766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_SEC            sec_mask;
21866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_ROLE        role;
21966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              local_psm;
22066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              rx_mtu;
22166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_L2CAP_CBACK *p_cback;
22266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_L2CAP_SERVER;
22366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
22466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_L2CAP_CLOSE_EVT */
22566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
22666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
22766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR          hdr;
22866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16          handle;
22966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_L2C_CB  *p_cb;
23066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_L2CAP_CLOSE;
23166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
23266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_L2CAP_READ_EVT */
23366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
23466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
23566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR              hdr;
23666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              handle;
23766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32              req_id;
23866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_L2CAP_CBACK *p_cback;
23966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8*              p_data;
24066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              len;
24166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_L2CAP_READ;
24266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
24366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_L2CAP_WRITE_EVT */
24466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
24566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
24666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR              hdr;
24766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              handle;
24866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32              req_id;
24966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_L2C_CB      *p_cb;
25066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8               *p_data;
25166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16              len;
25266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_L2CAP_WRITE;
25366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
25466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_RFCOMM_CONNECT_EVT */
25566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
25666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
25766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR          hdr;
25866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_SEC        sec_mask;
25966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_ROLE    role;
26066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8           remote_scn;
26166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BD_ADDR         peer_bd_addr;
26266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_RFCOMM_CBACK *p_cback;
26366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    void            *user_data;
26466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_RFCOMM_CONNECT;
26566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
26666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_RFCOMM_SERVER_EVT */
26766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
26866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
26966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR          hdr;
27066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_SEC        sec_mask;
27166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_ROLE    role;
27266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8           local_scn;
27366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8           max_session;
27466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    int             rfc_handle;
27566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_RFCOMM_CBACK *p_cback;
27666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    void            *user_data;
27766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_RFCOMM_SERVER;
27866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
27966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_RFCOMM_READ_EVT */
28066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
28166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
28266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR          hdr;
28366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16          handle;
28466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32          req_id;
28566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8           *p_data;
28666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16          len;
28766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_RFC_CB  *p_cb;
28866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_PCB     *p_pcb;
28966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_RFCOMM_READ;
29066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
29166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_RFCOMM_WRITE_EVT */
29266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
29366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
29466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR          hdr;
29566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16          handle;
29666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32          req_id;
29766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8           *p_data;
29866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    int          len;
29966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_RFC_CB  *p_cb;
30066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_PCB     *p_pcb;
30166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_RFCOMM_WRITE;
30266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
30366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_RFCOMM_CLOSE_EVT */
30466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
30566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
30666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR          hdr;
30766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16          handle;
30866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_RFC_CB  *p_cb;
30966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_PCB     *p_pcb;
31066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_RFCOMM_CLOSE;
31166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
31266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_CREATE_RECORD_EVT */
31366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
31466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
31566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
31666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    void        *user_data;
31766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_CREATE_RECORD;
31866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
31966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_UPDATE_RECORD_EVT */
32066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
32166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
32266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
32366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32      handle;
32466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16      *p_ids;
32566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8       **p_values;
32666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    INT32       *p_value_sizes;
32766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    INT32       array_len;
32866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_UPDATE_RECORD;
32966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
33066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_ADD_ATTRIBUTE_EVT */
33166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
33266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
33366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
33466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32      handle;
33566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT16      attr_id;
33666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8       *p_value;
33766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    INT32       value_size;
33866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_ADD_ATTRIBUTE;
33966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
34066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* data type for BTA_JV_API_FREE_SCN_EVT */
34166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
34266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
34366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR      hdr;
34466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8       scn;
34566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_API_FREE_SCN;
34666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* union of all data types */
34766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef union
34866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
34966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    /* GKI event buffer header */
35066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BT_HDR                          hdr;
35166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_ENABLE              enable;
35266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_SET_DISCOVERABILITY set_discoverability;
35366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_GET_REMOTE_NAME     get_rmt_name;
35466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_SET_SERVICE_CLASS   set_service;
35566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_SET_ENCRYPTION      set_encrypt;
35666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_START_DISCOVERY     start_discovery;
35766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_CANCEL_DISCOVERY    cancel_discovery;
35866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_GET_SERVICES_LENGTH get_services_length;
35966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_GET_SERVICE_RESULT  get_service_result;
36066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_SERVICE_SELECT      service_select;
36166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_FREE_SCN            free_scn;
36266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_CREATE_RECORD       create_record;
36366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_UPDATE_RECORD       update_record;
36466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_ADD_ATTRIBUTE       add_attr;
36566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_L2CAP_CONNECT       l2cap_connect;
36666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_L2CAP_READ          l2cap_read;
36766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_L2CAP_WRITE         l2cap_write;
36866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_L2CAP_CLOSE         l2cap_close;
36966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_L2CAP_SERVER        l2cap_server;
37066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_RFCOMM_CONNECT      rfcomm_connect;
37166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_RFCOMM_READ         rfcomm_read;
37266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_RFCOMM_WRITE        rfcomm_write;
37366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_RFCOMM_CLOSE        rfcomm_close;
37466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_API_RFCOMM_SERVER       rfcomm_server;
37566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_MSG;
37666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
37766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#if SDP_FOR_JV_INCLUDED == TRUE
37866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define BTA_JV_L2C_FOR_SDP_HDL     GAP_MAX_CONNECTIONS
37966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#endif
38066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
38166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* JV control block */
38266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanitypedef struct
38366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
38466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#if SDP_FOR_JV_INCLUDED == TRUE
38566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32                  sdp_for_jv;     /* The SDP client connection handle */
38666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32                  sdp_data_size;  /* the data len */
38766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#endif
38866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    /* the SDP handle reported to JV user is the (index + 1) to sdp_handle[].
38966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani     * if sdp_handle[i]==0, it's not used.
39066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani     * otherwise sdp_handle[i] is the stack SDP handle. */
39166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT32                  sdp_handle[BTA_JV_MAX_SDP_REC]; /* SDP records created */
39266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8                   *p_sel_raw_data;/* the raw data of last service select */
39366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    INT32                   sel_len;        /* the SDP record size of last service select */
39466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_DM_CBACK        *p_dm_cback;
39566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_L2C_CB          l2c_cb[BTA_JV_MAX_L2C_CONN];    /* index is GAP handle (index) */
39666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_RFC_CB          rfc_cb[BTA_JV_MAX_RFC_CONN];
39766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tBTA_JV_PCB             port_cb[MAX_RFC_PORTS];         /* index of this array is the port_handle, */
39866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8                   sec_id[BTA_JV_NUM_SERVICE_ID];  /* service ID */
39966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BOOLEAN                 scn[BTA_JV_MAX_SCN];            /* SCN allocated by java */
40066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    UINT8                   sdp_active;                     /* see BTA_JV_SDP_ACT_* */
40166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    tSDP_UUID               uuid;                           /* current uuid of sdp discovery*/
40266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    void                    *user_data;                     /* piggyback user data*/
40366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani} tBTA_JV_CB;
40466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
40566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryanienum
40666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani{
40766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_SDP_ACT_NONE = 0,
40866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_SDP_ACT_YES,     /* waiting for SDP result */
40966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani    BTA_JV_SDP_ACT_CANCEL   /* waiting for cancel complete */
41066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani};
41166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
41266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* JV control block */
41366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#if BTA_DYNAMIC_MEMORY == FALSE
41466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern tBTA_JV_CB bta_jv_cb;
41566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#else
41666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern tBTA_JV_CB *bta_jv_cb_ptr;
41766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#define bta_jv_cb (*bta_jv_cb_ptr)
41866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#endif
41966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
42066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* config struct */
42166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern tBTA_JV_CFG *p_bta_jv_cfg;
42266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
42366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani/* this is defined in stack/sdp. used by bta jv */
42466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern UINT8 *sdpu_get_len_from_type (UINT8 *p, UINT8 type, UINT32 *p_len);
42566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
42666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern BOOLEAN bta_jv_sm_execute(BT_HDR *p_msg);
42766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
42866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern UINT32 bta_jv_get_sdp_handle(UINT32 sdp_id);
42966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_enable (tBTA_JV_MSG *p_data);
43066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_disable (tBTA_JV_MSG *p_data);
43166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_set_discoverability (tBTA_JV_MSG *p_data);
43266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_get_local_device_addr (tBTA_JV_MSG *p_data);
43366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_get_local_device_name (tBTA_JV_MSG *p_data);
43466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_get_remote_device_name (tBTA_JV_MSG *p_data);
43566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_set_service_class (tBTA_JV_MSG *p_data);
43666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_set_encryption (tBTA_JV_MSG *p_data);
43766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_get_scn (tBTA_JV_MSG *p_data);
43866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_free_scn (tBTA_JV_MSG *p_data);
43966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_start_discovery (tBTA_JV_MSG *p_data);
44066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_cancel_discovery (tBTA_JV_MSG *p_data);
44166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_get_services_length (tBTA_JV_MSG *p_data);
44266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_service_select (tBTA_JV_MSG *p_data);
44366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_create_record (tBTA_JV_MSG *p_data);
44466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_update_record (tBTA_JV_MSG *p_data);
44566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_add_attribute (tBTA_JV_MSG *p_data);
44666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_delete_attribute (tBTA_JV_MSG *p_data);
44766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_delete_record (tBTA_JV_MSG *p_data);
44866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_l2cap_connect (tBTA_JV_MSG *p_data);
44966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_l2cap_close (tBTA_JV_MSG *p_data);
45066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_l2cap_start_server (tBTA_JV_MSG *p_data);
45166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_l2cap_stop_server (tBTA_JV_MSG *p_data);
45266aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_l2cap_read (tBTA_JV_MSG *p_data);
45366aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_l2cap_write (tBTA_JV_MSG *p_data);
45466aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_rfcomm_connect (tBTA_JV_MSG *p_data);
45566aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_rfcomm_close (tBTA_JV_MSG *p_data);
45666aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_rfcomm_start_server (tBTA_JV_MSG *p_data);
45766aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_rfcomm_stop_server (tBTA_JV_MSG *p_data);
45866aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_rfcomm_read (tBTA_JV_MSG *p_data);
45966aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryaniextern void bta_jv_rfcomm_write (tBTA_JV_MSG *p_data);
46066aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani
46166aa5171e4e7c9f942971a30419c03134e67a4a4Harish Paryani#endif /* BTA_JV_INT_H */
462