1 /******************************************************************************
2  *
3  *  Copyright (C) 1999-2012 Broadcom Corporation
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at:
8  *
9  *  http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  ******************************************************************************/
18 
19 /******************************************************************************
20  *
21  *  This file contains the definitions for the SDP API
22  *
23  ******************************************************************************/
24 
25 #ifndef SDP_DEFS_H
26 #define SDP_DEFS_H
27 
28 /* Define the service attribute IDs.
29 */
30 #define  ATTR_ID_SERVICE_RECORD_HDL             0x0000
31 #define  ATTR_ID_SERVICE_CLASS_ID_LIST          0x0001
32 #define  ATTR_ID_SERVICE_RECORD_STATE           0x0002
33 #define  ATTR_ID_SERVICE_ID                     0x0003
34 #define  ATTR_ID_PROTOCOL_DESC_LIST             0x0004
35 #define  ATTR_ID_BROWSE_GROUP_LIST              0x0005
36 #define  ATTR_ID_LANGUAGE_BASE_ATTR_ID_LIST     0x0006
37 #define  ATTR_ID_SERVICE_INFO_TIME_TO_LIVE      0x0007
38 #define  ATTR_ID_SERVICE_AVAILABILITY           0x0008
39 #define  ATTR_ID_BT_PROFILE_DESC_LIST           0x0009
40 #define  ATTR_ID_DOCUMENTATION_URL              0x000A
41 #define  ATTR_ID_CLIENT_EXE_URL                 0x000B
42 #define  ATTR_ID_ICON_URL                       0x000C
43 #define  ATTR_ID_ADDITION_PROTO_DESC_LISTS      0x000D
44 
45 #define  LANGUAGE_BASE_ID                       0x0100
46 #define  ATTR_ID_SERVICE_NAME                   LANGUAGE_BASE_ID + 0x0000
47 #define  ATTR_ID_SERVICE_DESCRIPTION            LANGUAGE_BASE_ID + 0x0001
48 #define  ATTR_ID_PROVIDER_NAME                  LANGUAGE_BASE_ID + 0x0002
49 
50 /* Device Identification (DI)
51 */
52 #define ATTR_ID_SPECIFICATION_ID                0x0200
53 #define ATTR_ID_VENDOR_ID                       0x0201
54 #define ATTR_ID_PRODUCT_ID                      0x0202
55 #define ATTR_ID_PRODUCT_VERSION                 0x0203
56 #define ATTR_ID_PRIMARY_RECORD                  0x0204
57 #define ATTR_ID_VENDOR_ID_SOURCE                0x0205
58 
59 #define BLUETOOTH_DI_SPECIFICATION              0x0103  /* 1.3 */
60 #define DI_VENDOR_ID_DEFAULT                    0xFFFF
61 #define DI_VENDOR_ID_SOURCE_BTSIG               0x0001
62 #define DI_VENDOR_ID_SOURCE_USBIF               0x0002
63 
64 
65 #define  ATTR_ID_IP_SUBNET                      0x0200 /* PAN Profile (***) */
66 #define  ATTR_ID_VERSION_NUMBER_LIST            0x0200
67 #define  ATTR_ID_GOEP_L2CAP_PSM                 0x0200
68 #define  ATTR_ID_GROUP_ID                       0x0200
69 #define  ATTR_ID_SERVICE_DATABASE_STATE         0x0201
70 #define  ATTR_ID_SERVICE_VERSION                0x0300
71 #define  ATTR_ID_HCRP_1284ID                    0x0300
72 
73 #define  ATTR_ID_SUPPORTED_DATA_STORES          0x0301
74 #define  ATTR_ID_NETWORK                        0x0301
75 #define  ATTR_ID_EXTERNAL_NETWORK               0x0301
76 #define  ATTR_ID_FAX_CLASS_1_SUPPORT            0x0302
77 #define  ATTR_ID_REMOTE_AUDIO_VOLUME_CONTROL    0x0302
78 #define  ATTR_ID_DEVICE_NAME                    0x0302
79 #define  ATTR_ID_SUPPORTED_FORMATS_LIST         0x0303
80 #define  ATTR_ID_FAX_CLASS_2_0_SUPPORT          0x0303
81 #define  ATTR_ID_FAX_CLASS_2_SUPPORT            0x0304
82 #define  ATTR_ID_FRIENDLY_NAME                  0x0304
83 #define  ATTR_ID_AUDIO_FEEDBACK_SUPPORT         0x0305
84 #define  ATTR_ID_NETWORK_ADDRESS                0x0306
85 #define  ATTR_ID_DEVICE_LOCATION                0x0306
86 #define  ATTR_ID_WAP_GATEWAY                    0x0307
87 #define  ATTR_ID_HOME_PAGE_URL                  0x0308
88 #define  ATTR_ID_WAP_STACK_TYPE                 0x0309
89 #define  ATTR_ID_IMG_SUPPORTED_CAPABILITIES     0x0310 /* Imaging Profile */
90 #define  ATTR_ID_SUPPORTED_FEATURES             0x0311 /* HFP, BIP */
91 #define  ATTR_ID_IMG_SUPPORTED_FUNCTIONS        0x0312 /* Imaging Profile */
92 #define  ATTR_ID_IMG_TOT_DATA_CAPABILITY        0x0313 /* Imaging Profile */
93 #define  ATTR_ID_SUPPORTED_REPOSITORIES         0x0314 /* Phone book access Profile */
94 #define  ATTR_ID_MAS_INSTANCE_ID                0x0315 /* MAP profile */
95 #define  ATTR_ID_SUPPORTED_MSG_TYPE             0x0316 /* MAP profile */
96 #define  ATTR_ID_MAP_SUPPORTED_FEATURES         0x0317 /* MAP profile */
97 #define  ATTR_ID_PBAP_SUPPORTED_FEATURES        0x0317 /* PBAP profile */
98 
99 
100 /* These values are for the BPP profile */
101 #define ATTR_ID_DOCUMENT_FORMATS_SUPPORTED      0x0350
102 #define ATTR_ID_CHARACTER_REPERTOIRES_SUPPORTED 0x0352
103 #define ATTR_ID_XHTML_IMAGE_FORMATS_SUPPORTED   0x0354
104 #define ATTR_ID_COLOR_SUPPORTED                 0x0356
105 #define ATTR_ID_1284ID                          0x0358
106 #define ATTR_ID_PRINTER_NAME                    0x035A
107 #define ATTR_ID_PRINTER_LOCATION                0x035C
108 #define ATTR_ID_DUPLEX_SUPPORTED                0x035E
109 #define ATTR_ID_MEDIA_TYPES_SUPPORTED           0x0360
110 #define ATTR_ID_MAX_MEDIA_WIDTH                 0x0362
111 #define ATTR_ID_MAX_MEDIA_LENGTH                0x0364
112 #define ATTR_ID_ENHANCED_LAYOUT_SUPPORTED       0x0366
113 #define ATTR_ID_RUI_FORMATS_SUPPORTED           0x0368
114 #define ATTR_ID_RUI_REF_PRINTING_SUPPORTED      0x0370  /* Boolean */
115 #define ATTR_ID_RUI_DIRECT_PRINTING_SUPPORTED   0x0372  /* Boolean */
116 #define ATTR_ID_REF_PRINTING_TOP_URL            0x0374
117 #define ATTR_ID_DIRECT_PRINTING_TOP_URL         0x0376
118 #define ATTR_ID_PRINTER_ADMIN_RUI_TOP_URL       0x0378
119 #define ATTR_ID_BPP_DEVICE_NAME                 0x037A
120 
121 /* These values are for the PAN profile */
122 #define  ATTR_ID_SECURITY_DESCRIPTION           0x030A
123 #define  ATTR_ID_NET_ACCESS_TYPE                0x030B
124 #define  ATTR_ID_MAX_NET_ACCESS_RATE            0x030C
125 #define  ATTR_ID_IPV4_SUBNET                    0x030D
126 #define  ATTR_ID_IPV6_SUBNET                    0x030E
127 #define  ATTR_ID_PAN_SECURITY                   0x0400
128 
129 /* These values are for HID profile */
130 #define  ATTR_ID_HID_DEVICE_RELNUM          0x0200
131 #define  ATTR_ID_HID_PARSER_VERSION         0x0201
132 #define  ATTR_ID_HID_DEVICE_SUBCLASS        0x0202
133 #define  ATTR_ID_HID_COUNTRY_CODE           0x0203
134 #define  ATTR_ID_HID_VIRTUAL_CABLE          0x0204
135 #define  ATTR_ID_HID_RECONNECT_INITIATE     0x0205
136 #define  ATTR_ID_HID_DESCRIPTOR_LIST        0x0206
137 #define  ATTR_ID_HID_LANGUAGE_ID_BASE       0x0207
138 #define  ATTR_ID_HID_SDP_DISABLE            0x0208
139 #define  ATTR_ID_HID_BATTERY_POWER          0x0209
140 #define  ATTR_ID_HID_REMOTE_WAKE            0x020A
141 #define  ATTR_ID_HID_PROFILE_VERSION        0x020B
142 #define  ATTR_ID_HID_LINK_SUPERVISION_TO    0x020C
143 #define  ATTR_ID_HID_NORMALLY_CONNECTABLE   0x020D
144 #define  ATTR_ID_HID_BOOT_DEVICE            0x020E
145 #define  ATTR_ID_HID_SSR_HOST_MAX_LAT       0x020F
146 #define  ATTR_ID_HID_SSR_HOST_MIN_TOUT      0x0210
147 
148 /* These values are for the HDP profile */
149 #define  ATTR_ID_HDP_SUP_FEAT_LIST          0x0200  /* Supported features list */
150 #define  ATTR_ID_HDP_DATA_EXCH_SPEC         0x0301  /* Data exchange specification */
151 #define  ATTR_ID_HDP_MCAP_SUP_PROC          0x0302  /* MCAP supported procedures */
152 
153 /* Define common 16-bit protocol UUIDs
154 */
155 #define UUID_PROTOCOL_SDP                    0x0001
156 #define UUID_PROTOCOL_UDP                    0x0002
157 #define UUID_PROTOCOL_RFCOMM                 0x0003
158 #define UUID_PROTOCOL_TCP                    0x0004
159 #define UUID_PROTOCOL_TCS_BIN                0x0005
160 #define UUID_PROTOCOL_TCS_AT                 0x0006
161 #define UUID_PROTOCOL_OBEX                   0x0008
162 #define UUID_PROTOCOL_IP                     0x0009
163 #define UUID_PROTOCOL_FTP                    0x000A
164 #define UUID_PROTOCOL_HTTP                   0x000C
165 #define UUID_PROTOCOL_WSP                    0x000E
166 #define UUID_PROTOCOL_BNEP                   0x000F
167 #define UUID_PROTOCOL_UPNP                   0x0010
168 #define UUID_PROTOCOL_HIDP                   0x0011
169 #define UUID_PROTOCOL_HCRP_CTRL              0x0012
170 #define UUID_PROTOCOL_HCRP_DATA              0x0014
171 #define UUID_PROTOCOL_HCRP_NOTIF             0x0016
172 #define UUID_PROTOCOL_AVCTP                  0x0017
173 #define UUID_PROTOCOL_AVDTP                  0x0019
174 #define UUID_PROTOCOL_CMTP                   0x001B
175 #define UUID_PROTOCOL_UDI                    0x001D
176 #define UUID_PROTOCOL_MCAP_CTRL              0x001E
177 #define UUID_PROTOCOL_MCAP_DATA              0x001F
178 #define UUID_PROTOCOL_L2CAP                  0x0100
179 #define UUID_PROTOCOL_ATT                    0x0007
180 
181 /* Define common 16-bit service class UUIDs
182 */
183 #define UUID_SERVCLASS_SERVICE_DISCOVERY_SERVER 0X1000
184 #define UUID_SERVCLASS_BROWSE_GROUP_DESCRIPTOR  0X1001
185 #define UUID_SERVCLASS_PUBLIC_BROWSE_GROUP      0X1002
186 #define UUID_SERVCLASS_SERIAL_PORT              0X1101
187 #define UUID_SERVCLASS_LAN_ACCESS_USING_PPP     0X1102
188 #define UUID_SERVCLASS_DIALUP_NETWORKING        0X1103
189 #define UUID_SERVCLASS_IRMC_SYNC                0X1104
190 #define UUID_SERVCLASS_OBEX_OBJECT_PUSH         0X1105
191 #define UUID_SERVCLASS_OBEX_FILE_TRANSFER       0X1106
192 #define UUID_SERVCLASS_IRMC_SYNC_COMMAND        0X1107
193 #define UUID_SERVCLASS_HEADSET                  0X1108
194 #define UUID_SERVCLASS_CORDLESS_TELEPHONY       0X1109
195 #define UUID_SERVCLASS_AUDIO_SOURCE             0X110A
196 #define UUID_SERVCLASS_AUDIO_SINK               0X110B
197 #define UUID_SERVCLASS_AV_REM_CTRL_TARGET       0X110C  /* Audio/Video Control profile */
198 #define UUID_SERVCLASS_ADV_AUDIO_DISTRIBUTION   0X110D  /* Advanced Audio Distribution profile */
199 #define UUID_SERVCLASS_AV_REMOTE_CONTROL        0X110E  /* Audio/Video Control profile */
200 #define UUID_SERVCLASS_AV_REM_CTRL_CONTROL      0X110F  /* Audio/Video Control profile */
201 #define UUID_SERVCLASS_INTERCOM                 0X1110
202 #define UUID_SERVCLASS_FAX                      0X1111
203 #define UUID_SERVCLASS_HEADSET_AUDIO_GATEWAY    0X1112
204 #define UUID_SERVCLASS_WAP                      0X1113
205 #define UUID_SERVCLASS_WAP_CLIENT               0X1114
206 #define UUID_SERVCLASS_PANU                     0X1115  /* PAN profile */
207 #define UUID_SERVCLASS_NAP                      0X1116  /* PAN profile */
208 #define UUID_SERVCLASS_GN                       0X1117  /* PAN profile */
209 #define UUID_SERVCLASS_DIRECT_PRINTING          0X1118  /* BPP profile */
210 #define UUID_SERVCLASS_REFERENCE_PRINTING       0X1119  /* BPP profile */
211 #define UUID_SERVCLASS_IMAGING                  0X111A  /* Imaging profile */
212 #define UUID_SERVCLASS_IMAGING_RESPONDER        0X111B  /* Imaging profile */
213 #define UUID_SERVCLASS_IMAGING_AUTO_ARCHIVE     0X111C  /* Imaging profile */
214 #define UUID_SERVCLASS_IMAGING_REF_OBJECTS      0X111D  /* Imaging profile */
215 #define UUID_SERVCLASS_HF_HANDSFREE             0X111E  /* Handsfree profile */
216 #define UUID_SERVCLASS_AG_HANDSFREE             0X111F  /* Handsfree profile */
217 #define UUID_SERVCLASS_DIR_PRT_REF_OBJ_SERVICE  0X1120  /* BPP profile */
218 #define UUID_SERVCLASS_REFLECTED_UI             0X1121  /* BPP profile */
219 #define UUID_SERVCLASS_BASIC_PRINTING           0X1122  /* BPP profile */
220 #define UUID_SERVCLASS_PRINTING_STATUS          0X1123  /* BPP profile */
221 #define UUID_SERVCLASS_HUMAN_INTERFACE          0X1124  /* HID profile */
222 #define UUID_SERVCLASS_CABLE_REPLACEMENT        0X1125  /* HCRP profile */
223 #define UUID_SERVCLASS_HCRP_PRINT               0X1126  /* HCRP profile */
224 #define UUID_SERVCLASS_HCRP_SCAN                0X1127  /* HCRP profile */
225 #define UUID_SERVCLASS_COMMON_ISDN_ACCESS       0X1128  /* CAPI Message Transport Protocol*/
226 #define UUID_SERVCLASS_VIDEO_CONFERENCING_GW    0X1129  /* Video Conferencing profile */
227 #define UUID_SERVCLASS_UDI_MT                   0X112A  /* Unrestricted Digital Information profile */
228 #define UUID_SERVCLASS_UDI_TA                   0X112B  /* Unrestricted Digital Information profile */
229 #define UUID_SERVCLASS_VCP                      0X112C  /* Video Conferencing profile */
230 #define UUID_SERVCLASS_SAP                      0X112D  /* SIM Access profile */
231 #define UUID_SERVCLASS_PBAP_PCE                 0X112E  /* Phonebook Access - PCE */
232 #define UUID_SERVCLASS_PBAP_PSE                 0X112F  /* Phonebook Access - PSE */
233 #define UUID_SERVCLASS_PHONE_ACCESS             0x1130
234 #define UUID_SERVCLASS_HEADSET_HS               0x1131  /* Headset - HS, from HSP v1.2 */
235 #define UUID_SERVCLASS_PNP_INFORMATION          0X1200  /* Device Identification */
236 #define UUID_SERVCLASS_GENERIC_NETWORKING       0X1201
237 #define UUID_SERVCLASS_GENERIC_FILETRANSFER     0X1202
238 #define UUID_SERVCLASS_GENERIC_AUDIO            0X1203
239 #define UUID_SERVCLASS_GENERIC_TELEPHONY        0X1204
240 #define UUID_SERVCLASS_UPNP_SERVICE             0X1205  /* UPNP_Service [ESDP] */
241 #define UUID_SERVCLASS_UPNP_IP_SERVICE          0X1206  /* UPNP_IP_Service [ESDP] */
242 #define UUID_SERVCLASS_ESDP_UPNP_IP_PAN         0X1300  /* UPNP_IP_PAN [ESDP] */
243 #define UUID_SERVCLASS_ESDP_UPNP_IP_LAP         0X1301  /* UPNP_IP_LAP [ESDP] */
244 #define UUID_SERVCLASS_ESDP_UPNP_IP_L2CAP       0X1302  /* UPNP_L2CAP [ESDP] */
245 #define UUID_SERVCLASS_VIDEO_SOURCE             0X1303  /* Video Distribution Profile (VDP) */
246 #define UUID_SERVCLASS_VIDEO_SINK               0X1304  /* Video Distribution Profile (VDP) */
247 #define UUID_SERVCLASS_VIDEO_DISTRIBUTION       0X1305  /* Video Distribution Profile (VDP) */
248 #define UUID_SERVCLASS_HDP_PROFILE              0X1400  /* Health Device profile (HDP) */
249 #define UUID_SERVCLASS_HDP_SOURCE               0X1401  /* Health Device profile (HDP) */
250 #define UUID_SERVCLASS_HDP_SINK                 0X1402  /* Health Device profile (HDP) */
251 #define UUID_SERVCLASS_MAP_PROFILE              0X1134  /* MAP profile UUID */
252 #define UUID_SERVCLASS_MESSAGE_ACCESS           0X1132  /* Message Access Service UUID */
253 #define UUID_SERVCLASS_MESSAGE_NOTIFICATION     0X1133  /* Message Notification Service UUID */
254 
255 #define UUID_SERVCLASS_GAP_SERVER               0x1800
256 #define UUID_SERVCLASS_GATT_SERVER              0x1801
257 #define UUID_SERVCLASS_IMMEDIATE_ALERT          0x1802      /* immediate alert */
258 #define UUID_SERVCLASS_LINKLOSS                 0x1803      /* Link Loss Alert */
259 #define UUID_SERVCLASS_TX_POWER                 0x1804      /* TX power */
260 #define UUID_SERVCLASS_CURRENT_TIME             0x1805      /* Link Loss Alert */
261 #define UUID_SERVCLASS_DST_CHG                  0x1806      /* DST Time change */
262 #define UUID_SERVCLASS_REF_TIME_UPD             0x1807      /* reference time update */
263 #define UUID_SERVCLASS_THERMOMETER              0x1809      /* Thermometer UUID */
264 #define UUID_SERVCLASS_DEVICE_INFO              0x180A      /* device info service */
265 #define UUID_SERVCLASS_NWA                      0x180B      /* Network availability */
266 #define UUID_SERVCLASS_HEART_RATE               0x180D      /* Heart Rate service */
267 #define UUID_SERVCLASS_PHALERT                  0x180E      /* phone alert service */
268 #define UUID_SERVCLASS_BATTERY                  0x180F     /* battery service */
269 #define UUID_SERVCLASS_BPM                      0x1810      /*  blood pressure service */
270 #define UUID_SERVCLASS_ALERT_NOTIFICATION       0x1811      /* alert notification service */
271 #define UUID_SERVCLASS_LE_HID                   0x1812     /*  HID over LE */
272 #define UUID_SERVCLASS_SCAN_PARAM               0x1813      /* Scan Parameter service */
273 #define UUID_SERVCLASS_GLUCOSE                  0x1808      /* Glucose Meter Service */
274 #define UUID_SERVCLASS_RSC                      0x1814      /* RUNNERS SPEED AND CADENCE SERVICE      */
275 #define UUID_SERVCLASS_CSC                      0x1816      /* Cycling SPEED AND CADENCE SERVICE      */
276 
277 #define UUID_SERVCLASS_TEST_SERVER              0x9000      /* Test Group UUID */
278 
279 #if (BTM_WBS_INCLUDED == TRUE)
280 #define UUID_CODEC_CVSD                         0x0001   /* CVSD */
281 #define UUID_CODEC_MSBC                         0x0002   /* mSBC */
282 #endif
283 
284 /* Define all the 'Descriptor Type' values.
285 */
286 #define  NULL_DESC_TYPE                     0
287 #define  UINT_DESC_TYPE                     1
288 #define  TWO_COMP_INT_DESC_TYPE             2
289 #define  UUID_DESC_TYPE                     3
290 #define  TEXT_STR_DESC_TYPE                 4
291 #define  BOOLEAN_DESC_TYPE                  5
292 #define  DATA_ELE_SEQ_DESC_TYPE             6
293 #define  DATA_ELE_ALT_DESC_TYPE             7
294 #define  URL_DESC_TYPE                      8
295 
296 /* Define all the "Descriptor Size" values.
297 */
298 #define  SIZE_ONE_BYTE                0
299 #define  SIZE_TWO_BYTES               1
300 #define  SIZE_FOUR_BYTES              2
301 #define  SIZE_EIGHT_BYTES             3
302 #define  SIZE_SIXTEEN_BYTES           4
303 #define  SIZE_IN_NEXT_BYTE            5
304 #define  SIZE_IN_NEXT_WORD            6
305 #define  SIZE_IN_NEXT_LONG            7
306 
307 /* Language Encoding Constants */
308 #define LANG_ID_CODE_ENGLISH            ((UINT16) 0x656e)   /* "en" */
309 #define LANG_ID_CHAR_ENCODE_UTF8        ((UINT16) 0x006a)   /* UTF-8 */
310 
311 /* Constants used for display purposes only.  These define ovelapping attribute values */
312 #define  ATTR_ID_VERS_OR_GRP_OR_DRELNUM_OR_IPSUB_OR_SPECID  0x0200
313 #define  ATTR_ID_VEND_ID_OR_SERVICE_DB_STATE_OR_PARSE_VER   0x0201
314 #define  ATTR_ID_PROD_ID_OR_HID_DEV_SUBCLASS                0x0202
315 #define  ATTR_ID_PROD_VER_OR_HID_COUNTRY_CODE               0x0203
316 #define  ATTR_ID_PRIMARY_REC_OR_HID_VIRTUAL_CABLE           0x0204
317 #define  ATTR_ID_DI_VENDOR_ID_SOURCE_OR_HID_INIT_RECONNECT  0x0205
318 #define  ATTR_ID_SERV_VERS_OR_1284ID                        0x0300
319 #define  ATTR_ID_DATA_STORES_OR_NETWORK                     0x0301
320 #define  ATTR_ID_FAX_1_OR_AUD_VOL_OR_DEV_NAME               0x0302
321 #define  ATTR_ID_FORMATS_OR_FAX_2_0                         0x0303
322 #define  ATTR_ID_FAX_CLASS_2_OR_FRIENDLY_NAME               0x0304
323 #define  ATTR_ID_NETADDRESS_OR_DEVLOCATION                  0x0306
324 
325 #endif
326