move librfid to new location in repository
[librfid] / include / rfid / rfid_layer2_iso14443b.h
1 #ifndef _RFID_LAYER2_ISO14443B_H
2 #define _RFID_LAYER2_ISO14443B_H
3
4 struct iso14443b_atqb {
5         unsigned char fifty;
6         unsigned char pupi[4];
7         unsigned char app_data[4];
8         struct {
9                 unsigned char bit_rate_capability;
10                 unsigned char protocol_type:4,
11                               max_frame_size:4;
12                 unsigned char fo:2,
13                               adc:2,
14                               fwi:4;
15         } protocol_info;
16 };
17
18 struct iso14443b_attrib_hdr {
19         unsigned char one_d;
20         unsigned char identifier[4];
21         struct {
22                 unsigned char rfu:2,
23                               sof:1,
24                               eof:1,
25                               min_tr1:2,
26                               min_tr0:2;
27         } param1;
28         struct {
29                 unsigned char fsdi:4,
30                               spd_out:2,
31                               spd_in:2;
32         } param2;
33         struct {
34                 unsigned char protocol_type:4,
35                               rfu:4;
36         } param3;
37         struct {
38                 unsigned char cid:4,
39                               rfu:4;
40         } param4;
41 };
42
43 struct iso14443b_handle {
44         unsigned int tcl_capable; /* do we support T=CL */
45
46         unsigned char pupi[4];  /* Pseudo-Unique PICC Identifier */
47         unsigned int cid;       /* Card ID */
48
49         unsigned int fsc;       /* max. frame size card */
50         unsigned int fsd;       /* max. frame size reader */
51
52         unsigned int fwt;       /* frame waiting time */
53
54         unsigned int mbl;       /* maximum buffer length */
55
56         unsigned int tr0;       /* pcd-eof to picc-subcarrier-on */
57         unsigned int tr1;       /* picc-subcarrier-on to picc-sof */
58
59         unsigned int flags;
60         unsigned int state;
61 };
62
63 enum {
64         ISO14443B_CID_SUPPORTED = 0x01,
65         ISO14443B_NAD_SUPPORTED = 0x02,
66 };
67
68 enum {
69         ISO14443B_STATE_ERROR,
70         ISO14443B_STATE_NONE,
71         ISO14443B_STATE_REQB_SENT,
72         ISO14443B_STATE_ATQB_RCVD,
73         ISO14443B_STATE_ATTRIB_SENT,
74         ISO14443B_STATE_SELECTED,
75         ISO14443B_STATE_HLTB_SENT,
76         ISO14443B_STATE_HALTED,
77 };
78
79
80 #include <rfid/rfid_layer2.h>
81 struct rfid_layer2 rfid_layer2_iso14443b;
82
83 #endif