1
2
3/******************************************************************************
4 *
5 *  Copyright (C) 2014 The Android Open Source Project
6 *  Copyright (C) 2003-2012 Broadcom Corporation
7 *
8 *  Licensed under the Apache License, Version 2.0 (the "License");
9 *  you may not use this file except in compliance with the License.
10 *  You may obtain a copy of the License at:
11 *
12 *  http://www.apache.org/licenses/LICENSE-2.0
13 *
14 *  Unless required by applicable law or agreed to in writing, software
15 *  distributed under the License is distributed on an "AS IS" BASIS,
16 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 *  See the License for the specific language governing permissions and
18 *  limitations under the License.
19 *
20 ******************************************************************************/
21
22/******************************************************************************
23 *
24 *  This is the private interface file for the BTA SDP I/F
25 *
26 ******************************************************************************/
27#ifndef BTA_SDP_INT_H
28#define BTA_SDP_INT_H
29
30#include "bta_sys.h"
31#include "bta_api.h"
32#include "bta_sdp_api.h"
33
34/*****************************************************************************
35**  Constants
36*****************************************************************************/
37
38enum
39{
40    /* these events are handled by the state machine */
41    BTA_SDP_API_ENABLE_EVT = BTA_SYS_EVT_START(BTA_ID_SDP),
42    BTA_SDP_API_SEARCH_EVT,
43    BTA_SDP_API_CREATE_RECORD_USER_EVT,
44    BTA_SDP_API_REMOVE_RECORD_USER_EVT,
45    BTA_SDP_MAX_INT_EVT
46};
47
48enum
49{
50    BTA_SDP_ACTIVE_NONE = 0,
51    BTA_SDP_ACTIVE_YES       /* waiting for SDP result */
52};
53
54
55
56/* data type for BTA_SDP_API_ENABLE_EVT */
57typedef struct
58{
59    BT_HDR             hdr;
60    tBTA_SDP_DM_CBACK  *p_cback;
61} tBTA_SDP_API_ENABLE;
62
63/* data type for BTA_SDP_API_SEARCH_EVT */
64typedef struct
65{
66    BT_HDR          hdr;
67    BD_ADDR         bd_addr;
68    tSDP_UUID       uuid;
69} tBTA_SDP_API_SEARCH;
70
71/* data type for BTA_SDP_API_SEARCH_EVT */
72typedef struct
73{
74    BT_HDR          hdr;
75    void*           user_data;
76} tBTA_SDP_API_RECORD_USER;
77
78/* union of all data types */
79typedef union
80{
81    /* GKI event buffer header */
82    BT_HDR                                 hdr;
83    tBTA_SDP_API_ENABLE                    enable;
84    tBTA_SDP_API_SEARCH                    get_search;
85    tBTA_SDP_API_RECORD_USER               record;
86} tBTA_SDP_MSG;
87
88/* SDP control block */
89typedef struct
90{
91    UINT8              sdp_active;  /* see BTA_SDP_SDP_ACT_* */
92    BD_ADDR            remote_addr;
93    tBTA_SDP_DM_CBACK  *p_dm_cback;
94} tBTA_SDP_CB;
95
96
97/* SDP control block */
98#if BTA_DYNAMIC_MEMORY == FALSE
99extern tBTA_SDP_CB bta_sdp_cb;
100#else
101extern tBTA_SDP_CB *bta_sdp_cb_ptr;
102#define bta_sdp_cb (*bta_sdp_cb_ptr)
103#endif
104
105/* config struct */
106extern tBTA_SDP_CFG *p_bta_sdp_cfg;
107
108extern BOOLEAN bta_sdp_sm_execute(BT_HDR *p_msg);
109
110extern void bta_sdp_enable (tBTA_SDP_MSG *p_data);
111extern void bta_sdp_search (tBTA_SDP_MSG *p_data);
112extern void bta_sdp_create_record(tBTA_SDP_MSG *p_data);
113extern void bta_sdp_remove_record(tBTA_SDP_MSG *p_data);
114
115#endif /* BTA_SDP_INT_H */
116