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