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