tags_int.h revision 5c65c3a0f42e174e47fecd4e569606003217ff4e
1/******************************************************************************
2 *
3 *  Copyright (C) 2009-2013 Broadcom Corporation
4 *
5 *  Licensed under the Apache License, Version 2.0 (the "License");
6 *  you may not use this file except in compliance with the License.
7 *  You may obtain a copy of the License at:
8 *
9 *  http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 *
17 ******************************************************************************/
18
19
20/******************************************************************************
21 *
22 *  This file contains the common data types shared by Reader/Writer mode
23 *  and Card Emulation.
24 *
25 ******************************************************************************/
26
27#ifndef TAGS_INT_H
28#define TAGS_INT_H
29
30/******************************************************************************
31// T1T command and response definitions
32******************************************************************************/
33
34typedef struct
35{
36    UINT8   opcode;
37    UINT8   cmd_len;
38    UINT8   uid_offset;
39    UINT8   rsp_len;
40} tT1T_CMD_RSP_INFO;
41
42typedef struct
43{
44    UINT8   tag_model;
45    UINT8   tms;
46    UINT8   b_dynamic;
47    UINT8   lock_tlv[3];
48    UINT8   mem_tlv[3];
49} tT1T_INIT_TAG;
50
51typedef struct
52{
53    UINT8   manufacturer_id;
54    BOOLEAN b_multi_version;
55    UINT8   version_block;
56    UINT16  version_no;
57    UINT16  version_bmask;
58    UINT8   b_calc_cc;
59    UINT8   tms;
60    BOOLEAN b_otp;
61    UINT8   default_lock_blpb;
62} tT2T_INIT_TAG;
63
64typedef struct
65{
66    UINT8   opcode;
67    UINT8   cmd_len;
68    UINT8   rsp_len;
69    UINT8   nack_rsp_len;
70} tT2T_CMD_RSP_INFO;
71
72extern const UINT8 t4t_v10_ndef_tag_aid[];  /* V1.0 Type 4 Tag Applicaiton ID */
73extern const UINT8 t4t_v20_ndef_tag_aid[];  /* V2.0 Type 4 Tag Applicaiton ID */
74
75extern const tT1T_CMD_RSP_INFO t1t_cmd_rsp_infos[];
76extern const tT1T_INIT_TAG t1t_init_content[];
77extern const tT1T_CMD_RSP_INFO * t1t_cmd_to_rsp_info (UINT8 opcode);
78extern const tT1T_INIT_TAG * t1t_tag_init_data (UINT8 tag_model);
79extern UINT8 t1t_info_to_evt (const tT1T_CMD_RSP_INFO * p_info);
80
81extern const tT2T_INIT_TAG * t2t_tag_init_data (UINT8 manufacturer_id, BOOLEAN b_valid_ver, UINT16 version_no);
82extern const tT2T_CMD_RSP_INFO t2t_cmd_rsp_infos[];
83extern const tT2T_CMD_RSP_INFO * t2t_cmd_to_rsp_info (UINT8 opcode);
84extern UINT8 t2t_info_to_evt (const tT2T_CMD_RSP_INFO * p_info);
85
86
87#if (BT_TRACE_PROTOCOL == TRUE)
88extern const char * t1t_info_to_str (const tT1T_CMD_RSP_INFO * p_info);
89extern const char * t2t_info_to_str (const tT2T_CMD_RSP_INFO * p_info);
90#else
91#define t1t_info_to_str(x) ""
92#define t2t_info_to_str(x) ""
93#endif
94extern int tags_pow (int x, int y);
95extern unsigned int tags_log2 (register unsigned int x);
96
97
98#endif /* TAGS_INT_H */
99