13ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi/* 23ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * 33ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * BlueZ - Bluetooth protocol stack for Linux 43ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * 53ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * Copyright (C) 2011 Nokia Corporation 63ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * Copyright (C) 2011 Marcel Holtmann <marcel@holtmann.org> 73ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * 83ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * 93ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * This program is free software; you can redistribute it and/or modify 103ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * it under the terms of the GNU General Public License as published by 113ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * the Free Software Foundation; either version 2 of the License, or 123ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * (at your option) any later version. 133ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * 143ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * This program is distributed in the hope that it will be useful, 153ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * but WITHOUT ANY WARRANTY; without even the implied warranty of 163ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 173ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * GNU General Public License for more details. 183ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * 193ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * You should have received a copy of the GNU General Public License 203ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * along with this program; if not, write to the Free Software 213ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 223ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi * 233ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi */ 243ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi 253ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi#ifndef __BLUETOOTH_UUID_H 263ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi#define __BLUETOOTH_UUID_H 273ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi 283ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi#ifdef __cplusplus 293ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasiextern "C" { 303ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi#endif 313ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi 323ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi#include <stdint.h> 33bb096e674c6a143db73fb636aa611a392cdb92f8Elvis Pfützenreuter#include <bluetooth/bluetooth.h> 343ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi 353ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasitypedef struct { 363ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi enum { 37bb096e674c6a143db73fb636aa611a392cdb92f8Elvis Pfützenreuter BT_UUID_UNSPEC = 0, 383ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi BT_UUID16 = 16, 393ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi BT_UUID32 = 32, 403ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi BT_UUID128 = 128, 413ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi } type; 423ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi union { 433ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi uint16_t u16; 443ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi uint32_t u32; 453ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi uint128_t u128; 463ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi } value; 473ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi} bt_uuid_t; 483ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi 493ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasiint bt_uuid16_create(bt_uuid_t *btuuid, uint16_t value); 503ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasiint bt_uuid32_create(bt_uuid_t *btuuid, uint32_t value); 513ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasiint bt_uuid128_create(bt_uuid_t *btuuid, uint128_t value); 523ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi 533ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasiint bt_uuid_cmp(const bt_uuid_t *uuid1, const bt_uuid_t *uuid2); 543ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasivoid bt_uuid_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst); 553ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi 56bb096e674c6a143db73fb636aa611a392cdb92f8Elvis Pfützenreuter#define MAX_LEN_UUID_STR 37 57bb096e674c6a143db73fb636aa611a392cdb92f8Elvis Pfützenreuter 58bb096e674c6a143db73fb636aa611a392cdb92f8Elvis Pfützenreuterint bt_uuid_to_string(const bt_uuid_t *uuid, char *str, size_t n); 59bb096e674c6a143db73fb636aa611a392cdb92f8Elvis Pfützenreuterint bt_string_to_uuid(bt_uuid_t *uuid, const char *string); 60bb096e674c6a143db73fb636aa611a392cdb92f8Elvis Pfützenreuter 613ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi#ifdef __cplusplus 623ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi} 633ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi#endif 643ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi 653ed993262f2e172971fabb13aea9cf5d28bd9ed3Claudio Takahasi#endif /* __BLUETOOTH_UUID_H */ 66