521 lines
21 KiB
C
521 lines
21 KiB
C
/***************************************************************************
|
|
*
|
|
* Copyright 2015-2019 BES.
|
|
* All rights reserved. All unpublished rights reserved.
|
|
*
|
|
* No part of this work may be used or reproduced in any form or by any
|
|
* means, or stored in a database or retrieval system, without prior written
|
|
* permission of BES.
|
|
*
|
|
* Use of this work is governed by a license granted by BES.
|
|
* This work contains confidential and proprietary information of
|
|
* BES. which is protected by copyright, trade secret,
|
|
* trademark and other intellectual property rights.
|
|
*
|
|
****************************************************************************/
|
|
|
|
#ifndef __SDP_API_H__
|
|
#define __SDP_API_H__
|
|
|
|
#include "me_api.h"
|
|
|
|
#define BTIF_SDP_RECORD_NUM_MAX (10)
|
|
#define BTIF_SDP_QUERY_TOKEN_NUM_MAX (4)
|
|
|
|
typedef void btif_sdp_record_t;
|
|
|
|
typedef uint8_t sdp_query_type;
|
|
#define BTIF_BSQT_ATTRIB_REQ 0x04
|
|
#define BTIF_BSQT_SERVICE_SEARCH_ATTRIB_REQ 0x06
|
|
typedef uint8_t sdp_query_resp;
|
|
#define BTIF_BSQR_ERROR_RESP 0x01
|
|
#define BTIF_BSQR_SERVICE_SEARCH_RESP 0x03
|
|
#define BTIF_BSQR_ATTRIB_RESP 0x05
|
|
#define BTIF_BSQR_SERVICE_SEARCH_ATTRIB_RESP 0x07
|
|
|
|
#if SDP_SERVER_SUPPORT == XA_ENABLED
|
|
#define BTIF_SDP_SERVER_ATTRIBS 3
|
|
#define BTIF_SDP_SERVER_TX_SIZE (SDP_SERVER_SEND_SIZE - 5)
|
|
#define BTIF_SDP_SERV_OWN_HANDLE 0x00000000
|
|
#define BTIF_SDP_SERV_FIRST_HANDLE 0x00010000
|
|
#define BTIF_SDP_SERV_BOGUS_HANDLE 0xffffffff
|
|
#define BTIF_SDP_ZERO_SERVICE_DATABASE_STATE_SIZE 5
|
|
#endif /* SDP_SERVER_SUPPORT == XA_ENABLED */
|
|
|
|
typedef uint16_t sdp_service_class_uuid;
|
|
#define BTIF_SC_SERVICE_DISCOVERY_SERVER 0x1000
|
|
#define BTIF_SC_BROWSE_GROUP_DESC 0x1001
|
|
#define BTIF_SC_PUBLIC_BROWSE_GROUP 0x1002
|
|
#define BTIF_SC_SERIAL_PORT 0x1101
|
|
#define BTIF_SC_LAN_ACCESS_PPP 0x1102
|
|
#define BTIF_SC_DIALUP_NETWORKING 0x1103
|
|
#define BTIF_SC_IRMC_SYNC 0x1104
|
|
#define BTIF_SC_OBEX_OBJECT_PUSH 0x1105
|
|
#define BTIF_SC_OBEX_FILE_TRANSFER 0x1106
|
|
#define BTIF_SC_IRMC_SYNC_COMMAND 0x1107
|
|
#define BTIF_SC_HEADSET 0x1108
|
|
#define BTIF_SC_CORDLESS_TELEPHONY 0x1109
|
|
#define BTIF_SC_AUDIO_SOURCE 0x110A
|
|
#define BTIF_SC_AUDIO_SINK 0x110B
|
|
#define BTIF_SC_AV_REMOTE_CONTROL_TARGET 0x110C
|
|
#define BTIF_SC_AUDIO_DISTRIBUTION 0x110D
|
|
#define BTIF_SC_AV_REMOTE_CONTROL 0x110E
|
|
#define BTIF_SC_VIDEO_CONFERENCING 0x110F
|
|
#define BTIF_SC_INTERCOM 0x1110
|
|
#define BTIF_SC_FAX 0x1111
|
|
#define BTIF_SC_HEADSET_AUDIO_GATEWAY 0x1112
|
|
#define BTIF_SC_WAP 0x1113
|
|
#define BTIF_SC_WAP_CLIENT 0x1114
|
|
#define BTIF_SC_PANU 0x1115
|
|
#define BTIF_SC_NAP 0x1116
|
|
#define BTIF_SC_GN 0x1117
|
|
#define BTIF_SC_DIRECT_PRINTING 0x1118
|
|
#define BTIF_SC_REFERENCE_PRINTING 0x1119
|
|
#define BTIF_SC_IMAGING 0x111A
|
|
#define BTIF_SC_IMAGING_RESPONDER 0x111B
|
|
#define BTIF_SC_IMAGING_AUTOMATIC_ARCHIVE 0x111C
|
|
#define BTIF_SC_IMAGING_REFERENCED_OBJECTS 0x111D
|
|
#define BTIF_SC_HANDSFREE 0x111E
|
|
#define BTIF_SC_HANDSFREE_AUDIO_GATEWAY 0x111F
|
|
#define BTIF_SC_DIRECT_PRINTING_REF_OBJECTS 0x1120
|
|
#define BTIF_SC_REFLECTED_UI 0x1121
|
|
#define BTIF_SC_BASIC_PRINTING 0x1122
|
|
#define BTIF_SC_PRINTING_STATUS 0x1123
|
|
#define BTIF_SC_HUMAN_INTERFACE_DEVICE 0x1124
|
|
#define BTIF_SC_HCR 0x1125
|
|
#define BTIF_SC_HCR_PRINT 0x1126
|
|
#define BTIF_SC_HCR_SCAN 0x1127
|
|
#define BTIF_SC_ISDN 0x1128
|
|
#define BTIF_SC_VIDEO_CONFERENCING_GW 0x1129
|
|
#define BTIF_SC_UDI_MT 0x112A
|
|
#define BTIF_SC_UDI_TA 0x112B
|
|
#define BTIF_SC_AUDIO_VIDEO 0x112C
|
|
#define BTIF_SC_SIM_ACCESS 0x112D
|
|
#define BTIF_SC_PBAP_CLIENT 0x112E
|
|
#define BTIF_SC_PBAP_SERVER 0x112F
|
|
#define BTIF_SC_PBAP_PROFILE 0x1130
|
|
#define BTIF_SC_MAP_SERVER 0x1132
|
|
#define BTIF_SC_MAP_NOTIFY_SERVER 0x1133
|
|
#define BTIF_SC_MAP_PROFILE 0x1134
|
|
#define BTIF_SC_PNP_INFO 0x1200
|
|
#define BTIF_SC_GENERIC_NETWORKING 0x1201
|
|
#define BTIF_SC_GENERIC_FILE_TRANSFER 0x1202
|
|
#define BTIF_SC_GENERIC_AUDIO 0x1203
|
|
#define BTIF_SC_GENERIC_TELEPHONY 0x1204
|
|
#define BTIF_SC_UPNP_SERVICE 0x1205
|
|
#define BTIF_SC_UPNP_IP_SERVICE 0x1206
|
|
#define BTIF_SC_ESDP_UPNP_IP_PAN 0x1300
|
|
#define BTIF_SC_ESDP_UPNP_IP_LAP 0x1301
|
|
#define BTIF_SC_ESDP_UPNP_L2CAP 0x1302
|
|
#define BTIF_SC_VIDEO_SOURCE 0x1303
|
|
#define BTIF_SC_VIDEO_SINK 0x1304
|
|
#define BTIF_SC_VIDEO_DISTRIBUTION 0x1305
|
|
|
|
typedef uint8_t sdp_parsing_mode;
|
|
#define BTIF_BSPM_BEGINNING 0x00
|
|
#define BTIF_BSPM_RESUME 0x01
|
|
#define BTIF_BSPM_CONT_STATE 0x02
|
|
#define BTIF_BSPM_NO_SKIP 0x04
|
|
|
|
typedef uint8_t sdp_query_mode;
|
|
#define BTIF_BSQM_FIRST 0x00
|
|
#define BTIF_BSQM_CONTINUE 0x01
|
|
#define BTIF_BSQM_DONT_CARE 0xFF
|
|
|
|
typedef U8 SdpDataElemType;
|
|
#define DETD_NIL 0x00
|
|
#define DETD_UINT 0x08
|
|
#define DETD_SINT 0x10
|
|
#define DETD_UUID 0x18
|
|
#define DETD_TEXT 0x20
|
|
#define DETD_BOOL 0x28
|
|
#define DETD_SEQ 0x30
|
|
#define DETD_ALT 0x38
|
|
#define DETD_URL 0x40
|
|
#define DETD_MASK 0xf8
|
|
|
|
typedef uint8_t sdp_data_elem_size;
|
|
#define DESD_1BYTE 0x00
|
|
#define DESD_2BYTES 0x01
|
|
#define DESD_4BYTES 0x02
|
|
#define DESD_8BYTES 0x03
|
|
#define DESD_16BYTES 0x04
|
|
#define DESD_ADD_8BITS 0x05
|
|
#define DESD_ADD_16BITS 0x06
|
|
#define DESD_ADD_32BITS 0x07
|
|
#define DESD_MASK 0x07
|
|
|
|
#define SDP_ATTRIBUTE(attribId, attrib) \
|
|
{ attribId, \
|
|
sizeof(attrib), \
|
|
attrib, \
|
|
0x0000 }
|
|
|
|
#define SDP_ATTRIBUTE_ARM(attribId, attrib) \
|
|
{ attribId, \
|
|
sizeof(attrib), \
|
|
0, \
|
|
0x0000 }
|
|
|
|
#define SDP_ATTRIB_HEADER_8BIT(size) \
|
|
DETD_SEQ + DESD_ADD_8BITS, \
|
|
size
|
|
|
|
#define SDP_ATTRIB_HEADER_16BIT(size) \
|
|
DETD_SEQ + DESD_ADD_16BITS, \
|
|
(U8)(((size) & 0xff00) >> 8), \
|
|
(U8)((size) & 0x00ff)
|
|
|
|
#define SDP_ATTRIB_HEADER_32BIT(size) \
|
|
DETD_SEQ + DESD_ADD_32BITS, \
|
|
(U8)(((size) & 0xff000000) >> 24), \
|
|
(U8)(((size) & 0x00ff0000) >> 16), \
|
|
(U8)(((size) & 0x0000ff00) >> 8), \
|
|
(U8)((size) & 0x000000ff)
|
|
|
|
#define SDP_ATTRIB_HEADER_ALT_8BIT(size) \
|
|
DETD_ALT + DESD_ADD_8BITS, \
|
|
size
|
|
|
|
#define SDP_ATTRIB_HEADER_ALT_16BIT(size) \
|
|
DETD_ALT + DESD_ADD_16BITS, \
|
|
(U8)(((size) & 0xff00) >> 8), \
|
|
(U8)((size) & 0x00ff)
|
|
|
|
#define SDP_ATTRIB_HEADER_ALT_32BIT(size) \
|
|
DETD_ALT + DESD_ADD_32BITS, \
|
|
(U8)(((size) & 0xff000000) >> 24), \
|
|
(U8)(((size) & 0x00ff0000) >> 16), \
|
|
(U8)(((size) & 0x0000ff00) >> 8), \
|
|
(U8)((size) & 0x000000ff)
|
|
|
|
#define SDP_UUID_16BIT(uuid) \
|
|
DETD_UUID + DESD_2BYTES, \
|
|
(U8)(((uuid) & 0xff00) >> 8), \
|
|
(U8)((uuid) & 0x00ff)
|
|
|
|
#define SDP_UUID_32BIT(uuid) \
|
|
DETD_UUID + DESD_4BYTES, \
|
|
(U8)(((uuid) & 0xff000000) >> 24), \
|
|
(U8)(((uuid) & 0x00ff0000) >> 16), \
|
|
(U8)(((uuid) & 0x0000ff00) >> 8), \
|
|
(U8)((uuid) & 0x000000ff)
|
|
|
|
#define SDP_UUID_128BIT(uuid) \
|
|
DETD_UUID + DESD_16BYTES, \
|
|
(U8)(uuid[15]), \
|
|
(U8)(uuid[14]), \
|
|
(U8)(uuid[13]), \
|
|
(U8)(uuid[12]), \
|
|
(U8)(uuid[11]), \
|
|
(U8)(uuid[10]), \
|
|
(U8)(uuid[9]), \
|
|
(U8)(uuid[8]), \
|
|
(U8)(uuid[7]), \
|
|
(U8)(uuid[6]), \
|
|
(U8)(uuid[5]), \
|
|
(U8)(uuid[4]), \
|
|
(U8)(uuid[3]), \
|
|
(U8)(uuid[2]), \
|
|
(U8)(uuid[1]), \
|
|
(U8)(uuid[0])
|
|
|
|
#define SDP_UINT_8BIT(uint) \
|
|
DETD_UINT + DESD_1BYTE, \
|
|
(U8)(uint)
|
|
|
|
#define SDP_UINT_16BIT(uint) \
|
|
DETD_UINT + DESD_2BYTES, \
|
|
(U8)(((uint) & 0xff00) >> 8), \
|
|
(U8)((uint) & 0x00ff)
|
|
|
|
#define SDP_UINT_32BIT(uint) \
|
|
DETD_UINT + DESD_4BYTES, \
|
|
(U8)(((uint) & 0xff000000) >> 24), \
|
|
(U8)(((uint) & 0x00ff0000) >> 16), \
|
|
(U8)(((uint) & 0x0000ff00) >> 8), \
|
|
(U8)((uint) & 0x000000ff)
|
|
|
|
#define SDP_UINT_64BIT(uint) \
|
|
DETD_UINT + DESD_8BYTES, \
|
|
uint
|
|
|
|
#define SDP_UINT_128BIT(uint) \
|
|
DETD_UINT + DESD_16BYTES, \
|
|
uint
|
|
|
|
#define SDP_TEXT_8BIT(size) \
|
|
DETD_TEXT + DESD_ADD_8BITS,\
|
|
(U8)(size)
|
|
|
|
#define SDP_TEXT_16BIT(size) \
|
|
DETD_TEXT + DESD_ADD_16BITS,\
|
|
(U8)(((size) & 0xff00) >> 8),\
|
|
(U8)((size) & 0x00ff)
|
|
|
|
#define SDP_TEXT_32BIT(size) \
|
|
DETD_TEXT + DESD_ADD_32BITS, \
|
|
(U8)(((size) & 0xff000000) >> 24), \
|
|
(U8)(((size) & 0x00ff0000) >> 16), \
|
|
(U8)(((size) & 0x0000ff00) >> 8), \
|
|
(U8)((size) & 0x000000ff)
|
|
|
|
#define SDP_BOOL(value) \
|
|
DETD_BOOL + DESD_1BYTE, \
|
|
(U8)(value)
|
|
|
|
typedef uint16_t sdp_service_class_uuid;
|
|
#define SC_SERVICE_DISCOVERY_SERVER 0x1000
|
|
#define SC_BROWSE_GROUP_DESC 0x1001
|
|
#define SC_PUBLIC_BROWSE_GROUP 0x1002
|
|
#define SC_SERIAL_PORT 0x1101
|
|
#define SC_LAN_ACCESS_PPP 0x1102
|
|
#define SC_DIALUP_NETWORKING 0x1103
|
|
#define SC_IRMC_SYNC 0x1104
|
|
#define SC_OBEX_OBJECT_PUSH 0x1105
|
|
#define SC_OBEX_FILE_TRANSFER 0x1106
|
|
#define SC_IRMC_SYNC_COMMAND 0x1107
|
|
#define SC_HEADSET 0x1108
|
|
#define SC_CORDLESS_TELEPHONY 0x1109
|
|
#define SC_AUDIO_SOURCE 0x110A
|
|
#define SC_AUDIO_SINK 0x110B
|
|
#define SC_AV_REMOTE_CONTROL_TARGET 0x110C
|
|
#define SC_AUDIO_DISTRIBUTION 0x110D
|
|
#define SC_AV_REMOTE_CONTROL 0x110E
|
|
#define SC_VIDEO_CONFERENCING 0x110F
|
|
#define SC_INTERCOM 0x1110
|
|
#define SC_FAX 0x1111
|
|
#define SC_HEADSET_AUDIO_GATEWAY 0x1112
|
|
#define SC_WAP 0x1113
|
|
#define SC_WAP_CLIENT 0x1114
|
|
#define SC_PANU 0x1115
|
|
#define SC_NAP 0x1116
|
|
#define SC_GN 0x1117
|
|
#define SC_DIRECT_PRINTING 0x1118
|
|
#define SC_REFERENCE_PRINTING 0x1119
|
|
#define SC_IMAGING 0x111A
|
|
#define SC_IMAGING_RESPONDER 0x111B
|
|
#define SC_IMAGING_AUTOMATIC_ARCHIVE 0x111C
|
|
#define SC_IMAGING_REFERENCED_OBJECTS 0x111D
|
|
#define SC_HANDSFREE 0x111E
|
|
#define SC_HANDSFREE_AUDIO_GATEWAY 0x111F
|
|
#define SC_DIRECT_PRINTING_REF_OBJECTS 0x1120
|
|
#define SC_REFLECTED_UI 0x1121
|
|
#define SC_BASIC_PRINTING 0x1122
|
|
#define SC_PRINTING_STATUS 0x1123
|
|
#define SC_HUMAN_INTERFACE_DEVICE 0x1124
|
|
#define SC_HCR 0x1125
|
|
#define SC_HCR_PRINT 0x1126
|
|
#define SC_HCR_SCAN 0x1127
|
|
#define SC_ISDN 0x1128
|
|
#define SC_VIDEO_CONFERENCING_GW 0x1129
|
|
#define SC_UDI_MT 0x112A
|
|
#define SC_UDI_TA 0x112B
|
|
#define SC_AUDIO_VIDEO 0x112C
|
|
#define SC_SIM_ACCESS 0x112D
|
|
#define SC_PBAP_CLIENT 0x112E
|
|
#define SC_PBAP_SERVER 0x112F
|
|
#define SC_PBAP_PROFILE 0x1130
|
|
#define SC_MAP_SERVER 0x1132
|
|
#define SC_MAP_NOTIFY_SERVER 0x1133
|
|
#define SC_MAP_PROFILE 0x1134
|
|
#define SC_PNP_INFO 0x1200
|
|
#define SC_GENERIC_NETWORKING 0x1201
|
|
#define SC_GENERIC_FILE_TRANSFER 0x1202
|
|
#define SC_GENERIC_AUDIO 0x1203
|
|
#define SC_GENERIC_TELEPHONY 0x1204
|
|
#define SC_UPNP_SERVICE 0x1205
|
|
#define SC_UPNP_IP_SERVICE 0x1206
|
|
#define SC_ESDP_UPNP_IP_PAN 0x1300
|
|
#define SC_ESDP_UPNP_IP_LAP 0x1301
|
|
#define SC_ESDP_UPNP_L2CAP 0x1302
|
|
#define SC_VIDEO_SOURCE 0x1303
|
|
#define SC_VIDEO_SINK 0x1304
|
|
#define SC_VIDEO_DISTRIBUTION 0x1305
|
|
|
|
typedef uint16_t sdp_protocol_uuid;
|
|
#define PROT_SDP 0x0001
|
|
#define PROT_UDP 0x0002
|
|
#define PROT_RFCOMM 0x0003
|
|
#define PROT_TCP 0x0004
|
|
#define PROT_TCS_BIN 0x0005
|
|
#define PROT_TCS_AT 0x0006
|
|
#define PROT_OBEX 0x0008
|
|
#define PROT_IP 0x0009
|
|
#define PROT_FTP 0x000A
|
|
#define PROT_HTTP 0x000C
|
|
#define PROT_WSP 0x000E
|
|
#define PROT_BNEP 0x000F
|
|
#define PROT_UPNP 0x0010
|
|
#define PROT_HIDP 0x0011
|
|
#define PROT_HCR_CONTROL_CHANNEL 0x0012
|
|
#define PROT_HCR_DATA_CHANNEL 0x0014
|
|
#define PROT_HCR_NOTIFICATION 0x0016
|
|
#define PROT_AVCTP 0x0017
|
|
#define PROT_AVDTP 0x0019
|
|
#define PROT_AVCTP_BROWSING 0x001B
|
|
#define PROT_UDI_C 0x001D
|
|
#define PROT_L2CAP 0x0100
|
|
|
|
typedef uint16_t sdp_attribute_id;
|
|
#define AID_SERVICE_RECORD_HANDLE 0x0000
|
|
#define AID_SERVICE_CLASS_ID_LIST 0x0001
|
|
#define AID_SERVICE_RECORD_STATE 0x0002
|
|
#define AID_SERVICE_ID 0x0003
|
|
#define AID_PROTOCOL_DESC_LIST 0x0004
|
|
#define AID_BROWSE_GROUP_LIST 0x0005
|
|
#define AID_LANG_BASE_ID_LIST 0x0006
|
|
#define AID_SERVICE_INFO_TIME_TO_LIVE 0x0007
|
|
#define AID_SERVICE_AVAILABILITY 0x0008
|
|
#define AID_BT_PROFILE_DESC_LIST 0x0009
|
|
#define AID_DOC_URL 0x000a
|
|
#define AID_CLIENT_EXEC_URL 0x000b
|
|
#define AID_ICON_URL 0x000c
|
|
#define AID_ADDITIONAL_PROT_DESC_LISTS 0x000d
|
|
#define AID_SERVICE_NAME 0x0000
|
|
#define AID_SERVICE_DESCRIPTION 0x0001
|
|
#define AID_PROVIDER_NAME 0x0002
|
|
#define AID_IP_SUBNET 0x0200
|
|
#define AID_GROUP_ID 0x0200
|
|
#define AID_VERSION_NUMBER_LIST 0x0200
|
|
#define AID_SERVICE_DATABASE_STATE 0x0201
|
|
#define AID_SERVICE_VERSION 0x0300
|
|
#define AID_EXTERNAL_NETWORK 0x0301
|
|
#define AID_SUPPORTED_DATA_STORES_LIST 0x0301
|
|
#define AID_FAX_CLASS_1_SUPPORT 0x0302
|
|
#define AID_REMOTE_AUDIO_VOL_CONTROL 0x0302
|
|
#define AID_FAX_CLASS_20_SUPPORT 0x0303
|
|
#define AID_SUPPORTED_FORMATS_LIST 0x0303
|
|
#define AID_FAX_CLASS_2_SUPPORT 0x0304
|
|
#define AID_AUDIO_FEEDBACK_SUPPORT 0x0305
|
|
#define AID_NETWORK_ADDRESS 0x0306
|
|
#define AID_WAP_GATEWAY 0x0307
|
|
#define AID_HOME_PAGE_URL 0x0308
|
|
#define AID_WAP_STACK_TYPE 0x0309
|
|
#define AID_SECURITY_DESC 0x030A
|
|
#define AID_NET_ACCESS_TYPE 0x030B
|
|
#define AID_MAX_NET_ACCESS_RATE 0x030C
|
|
#define AID_IPV4_SUBNET 0x030D
|
|
#define AID_IPV6_SUBNET 0x030E
|
|
#define AID_SUPPORTED_CAPABILITIES 0x0310
|
|
#define AID_SUPPORTED_FEATURES 0x0311
|
|
#define AID_SUPPORTED_FUNCTIONS 0x0312
|
|
#define AID_TOTAL_IMAGE_DATA_CAPACITY 0x0313
|
|
#define AID_SUPPORTED_REPOSITORIES 0x0314
|
|
#define AID_MAS_INSTANCE_ID 0x0315
|
|
#define AID_SUPPORTED_MESSAGE_TYPES 0x0316
|
|
#define AID_SUPPORTED_DOC_FORMATS 0x0350
|
|
#define AID_SUPPORTED_CHAR_REPERTOIRES 0x0352
|
|
#define AID_SUPPORTED_XHTML_IMAGE_FORMATS 0x0354
|
|
#define AID_COLOR_SUPPORTED 0x0356
|
|
#define AID_PRINTER_1284ID 0x0358
|
|
#define AID_DUPLEX_SUPPORTED 0x035E
|
|
#define AID_SUPPORTED_MEDIA_TYPES 0x0360
|
|
#define AID_MAX_MEDIA_WIDTH 0x0362
|
|
#define AID_MAX_MEDIA_LENGTH 0x0364
|
|
#define AID_HID_PARSERVERSION 0x201
|
|
#define AID_HID_DEVICESUBCLASS 0x202
|
|
#define AID_HID_CONTRYCODE 0x203
|
|
#define AID_HID_VIRTUALCABLE 0x204
|
|
#define AID_HID_RECONNECTINITIATE 0x205
|
|
#define AID_HID_DESCRIPTORLIST 0x206
|
|
#define AID_HID_LANGIDBASELIST 0x207
|
|
#define AID_HID_BATTERYPOWER 0x209
|
|
#define AID_HID_REMOTEWAKE 0x20A
|
|
#define AID_HID_SUPERVISIONTIMEOUT 0x20C
|
|
#define AID_HID_NORMALLYCONNECTABLE 0x20D
|
|
#define AID_HID_BOOTDEVICE 0x20E
|
|
#define AID_HID_SSRHOSTMAXLATENCY 0x20F
|
|
#define AID_HID_SSRHOSTMINTIMEOUT 0x210
|
|
|
|
U16 sdp_get_u16(U8 * buff);
|
|
#define sdp_get_u16(buff) be_to_host16((buff))
|
|
U32 sdp_get_u32(U8 * buff);
|
|
#define sdp_get_u32(buff) BEtoHost32((buff))
|
|
void sdp_put_u16(U8 * buff, U16 val);
|
|
#define sdp_put_u16(buff,val) StoreBE16((buff),(val))
|
|
void sdp_put_u32(U8 * buff, U32 val);
|
|
#define sdp_put_u32(buff,val) StoreBE32((buff),(val))
|
|
|
|
typedef struct btif_sdp_attribute {
|
|
uint16_t id;
|
|
uint16_t len;
|
|
const uint8_t *value;
|
|
uint16_t flags;
|
|
} __attribute__ ((__packed__)) sdp_attribute_t;
|
|
|
|
typedef struct btif_sdp_query_info {
|
|
const uint8_t *parms;
|
|
uint16_t parm_len;
|
|
sdp_query_type query_type;
|
|
sdp_attribute_id attr_id;
|
|
uint16_t uuid;
|
|
sdp_parsing_mode mode;
|
|
btif_callback callback;
|
|
void *priv;
|
|
} __attribute__ ((__packed__)) btif_sdp_query_info_t;
|
|
|
|
typedef struct btif_sdp_record_param {
|
|
sdp_attribute_t *attrs;
|
|
uint32_t attr_count;
|
|
uint32_t COD;
|
|
} __attribute__ ((__packed__)) btif_sdp_record_param_t;
|
|
|
|
|
|
typedef struct btif_sdp_query_token
|
|
{
|
|
btif_remote_device_t *rm; /* The remote device to query. An ACL
|
|
* connection must exist with this device
|
|
* before the query is started. */
|
|
struct btif_sdp_query_info info;
|
|
uint8_t channel;
|
|
uint8_t response_buff[666];
|
|
uint32_t response_buff_len;
|
|
} __attribute__ ((__packed__)) btif_sdp_query_token_t;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
bt_status_t btif_sdp_init(void);
|
|
|
|
btif_sdp_record_t *btif_sdp_create_record(void);
|
|
|
|
void btif_sdp_free_record(btif_sdp_record_t* record);
|
|
|
|
void *btif_sdp_get_record_priv(btif_sdp_record_t *record);
|
|
|
|
bt_status_t btif_sdp_record_setup(btif_sdp_record_t *record, btif_sdp_record_param_t *param);
|
|
|
|
btif_sdp_query_token_t *btif_sdp_create_query_token(void);
|
|
|
|
void btif_sdp_free_token(btif_sdp_query_token_t * query_token);
|
|
|
|
int btif_sdp_set_query_token(btif_sdp_query_token_t * query_token, btif_sdp_query_info_t *info);
|
|
|
|
int btif_sdp_set_remote_device(btif_sdp_query_token_t * query_token,
|
|
btif_remote_device_t * r_device);
|
|
|
|
bt_status_t btif_sdp_query(btif_sdp_query_token_t * query_token, sdp_query_mode mode);
|
|
|
|
bt_status_t btif_sdp_parse_attrs(btif_sdp_query_token_t * query_token);
|
|
|
|
btif_remote_device_t *btif_sdp_get_remote_device(btif_sdp_query_token_t * query_token);
|
|
|
|
uint8_t btif_sdp_get_server_id(btif_sdp_query_token_t * query_token);
|
|
|
|
void *btif_sdp_get_token_priv(btif_sdp_query_token_t * query_token);
|
|
|
|
bt_status_t btif_sdp_add_record(btif_sdp_record_t * record);
|
|
|
|
bt_status_t btif_sdp_remove_record(btif_sdp_record_t * record);
|
|
|
|
void btif_sdp_set_parsing_mode(btif_sdp_query_token_t * query_token, sdp_parsing_mode mode);
|
|
|
|
bt_status_t btif_spp_insert_rfcomm_chan(btif_sdp_record_t *record, uint8_t channel);
|
|
|
|
btif_sdp_query_token_t *btif_me_get_callback_event_sdp_token(const btif_event_t *event);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /*__SDP_API_H__*/
|