1ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 2764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * 3764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * BlueZ - Bluetooth protocol stack for Linux 4764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * 5764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * Copyright (C) 2001-2002 Nokia Corporation 6764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com> 79184e2eeb7b97371c6b83b747c8984e2340d2b47Marcel Holtmann * Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org> 8764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * Copyright (C) 2002-2003 Stephen Crane <steve.crane@rococosoft.com> 9764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * 10764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * 11764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * This program is free software; you can redistribute it and/or modify 12c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * it under the terms of the GNU General Public License as published by 13c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * the Free Software Foundation; either version 2 of the License, or 14c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * (at your option) any later version. 15764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * 16c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * This program is distributed in the hope that it will be useful, 17c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * but WITHOUT ANY WARRANTY; without even the implied warranty of 18c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * GNU General Public License for more details. 20764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * 21c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * You should have received a copy of the GNU General Public License 22c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * along with this program; if not, write to the Free Software 23c0d524486a50e8366c12c5ebea1a4441e9db46aaMarcel Holtmann * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 24764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann * 25ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 26ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 27764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann#ifndef __SDP_H 28764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann#define __SDP_H 29764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann 30764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann#ifdef __cplusplus 31764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmannextern "C" { 32764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann#endif 33ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 34ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#include <stdint.h> 35bb096e674c6a143db73fb636aa611a392cdb92f8Elvis Pfützenreuter#include <bluetooth/bluetooth.h> 361a3b16d28be3a7ae3ce0a853cdab8f6f288280dbJaikumar Ganesh#include <cutils/sockets.h> 37ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 381a3b16d28be3a7ae3ce0a853cdab8f6f288280dbJaikumar Ganesh#define SDP_UNIX_PATH ANDROID_SOCKET_DIR"/bluetooth" 39ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_RESPONSE_TIMEOUT 20 40ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_REQ_BUFFER_SIZE 2048 41ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_RSP_BUFFER_SIZE 65535 42ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_PDU_CHUNK_SIZE 1024 43ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 44ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 45ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * All definitions are based on Bluetooth Assigned Numbers 46ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * of the Bluetooth Specification 47ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 482e637a340f9cd7b8716336a6c43f3a06e8a04ee9Marcel Holtmann#define SDP_PSM 0x0001 49ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 50ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 51ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * Protocol UUIDs 52ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 53ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_UUID 0x0001 54ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define UDP_UUID 0x0002 556864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define RFCOMM_UUID 0x0003 56ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define TCP_UUID 0x0004 57ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define TCS_BIN_UUID 0x0005 58ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define TCS_AT_UUID 0x0006 59394a93e5a90dff71373f0a5811e32ac10d023e29Brian Gix#define ATT_UUID 0x0007 602e637a340f9cd7b8716336a6c43f3a06e8a04ee9Marcel Holtmann#define OBEX_UUID 0x0008 616864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define IP_UUID 0x0009 626864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define FTP_UUID 0x000a 636864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HTTP_UUID 0x000c 646864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define WSP_UUID 0x000e 656864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define BNEP_UUID 0x000f 666864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_UUID 0x0010 67ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define HIDP_UUID 0x0011 686537173ad53f64d51bfa11788a3588c5fde27afcMarcel Holtmann#define HCRP_CTRL_UUID 0x0012 696537173ad53f64d51bfa11788a3588c5fde27afcMarcel Holtmann#define HCRP_DATA_UUID 0x0014 706537173ad53f64d51bfa11788a3588c5fde27afcMarcel Holtmann#define HCRP_NOTE_UUID 0x0016 714691560c56de8c5cef68bd4acee97e53e193b717Marcel Holtmann#define AVCTP_UUID 0x0017 724691560c56de8c5cef68bd4acee97e53e193b717Marcel Holtmann#define AVDTP_UUID 0x0019 736864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define CMTP_UUID 0x001b 746864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UDI_UUID 0x001d 75f767416e71484be2463caa6482dc978e165cabaeMarcel Holtmann#define MCAP_CTRL_UUID 0x001e 76f767416e71484be2463caa6482dc978e165cabaeMarcel Holtmann#define MCAP_DATA_UUID 0x001f 776864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define L2CAP_UUID 0x0100 78ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 79ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 80ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * Service class identifiers of standard services and service groups 81ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 82ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SERVER_SVCLASS_ID 0x1000 83ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define BROWSE_GRP_DESC_SVCLASS_ID 0x1001 84ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define PUBLIC_BROWSE_GROUP 0x1002 85ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SERIAL_PORT_SVCLASS_ID 0x1101 86ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define LAN_ACCESS_SVCLASS_ID 0x1102 87ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define DIALUP_NET_SVCLASS_ID 0x1103 88ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define IRMC_SYNC_SVCLASS_ID 0x1104 89ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define OBEX_OBJPUSH_SVCLASS_ID 0x1105 90ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define OBEX_FILETRANS_SVCLASS_ID 0x1106 91ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define IRMC_SYNC_CMD_SVCLASS_ID 0x1107 92ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define HEADSET_SVCLASS_ID 0x1108 93ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define CORDLESS_TELEPHONY_SVCLASS_ID 0x1109 94c420aef6fe7d316ee053e69f7e901db39443361bMarcel Holtmann#define AUDIO_SOURCE_SVCLASS_ID 0x110a 95c420aef6fe7d316ee053e69f7e901db39443361bMarcel Holtmann#define AUDIO_SINK_SVCLASS_ID 0x110b 966864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define AV_REMOTE_TARGET_SVCLASS_ID 0x110c 976864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define ADVANCED_AUDIO_SVCLASS_ID 0x110d 986864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define AV_REMOTE_SVCLASS_ID 0x110e 996864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define VIDEO_CONF_SVCLASS_ID 0x110f 100ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define INTERCOM_SVCLASS_ID 0x1110 101ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define FAX_SVCLASS_ID 0x1111 102ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define HEADSET_AGW_SVCLASS_ID 0x1112 1030ea7064b34d9f03e9aa7d8abeb7c0e6bcc8a37acMarcel Holtmann#define WAP_SVCLASS_ID 0x1113 1040ea7064b34d9f03e9aa7d8abeb7c0e6bcc8a37acMarcel Holtmann#define WAP_CLIENT_SVCLASS_ID 0x1114 105ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define PANU_SVCLASS_ID 0x1115 106ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define NAP_SVCLASS_ID 0x1116 107ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define GN_SVCLASS_ID 0x1117 1086864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define DIRECT_PRINTING_SVCLASS_ID 0x1118 1096864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define REFERENCE_PRINTING_SVCLASS_ID 0x1119 110ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define IMAGING_SVCLASS_ID 0x111a 111ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define IMAGING_RESPONDER_SVCLASS_ID 0x111b 1126864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define IMAGING_ARCHIVE_SVCLASS_ID 0x111c 1136864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define IMAGING_REFOBJS_SVCLASS_ID 0x111d 114ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define HANDSFREE_SVCLASS_ID 0x111e 1156864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HANDSFREE_AGW_SVCLASS_ID 0x111f 1166864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define DIRECT_PRT_REFOBJS_SVCLASS_ID 0x1120 1176864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define REFLECTED_UI_SVCLASS_ID 0x1121 1186864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define BASIC_PRINTING_SVCLASS_ID 0x1122 1196864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define PRINTING_STATUS_SVCLASS_ID 0x1123 120ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define HID_SVCLASS_ID 0x1124 1212d0eb2ad3222761c5c410fc9340ff23ce58680acMarcel Holtmann#define HCR_SVCLASS_ID 0x1125 1222d0eb2ad3222761c5c410fc9340ff23ce58680acMarcel Holtmann#define HCR_PRINT_SVCLASS_ID 0x1126 1232d0eb2ad3222761c5c410fc9340ff23ce58680acMarcel Holtmann#define HCR_SCAN_SVCLASS_ID 0x1127 124ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define CIP_SVCLASS_ID 0x1128 1256864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define VIDEO_CONF_GW_SVCLASS_ID 0x1129 1266864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UDI_MT_SVCLASS_ID 0x112a 1276864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UDI_TA_SVCLASS_ID 0x112b 1286864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define AV_SVCLASS_ID 0x112c 129735e59b37803748fea1077de064b285f78de1c10Marcel Holtmann#define SAP_SVCLASS_ID 0x112d 1308ce8108e712e40e1b9530c96f7ff6cbb32b5cb8bMarcel Holtmann#define PBAP_PCE_SVCLASS_ID 0x112e 1318ce8108e712e40e1b9530c96f7ff6cbb32b5cb8bMarcel Holtmann#define PBAP_PSE_SVCLASS_ID 0x112f 13273f2fe893f6801358ea4fb88dc8d24050c7d0ca5Marcel Holtmann#define PBAP_SVCLASS_ID 0x1130 133ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define PNP_INFO_SVCLASS_ID 0x1200 134ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define GENERIC_NETWORKING_SVCLASS_ID 0x1201 135ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define GENERIC_FILETRANS_SVCLASS_ID 0x1202 136ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define GENERIC_AUDIO_SVCLASS_ID 0x1203 137ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define GENERIC_TELEPHONY_SVCLASS_ID 0x1204 1386864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_SVCLASS_ID 0x1205 1396864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_IP_SVCLASS_ID 0x1206 1406864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_PAN_SVCLASS_ID 0x1300 1416864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_LAP_SVCLASS_ID 0x1301 1426864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_L2CAP_SVCLASS_ID 0x1302 143c420aef6fe7d316ee053e69f7e901db39443361bMarcel Holtmann#define VIDEO_SOURCE_SVCLASS_ID 0x1303 144c420aef6fe7d316ee053e69f7e901db39443361bMarcel Holtmann#define VIDEO_SINK_SVCLASS_ID 0x1304 1452fa38208982e7c7bb55ae97acd13dbf82dd24e88Marcel Holtmann#define VIDEO_DISTRIBUTION_SVCLASS_ID 0x1305 146d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define HDP_SVCLASS_ID 0x1400 147d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define HDP_SOURCE_SVCLASS_ID 0x1401 148d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define HDP_SINK_SVCLASS_ID 0x1402 14942e0ce5b430ac5e36c0d21bdddcaf1fe83e025f5Marcel Holtmann#define APPLE_AGENT_SVCLASS_ID 0x2112 150df3c8e1ebb8d6cdf0e3cfe1cde16d2db8a75871cClaudio Takahasi#define GENERIC_ATTRIB_SVCLASS_ID 0x1801 151ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 152ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 153ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * Standard profile descriptor identifiers; note these 154ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * may be identical to some of the service classes defined above 155ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 1566864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define SDP_SERVER_PROFILE_ID SDP_SERVER_SVCLASS_ID 1576864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define BROWSE_GRP_DESC_PROFILE_ID BROWSE_GRP_DESC_SVCLASS_ID 1586864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define SERIAL_PORT_PROFILE_ID SERIAL_PORT_SVCLASS_ID 1596864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define LAN_ACCESS_PROFILE_ID LAN_ACCESS_SVCLASS_ID 1606864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define DIALUP_NET_PROFILE_ID DIALUP_NET_SVCLASS_ID 1616864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define IRMC_SYNC_PROFILE_ID IRMC_SYNC_SVCLASS_ID 1626864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define OBEX_OBJPUSH_PROFILE_ID OBEX_OBJPUSH_SVCLASS_ID 1636864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define OBEX_FILETRANS_PROFILE_ID OBEX_FILETRANS_SVCLASS_ID 1646864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define IRMC_SYNC_CMD_PROFILE_ID IRMC_SYNC_CMD_SVCLASS_ID 1656864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HEADSET_PROFILE_ID HEADSET_SVCLASS_ID 1666864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define CORDLESS_TELEPHONY_PROFILE_ID CORDLESS_TELEPHONY_SVCLASS_ID 1676864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define AUDIO_SOURCE_PROFILE_ID AUDIO_SOURCE_SVCLASS_ID 1686864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define AUDIO_SINK_PROFILE_ID AUDIO_SINK_SVCLASS_ID 1696864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define AV_REMOTE_TARGET_PROFILE_ID AV_REMOTE_TARGET_SVCLASS_ID 1706864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define ADVANCED_AUDIO_PROFILE_ID ADVANCED_AUDIO_SVCLASS_ID 1716864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define AV_REMOTE_PROFILE_ID AV_REMOTE_SVCLASS_ID 1726864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define VIDEO_CONF_PROFILE_ID VIDEO_CONF_SVCLASS_ID 1736864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define INTERCOM_PROFILE_ID INTERCOM_SVCLASS_ID 1746864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define FAX_PROFILE_ID FAX_SVCLASS_ID 1756864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HEADSET_AGW_PROFILE_ID HEADSET_AGW_SVCLASS_ID 1766864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define WAP_PROFILE_ID WAP_SVCLASS_ID 1776864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define WAP_CLIENT_PROFILE_ID WAP_CLIENT_SVCLASS_ID 1786864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define PANU_PROFILE_ID PANU_SVCLASS_ID 1796864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define NAP_PROFILE_ID NAP_SVCLASS_ID 1806864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define GN_PROFILE_ID GN_SVCLASS_ID 1816864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define DIRECT_PRINTING_PROFILE_ID DIRECT_PRINTING_SVCLASS_ID 1826864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define REFERENCE_PRINTING_PROFILE_ID REFERENCE_PRINTING_SVCLASS_ID 1836864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define IMAGING_PROFILE_ID IMAGING_SVCLASS_ID 1846864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define IMAGING_RESPONDER_PROFILE_ID IMAGING_RESPONDER_SVCLASS_ID 1856864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define IMAGING_ARCHIVE_PROFILE_ID IMAGING_ARCHIVE_SVCLASS_ID 1866864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define IMAGING_REFOBJS_PROFILE_ID IMAGING_REFOBJS_SVCLASS_ID 1876864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HANDSFREE_PROFILE_ID HANDSFREE_SVCLASS_ID 1886864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HANDSFREE_AGW_PROFILE_ID HANDSFREE_AGW_SVCLASS_ID 1896864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define DIRECT_PRT_REFOBJS_PROFILE_ID DIRECT_PRT_REFOBJS_SVCLASS_ID 1906864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define REFLECTED_UI_PROFILE_ID REFLECTED_UI_SVCLASS_ID 1916864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define BASIC_PRINTING_PROFILE_ID BASIC_PRINTING_SVCLASS_ID 1926864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define PRINTING_STATUS_PROFILE_ID PRINTING_STATUS_SVCLASS_ID 1936864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HID_PROFILE_ID HID_SVCLASS_ID 1946864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HCR_PROFILE_ID HCR_SCAN_SVCLASS_ID 1956864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HCR_PRINT_PROFILE_ID HCR_PRINT_SVCLASS_ID 1966864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define HCR_SCAN_PROFILE_ID HCR_SCAN_SVCLASS_ID 1976864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define CIP_PROFILE_ID CIP_SVCLASS_ID 1986864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define VIDEO_CONF_GW_PROFILE_ID VIDEO_CONF_GW_SVCLASS_ID 1996864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UDI_MT_PROFILE_ID UDI_MT_SVCLASS_ID 2006864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UDI_TA_PROFILE_ID UDI_TA_SVCLASS_ID 2016864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define AV_PROFILE_ID AV_SVCLASS_ID 2026864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define SAP_PROFILE_ID SAP_SVCLASS_ID 20373f2fe893f6801358ea4fb88dc8d24050c7d0ca5Marcel Holtmann#define PBAP_PCE_PROFILE_ID PBAP_PCE_SVCLASS_ID 20473f2fe893f6801358ea4fb88dc8d24050c7d0ca5Marcel Holtmann#define PBAP_PSE_PROFILE_ID PBAP_PSE_SVCLASS_ID 20573f2fe893f6801358ea4fb88dc8d24050c7d0ca5Marcel Holtmann#define PBAP_PROFILE_ID PBAP_SVCLASS_ID 2066864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define PNP_INFO_PROFILE_ID PNP_INFO_SVCLASS_ID 2076864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define GENERIC_NETWORKING_PROFILE_ID GENERIC_NETWORKING_SVCLASS_ID 2086864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define GENERIC_FILETRANS_PROFILE_ID GENERIC_FILETRANS_SVCLASS_ID 2096864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define GENERIC_AUDIO_PROFILE_ID GENERIC_AUDIO_SVCLASS_ID 2106864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define GENERIC_TELEPHONY_PROFILE_ID GENERIC_TELEPHONY_SVCLASS_ID 2116864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_PROFILE_ID UPNP_SVCLASS_ID 2126864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_IP_PROFILE_ID UPNP_IP_SVCLASS_ID 2136864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_PAN_PROFILE_ID UPNP_PAN_SVCLASS_ID 2146864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_LAP_PROFILE_ID UPNP_LAP_SVCLASS_ID 2156864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define UPNP_L2CAP_PROFILE_ID UPNP_L2CAP_SVCLASS_ID 2166864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define VIDEO_SOURCE_PROFILE_ID VIDEO_SOURCE_SVCLASS_ID 2176864c723272d4790a2fec4a1c23fa5e46ac15e5fMarcel Holtmann#define VIDEO_SINK_PROFILE_ID VIDEO_SINK_SVCLASS_ID 2182fa38208982e7c7bb55ae97acd13dbf82dd24e88Marcel Holtmann#define VIDEO_DISTRIBUTION_PROFILE_ID VIDEO_DISTRIBUTION_SVCLASS_ID 219d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define HDP_PROFILE_ID HDP_SVCLASS_ID 220d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define HDP_SOURCE_PROFILE_ID HDP_SOURCE_SVCLASS_ID 221d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define HDP_SINK_PROFILE_ID HDP_SINK_SVCLASS_ID 22242e0ce5b430ac5e36c0d21bdddcaf1fe83e025f5Marcel Holtmann#define APPLE_AGENT_PROFILE_ID APPLE_AGENT_SVCLASS_ID 223a7eb76097e46eddce1a07b6e99ddd8830886f259Claudio Takahasi#define GENERIC_ACCESS_PROFILE_ID 0x1800 224df3c8e1ebb8d6cdf0e3cfe1cde16d2db8a75871cClaudio Takahasi#define GENERIC_ATTRIB_PROFILE_ID GENERIC_ATTRIB_SVCLASS_ID 225ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 226ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 227d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter * Compatibility macros for the old MDP acronym 228d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter */ 229d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define MDP_SVCLASS_ID HDP_SVCLASS_ID 230d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define MDP_SOURCE_SVCLASS_ID HDP_SOURCE_SVCLASS_ID 231d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define MDP_SINK_SVCLASS_ID HDP_SINK_SVCLASS_ID 232d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define MDP_PROFILE_ID HDP_PROFILE_ID 233d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define MDP_SOURCE_PROFILE_ID HDP_SOURCE_PROFILE_ID 234d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter#define MDP_SINK_PROFILE_ID HDP_SINK_PROFILE_ID 235d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter 236d48df6f540535a0dc9eafb9555916e9a4dba7780Elvis Pfützenreuter/* 237ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * Attribute identifier codes 238ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 2392fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_SERVER_RECORD_HANDLE 0x0000 240ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 241ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 2422fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * Possible values for attribute-id are listed below. 243ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * See SDP Spec, section "Service Attribute Definitions" for more details. 244ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 2452fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_RECORD_HANDLE 0x0000 2462fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_SVCLASS_ID_LIST 0x0001 2472fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_RECORD_STATE 0x0002 2482fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_SERVICE_ID 0x0003 2492fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_PROTO_DESC_LIST 0x0004 2502fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_BROWSE_GRP_LIST 0x0005 2512fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_LANG_BASE_ATTR_ID_LIST 0x0006 2522fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_SVCINFO_TTL 0x0007 2532fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_SERVICE_AVAILABILITY 0x0008 2542fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_PFILE_DESC_LIST 0x0009 2552fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_DOC_URL 0x000a 2562fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_CLNT_EXEC_URL 0x000b 2572fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_ICON_URL 0x000c 2582fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_ADD_PROTO_DESC_LIST 0x000d 259ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 2602fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_GROUP_ID 0x0200 261ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ATTR_IP_SUBNET 0x0200 2622fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_VERSION_NUM_LIST 0x0200 2633faf12fdb7f9d7a043ad526e8e8d1788d4956a4bJosé Antonio Santos Cadenas#define SDP_ATTR_SUPPORTED_FEATURES_LIST 0x0200 2642fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_SVCDB_STATE 0x0201 2652fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann 266ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ATTR_SERVICE_VERSION 0x0300 2672fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_EXTERNAL_NETWORK 0x0301 268ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ATTR_SUPPORTED_DATA_STORES_LIST 0x0301 2693faf12fdb7f9d7a043ad526e8e8d1788d4956a4bJosé Antonio Santos Cadenas#define SDP_ATTR_DATA_EXCHANGE_SPEC 0x0301 2702fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_FAX_CLASS1_SUPPORT 0x0302 271ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ATTR_REMOTE_AUDIO_VOLUME_CONTROL 0x0302 2723faf12fdb7f9d7a043ad526e8e8d1788d4956a4bJosé Antonio Santos Cadenas#define SDP_ATTR_MCAP_SUPPORTED_PROCEDURES 0x0302 2732fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_FAX_CLASS20_SUPPORT 0x0303 274ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ATTR_SUPPORTED_FORMATS_LIST 0x0303 2752fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_FAX_CLASS2_SUPPORT 0x0304 2762fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_AUDIO_FEEDBACK_SUPPORT 0x0305 2772fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_NETWORK_ADDRESS 0x0306 2782fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_WAP_GATEWAY 0x0307 2792fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_HOMEPAGE_URL 0x0308 2802fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_WAP_STACK_TYPE 0x0309 2812fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_SECURITY_DESC 0x030a 2822fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_NET_ACCESS_TYPE 0x030b 2832fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_MAX_NET_ACCESSRATE 0x030c 2842fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_IP4_SUBNET 0x030d 2852fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_IP6_SUBNET 0x030e 2862fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_SUPPORTED_CAPABILITIES 0x0310 2872fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_SUPPORTED_FEATURES 0x0311 2882fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_SUPPORTED_FUNCTIONS 0x0312 2892fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann#define SDP_ATTR_TOTAL_IMAGING_DATA_CAPACITY 0x0313 290b91cf84c987b8cc4bdfa9c0fb0daf88089c5687aMarcel Holtmann#define SDP_ATTR_SUPPORTED_REPOSITORIES 0x0314 291ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 29201a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_SPECIFICATION_ID 0x0200 29301a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_VENDOR_ID 0x0201 29401a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_PRODUCT_ID 0x0202 29501a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_VERSION 0x0203 29601a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_PRIMARY_RECORD 0x0204 29701a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_VENDOR_ID_SOURCE 0x0205 29801a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann 29901a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_DEVICE_RELEASE_NUMBER 0x0200 30001a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_PARSER_VERSION 0x0201 30101a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_DEVICE_SUBCLASS 0x0202 30201a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_COUNTRY_CODE 0x0203 30301a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_VIRTUAL_CABLE 0x0204 30401a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_RECONNECT_INITIATE 0x0205 30501a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_DESCRIPTOR_LIST 0x0206 30601a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_LANG_ID_BASE_LIST 0x0207 30701a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_SDP_DISABLE 0x0208 30801a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_BATTERY_POWER 0x0209 30901a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_REMOTE_WAKEUP 0x020a 31001a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_PROFILE_VERSION 0x020b 31101a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_SUPERVISION_TIMEOUT 0x020c 31201a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_NORMALLY_CONNECTABLE 0x020d 31301a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann#define SDP_ATTR_HID_BOOT_DEVICE 0x020e 31401a43396075f47dffb2d6fffc9a2d3bb713a7f8dMarcel Holtmann 315ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 316078185a2304aed7f0f4f109b4cc45c1a507bce94José Antonio Santos Cadenas * These identifiers are based on the SDP spec stating that 317ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * "base attribute id of the primary (universal) language must be 0x0100" 3182fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * 3192fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * Other languages should have their own offset; e.g.: 3202fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * #define XXXLangBase yyyy 3212fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * #define AttrServiceName_XXX 0x0000+XXXLangBase 322ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 3232e637a340f9cd7b8716336a6c43f3a06e8a04ee9Marcel Holtmann#define SDP_PRIMARY_LANG_BASE 0x0100 324ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 325ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ATTR_SVCNAME_PRIMARY 0x0000 + SDP_PRIMARY_LANG_BASE 326ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ATTR_SVCDESC_PRIMARY 0x0001 + SDP_PRIMARY_LANG_BASE 327ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ATTR_PROVNAME_PRIMARY 0x0002 + SDP_PRIMARY_LANG_BASE 328ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 329ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 330ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * The Data representation in SDP PDUs (pps 339, 340 of BT SDP Spec) 331ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * These are the exact data type+size descriptor values 332ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * that go into the PDU buffer. 333ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * 334ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * The datatype (leading 5bits) + size descriptor (last 3 bits) 335ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * is 8 bits. The size descriptor is critical to extract the 336ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * right number of bytes for the data value from the PDU. 337ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * 338ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * For most basic types, the datatype+size descriptor is 339ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * straightforward. However for constructed types and strings, 340ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * the size of the data is in the next "n" bytes following the 341ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * 8 bits (datatype+size) descriptor. Exactly what the "n" is 342ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * specified in the 3 bits of the data size descriptor. 343ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * 344ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * TextString and URLString can be of size 2^{8, 16, 32} bytes 345ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * DataSequence and DataSequenceAlternates can be of size 2^{8, 16, 32} 346ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * The size are computed post-facto in the API and are not known apriori 347ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 3482e637a340f9cd7b8716336a6c43f3a06e8a04ee9Marcel Holtmann#define SDP_DATA_NIL 0x00 3492e637a340f9cd7b8716336a6c43f3a06e8a04ee9Marcel Holtmann#define SDP_UINT8 0x08 350ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_UINT16 0x09 351ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_UINT32 0x0A 352ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_UINT64 0x0B 353ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_UINT128 0x0C 354ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INT8 0x10 355ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INT16 0x11 356ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INT32 0x12 357ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INT64 0x13 358ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INT128 0x14 359ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_UUID_UNSPEC 0x18 360ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_UUID16 0x19 361ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_UUID32 0x1A 362ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_UUID128 0x1C 363ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_TEXT_STR_UNSPEC 0x20 364ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_TEXT_STR8 0x25 365ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_TEXT_STR16 0x26 366ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_TEXT_STR32 0x27 367ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_BOOL 0x28 368ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SEQ_UNSPEC 0x30 369ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SEQ8 0x35 370ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SEQ16 0x36 371ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SEQ32 0x37 372ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ALT_UNSPEC 0x38 373ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ALT8 0x3D 374ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ALT16 0x3E 375ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ALT32 0x3F 376ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_URL_STR_UNSPEC 0x40 377ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_URL_STR8 0x45 378ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_URL_STR16 0x46 379ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_URL_STR32 0x47 380ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 381ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 382ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * The PDU identifiers of SDP packets between client and server 383ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 384ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_ERROR_RSP 0x01 385ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_SEARCH_REQ 0x02 386ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_SEARCH_RSP 0x03 387ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_ATTR_REQ 0x04 388ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_ATTR_RSP 0x05 389ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_SEARCH_ATTR_REQ 0x06 390ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_SEARCH_ATTR_RSP 0x07 391ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 392ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 393ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * Some additions to support service registration. 394ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * These are outside the scope of the Bluetooth specification 395ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 396ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_REGISTER_REQ 0x75 397ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_REGISTER_RSP 0x76 398ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_UPDATE_REQ 0x77 399ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_UPDATE_RSP 0x78 400ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_REMOVE_REQ 0x79 401ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_SVC_REMOVE_RSP 0x80 402ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 403ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 404ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * SDP Error codes 405ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 406ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INVALID_VERSION 0x0001 407ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INVALID_RECORD_HANDLE 0x0002 408ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INVALID_SYNTAX 0x0003 409ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INVALID_PDU_SIZE 0x0004 410ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_INVALID_CSTATE 0x0005 411ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 412ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 413ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * SDP PDU 414ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 415ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmanntypedef struct { 416ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint8_t pdu_id; 417ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint16_t tid; 418ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint16_t plen; 419ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann} __attribute__ ((packed)) sdp_pdu_hdr_t; 420ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 421ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 422ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * Common definitions for attributes in the SDP. 4232fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * Should the type of any of these change, you need only make a change here. 424ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 425ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 426ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmanntypedef struct { 427ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint8_t type; 428ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann union { 429ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint16_t uuid16; 430ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint32_t uuid32; 431ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint128_t uuid128; 432ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann } value; 433ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann} uuid_t; 434ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 435ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#define SDP_IS_UUID(x) ((x) == SDP_UUID16 || (x) == SDP_UUID32 || (x) ==SDP_UUID128) 436ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 437ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmanntypedef struct _sdp_list sdp_list_t; 438ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmannstruct _sdp_list { 439ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann sdp_list_t *next; 440ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann void *data; 441ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann}; 442ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 443ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 444ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * User-visible strings can be in many languages 445ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * in addition to the universal language. 446ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * 4472fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * Language meta-data includes language code in ISO639 4482fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * followed by the encoding format. The third field in this 4492fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * structure is the attribute offset for the language. 4502fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * User-visible strings in the specified language can be 451ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * obtained at this offset. 452ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 453ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmanntypedef struct { 454ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint16_t code_ISO639; 455ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint16_t encoding; 456ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint16_t base_offset; 457ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann} sdp_lang_attr_t; 458ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 459ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann/* 4602fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * Profile descriptor is the Bluetooth profile metadata. If a 4612fda2326e810170225ddc7bf0c43479b617a1a5fMarcel Holtmann * service conforms to a well-known profile, then its profile 462ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * identifier (UUID) is an attribute of the service. In addition, 463ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann * if the profile has a version number it is specified here. 464ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann */ 465ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmanntypedef struct { 466ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uuid_t uuid; 467ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint16_t version; 468ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann} sdp_profile_desc_t; 469ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 470ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmanntypedef struct { 471ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint8_t major; 472ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint8_t minor; 473ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann} sdp_version_t; 474ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 475ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmanntypedef struct { 476cfa3a02e2593bd72ce4a83f521e1e89a5874ea7dMarcel Holtmann uint8_t *data; 477cfa3a02e2593bd72ce4a83f521e1e89a5874ea7dMarcel Holtmann uint32_t data_size; 478cfa3a02e2593bd72ce4a83f521e1e89a5874ea7dMarcel Holtmann uint32_t buf_size; 479ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann} sdp_buf_t; 480ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 481ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmanntypedef struct { 482ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint32_t handle; 483ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 4844c6bbf0a08426efd008c1b9e439c693a826ee708Marcel Holtmann /* Search pattern: a sequence of all UUIDs seen in this record */ 485ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann sdp_list_t *pattern; 486ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann sdp_list_t *attrlist; 4874c6bbf0a08426efd008c1b9e439c693a826ee708Marcel Holtmann 4884c6bbf0a08426efd008c1b9e439c693a826ee708Marcel Holtmann /* Main service class for Extended Inquiry Response */ 4894c6bbf0a08426efd008c1b9e439c693a826ee708Marcel Holtmann uuid_t svclass; 490ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann} sdp_record_t; 491ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 492ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmanntypedef struct sdp_data_struct sdp_data_t; 493ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmannstruct sdp_data_struct { 494ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint8_t dtd; 495ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint16_t attrId; 496ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann union { 497ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann int8_t int8; 498ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann int16_t int16; 499ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann int32_t int32; 500ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann int64_t int64; 501ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint128_t int128; 502ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint8_t uint8; 503ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint16_t uint16; 504ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint32_t uint32; 505ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint64_t uint64; 506ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uint128_t uint128; 507ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann uuid_t uuid; 508ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann char *str; 509ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann sdp_data_t *dataseq; 510ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann } val; 511ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann sdp_data_t *next; 512ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann int unitSize; 513ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann}; 514ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann 515764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann#ifdef __cplusplus 516764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann} 517ca16ae22dd4542899a4a8c9a843fc6f7e72dbab4Marcel Holtmann#endif 518764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann 519764abe23a0d4ede999f1f34ee0e310c0eeaaff79Marcel Holtmann#endif /* __SDP_H */ 520