1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/****************************************************************************** 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * Copyright (C) 2010-2012 Broadcom Corporation 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * Licensed under the Apache License, Version 2.0 (the "License"); 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * you may not use this file except in compliance with the License. 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * You may obtain a copy of the License at: 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * http://www.apache.org/licenses/LICENSE-2.0 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * Unless required by applicable law or agreed to in writing, software 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * distributed under the License is distributed on an "AS IS" BASIS, 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * See the License for the specific language governing permissions and 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * limitations under the License. 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ******************************************************************************/ 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/****************************************************************************** 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * This file contains definitions for some utility functions to help parse 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * and build NFC Data Exchange Format (NDEF) messages 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch * 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ******************************************************************************/ 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef NDEF_UTILS_H 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NDEF_UTILS_H 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "bt_types.h" 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NDEF_MB_MASK 0x80 /* Message Begin */ 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NDEF_ME_MASK 0x40 /* Message End */ 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NDEF_CF_MASK 0x20 /* Chunk Flag */ 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NDEF_SR_MASK 0x10 /* Short Record */ 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NDEF_IL_MASK 0x08 /* ID Length */ 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#define NDEF_TNF_MASK 0x07 /* Type Name Format */ 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/* NDEF Type Name Format */ 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NDEF_TNF_EMPTY 0 /* Empty (type/id/payload len =0) */ 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define NDEF_TNF_WKT 1 /* NFC Forum well-known type/RTD */ 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define NDEF_TNF_MEDIA 2 /* Media-type as defined in RFC 2046 */ 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define NDEF_TNF_URI 3 /* Absolute URI as defined in RFC 3986 */ 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define NDEF_TNF_EXT 4 /* NFC Forum external type/RTD */ 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define NDEF_TNF_UNKNOWN 5 /* Unknown (type len =0) */ 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define NDEF_TNF_UNCHANGED 6 /* Unchanged (type len =0) */ 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NDEF_TNF_RESERVED 7 /* Reserved */ 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen/* Define the status code returned from the Validate, Parse or Build functions 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen*/ 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenenum 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch{ 52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen NDEF_OK, /* 0 - OK */ 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_REC_NOT_FOUND, /* 1 - No record matching the find criteria */ 55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_MSG_TOO_SHORT, /* 2 - Message was too short (< 3 bytes) */ 56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_MSG_NO_MSG_BEGIN, /* 3 - No 'begin' flag at start of message */ 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_MSG_NO_MSG_END, /* 4 - No 'end' flag at end of message */ 58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_MSG_EXTRA_MSG_BEGIN, /* 5 - 'begin' flag after start of message */ 59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_MSG_UNEXPECTED_CHUNK, /* 6 - Unexpected chunk found */ 60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_MSG_INVALID_EMPTY_REC, /* 7 - Empty record with non-zero contents */ 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_MSG_INVALID_CHUNK, /* 8 - Invalid chunk found */ 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_MSG_LENGTH_MISMATCH, /* 9 - Overall message length doesn't match */ 63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NDEF_MSG_INSUFFICIENT_MEM /* 10 - Insuffiecient memory to add record */ 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 65ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsentypedef UINT8 tNDEF_STATUS; 66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define HR_REC_TYPE_LEN 2 /* Handover Request Record Type */ 69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define HS_REC_TYPE_LEN 2 /* Handover Select Record Type */ 70ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define HC_REC_TYPE_LEN 2 /* Handover Carrier recrod Type */ 71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CR_REC_TYPE_LEN 2 /* Collision Resolution Record Type */ 72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define AC_REC_TYPE_LEN 2 /* Alternative Carrier Record Type */ 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define ERR_REC_TYPE_LEN 3 /* Error Record Type */ 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define BT_OOB_REC_TYPE_LEN 32 /* Bluetooth OOB Data Type */ 75c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 76c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 77c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifdef __cplusplus 78c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochextern "C" { 79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 81c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/* Define prefix for exporting APIs from libraries */ 82c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifdef NFC_DLL 83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define EXPORT_NDEF_API __declspec(dllexport) /* Windows DLL export prefix */ 84c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#else 85c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define EXPORT_NDEF_API 86c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 88ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen/* Functions to parse a received NDEF Message 89c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*/ 90c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 91c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 92c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgValidate 93c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 94c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function validates an NDEF message. 95c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 96c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns TRUE if all OK, or FALSE if the message is invalid. 97c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 99c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgValidate (UINT8 *p_msg, UINT32 msg_len, BOOLEAN b_allow_chunks); 100c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 101c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 102c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 103c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgGetNumRecs 104c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 105c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets the number of records in the given NDEF 106c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** message. 107c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 108c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns The record count, or 0 if the message is invalid. 109c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 110c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 111c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern INT32 NDEF_MsgGetNumRecs (UINT8 *p_msg); 112c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 113c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 114c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgGetRecLength 116c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 117c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function returns length of the current record in the given 118c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** NDEF message. 119c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 120c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Length of record 121c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 123c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT32 NDEF_MsgGetRecLength (UINT8 *p_cur_rec); 124ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 125c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 126c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 127c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgGetNextRec 128c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 129c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the next record after the 130c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** current one. 131c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 132c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Pointer to the start of the record, or NULL if no more 133c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 134c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 135c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_MsgGetNextRec (UINT8 *p_cur_rec); 136c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 137c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 138c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 139c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgGetRecByIndex 140c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 141c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the record with the given 142c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** index (0-based index) in the given NDEF message. 143c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 144c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Pointer to the start of the record, or NULL 145c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 146c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 147c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_MsgGetRecByIndex (UINT8 *p_msg, INT32 index); 148c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 149c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 150c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 151c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgGetLastRecInMsg 152c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 153c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the last record in the 154c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** given NDEF message. 155c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 156c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Pointer to the start of the last record, or NULL if some problem 157c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 158c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 159c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_MsgGetLastRecInMsg (UINT8 *p_msg); 160c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 161c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 162c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 163c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgGetFirstRecByType 164c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 165c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the first record with the given 166c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** record type in the given NDEF message. 167c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 168c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Pointer to the start of the record, or NULL 169c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 170c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 171c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_MsgGetFirstRecByType (UINT8 *p_msg, UINT8 tnf, UINT8 *p_type, UINT8 tlen); 172c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 173c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 174c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 175c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgGetNextRecByType 176c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 177c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the next record with the given 178c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** record type in the given NDEF message. 179c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 180c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Pointer to the start of the record, or NULL 181c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 182c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 183c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_MsgGetNextRecByType (UINT8 *p_cur_rec, UINT8 tnf, UINT8 *p_type, UINT8 tlen); 184c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 185c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 186c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 187c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgGetFirstRecById 188c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 189c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the first record with the given 190c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** record id in the given NDEF message. 191c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 192c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Pointer to the start of the record, or NULL 193c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 194c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 195c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_MsgGetFirstRecById (UINT8 *p_msg, UINT8 *p_id, UINT8 ilen); 196c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 197c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 198c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 199c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgGetNextRecById 200c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 201c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the next record with the given 202c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** record id in the given NDEF message. 203c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 204c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Pointer to the start of the record, or NULL 205c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 206c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 207c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_MsgGetNextRecById (UINT8 *p_cur_rec, UINT8 *p_id, UINT8 ilen); 208c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 209c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 210c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 211c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_RecGetType 212c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 213c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the record type for the given NDEF record. 214c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 215c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Pointer to Type (NULL if none). TNF and len are filled in. 216c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 217c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 218c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_RecGetType (UINT8 *p_rec, UINT8 *p_tnf, UINT8 *p_type_len); 219c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 220c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 221c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 222c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_RecGetId 223c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 224c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the record id for the given NDEF record. 225c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 226c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns Pointer to Id (NULL if none). ID Len is filled in. 227c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 228c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 229c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_RecGetId (UINT8 *p_rec, UINT8 *p_id_len); 230c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 231c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 232c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 233c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_RecGetPayload 234c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 235c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function gets a pointer to the payload for the given NDEF record. 236c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 237c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns a pointer to the payload (NULL if none). Payload len filled in. 238c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 239c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 240c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern UINT8 *NDEF_RecGetPayload (UINT8 *p_rec, UINT32 *p_payload_len); 241c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 242c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 243c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/* Functions to build an NDEF Message 244c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*/ 245c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 246c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 247c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgInit 248c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 249c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function initializes an NDEF message. 250c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 251c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns void 252c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** *p_cur_size is initialized to 0 253c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 254c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 255c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern void NDEF_MsgInit (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size); 256c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 257c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 258c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 259c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAddRec 260c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 261c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function adds an NDEF record to the end of an NDEF message. 262c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 263c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns OK, or error if the record did not fit 264c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** *p_cur_size is updated 265c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 266c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 267c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAddRec (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 268c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 tnf, UINT8 *p_type, UINT8 type_len, 269c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 *p_id, UINT8 id_len, 270c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 *p_payload, UINT32 payload_len); 271c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 272c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 273c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 274c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgInsertRec 275c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 276c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function inserts a record at a specific index into the 277c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** given NDEF message 278c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 279c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns OK, or error if the record did not fit 280c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** *p_cur_size is updated 281c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 282c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 283c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgInsertRec (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, INT32 index, 284c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 tnf, UINT8 *p_type, UINT8 type_len, 285c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 *p_id, UINT8 id_len, 286c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 *p_payload, UINT32 payload_len); 287c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 288c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 289c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 290c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAppendRec 291c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 292c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function adds NDEF records to the end of an NDEF message. 293c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 294c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns OK, or error if the record did not fit 295c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** *p_cur_size is updated 296c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 297c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 298c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAppendRec (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 299c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 *p_new_rec, UINT32 new_rec_len); 300c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 301c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 302c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 303c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAppendPayload 304c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 305c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function appends extra payload to a specific record in the 306c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** given NDEF message 307c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 308c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns OK, or error if the extra payload did not fit 309c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** *p_cur_size is updated 310c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 311c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 312c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAppendPayload (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 313c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 *p_rec, UINT8 *p_add_pl, UINT32 add_pl_len); 314c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 315c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 316c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 317c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgReplacePayload 318c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 319c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function replaces the payload of a specific record in the 320c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** given NDEF message 321c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 322c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns OK, or error if the new payload did not fit 323c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** *p_cur_size is updated 324c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 325c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 326c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgReplacePayload (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 327c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 *p_rec, UINT8 *p_new_pl, UINT32 new_pl_len); 328c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 329c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 330c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 331c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgReplaceType 332c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 333c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function replaces the type field of a specific record in the 334c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** given NDEF message 335c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 336c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns OK, or error if the new type field did not fit 337c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** *p_cur_size is updated 338c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 339c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 340c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgReplaceType (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 341c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 *p_rec, UINT8 *p_new_type, UINT8 new_type_len); 342c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 343c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 344c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 345c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgReplaceId 346c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 347c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function replaces the ID field of a specific record in the 348c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** given NDEF message 349c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 350c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns OK, or error if the new ID field did not fit 351c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** *p_cur_size is updated 352c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 353c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 354c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgReplaceId (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 355c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 *p_rec, UINT8 *p_new_id, UINT8 new_id_len); 356c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 357c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 358c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 359c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgRemoveRec 360c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 361c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function removes the record at the given 362c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** index in the given NDEF message. 363c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 364c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns OK, or error if the index was invalid 365c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** *p_cur_size is updated 366c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 367c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 368c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgRemoveRec (UINT8 *p_msg, UINT32 *p_cur_size, INT32 index); 369c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 370c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 371c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 372c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgCopyAndDechunk 373c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 374c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function copies and de-chunks an NDEF message. 375c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** It is assumed that the destination is at least as large 376c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** as the source, since the source may not actually contain 377c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** any chunks. 378c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 379c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns The output byte count 380c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 381c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 382c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgCopyAndDechunk (UINT8 *p_src, UINT32 src_len, UINT8 *p_dest, UINT32 *p_out_len); 383c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 384c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 385c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 386c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgCreateWktHr 387c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 388c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function creates Handover Request Record with version. 389c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 390c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 391c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 392c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 393c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgCreateWktHr (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 394c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 version ); 395c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 396c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 397c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 398c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgCreateWktHs 399c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 400c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function creates Handover Select Record with version. 401c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 402c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 403c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 404c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 405c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgCreateWktHs (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 406c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 version ); 407c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 408c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 409c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 410c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAddWktHc 411c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 412c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function adds Handover Carrier Record. 413c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 414c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 415c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 416c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 417c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAddWktHc (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 418c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch char *p_id_str, UINT8 ctf, 419c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 carrier_type_len, UINT8 *p_carrier_type, 420c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 carrier_data_len, UINT8 *p_carrier_data); 421c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 422c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 423c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 424c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAddWktAc 425c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 426c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function adds Alternative Carrier Record. 427c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 428c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 429c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 430c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 431c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAddWktAc (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 432c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 cps, char *p_carrier_data_ref_str, 433c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 aux_data_ref_count, char *p_aux_data_ref_str[]); 434c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 435c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 436c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 437c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAddWktCr 438c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 439c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function adds Collision Resolution Record. 440c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 441c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 442c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 443c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 444c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAddWktCr (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 445c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT16 random_number ); 446c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 447c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 448c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 449c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAddWktErr 450c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 451c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function adds Error Record. 452c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 453c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 454c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 455c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 456c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAddWktErr (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 457c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 error_reason, UINT32 error_data ); 458c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 459c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 460ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen** 461c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAddMediaBtOob 462c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 463c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function adds BT OOB Record. 464c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 465c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 466c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 467c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 468c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAddMediaBtOob (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 469c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch char *p_id_str, BD_ADDR bd_addr); 470c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 471c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 472c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 473c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAppendMediaBtOobCod 474c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 475c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function appends COD EIR data at the end of BT OOB Record. 476c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 477c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 478c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 479c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 480c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAppendMediaBtOobCod (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 481c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch char *p_id_str, DEV_CLASS cod); 482c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 483c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 484c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 485c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAppendMediaBtOobName 486c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 487c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function appends Bluetooth Local Name EIR data 488c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** at the end of BT OOB Record. 489c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 490c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 491c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 492c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 493c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAppendMediaBtOobName (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 494c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch char *p_id_str, BOOLEAN is_complete, 495c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 name_len, UINT8 *p_name); 496c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 497c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 498c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 499c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAppendMediaBtOobHashCRandR 500c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 501c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function appends Hash C and Rand R at the end of BT OOB Record. 502c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 503c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 504c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 505c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 506c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAppendMediaBtOobHashCRandR (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 507c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch char *p_id_str, UINT8 *p_hash_c, UINT8 *p_rand_r); 508c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 509c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch/******************************************************************************* 510c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 511c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Function NDEF_MsgAppendMediaBtOobEirData 512c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 513c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Description This function appends EIR Data at the end of BT OOB Record. 514c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 515c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** Returns NDEF_OK if all OK 516c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch** 517c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch*******************************************************************************/ 518c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochEXPORT_NDEF_API extern tNDEF_STATUS NDEF_MsgAppendMediaBtOobEirData (UINT8 *p_msg, UINT32 max_size, UINT32 *p_cur_size, 519c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch char *p_id_str, 520c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch UINT8 eir_type, UINT8 data_len, UINT8 *p_data); 521c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 522c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifdef __cplusplus 523c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 524c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 525c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 526c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif /* NDEF_UTILS_H */ 527c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch