use 64bit timeout values throughout the code, since some timeouts exceeds 4.8 billion...
[librfid] / include / rfid / rfid_reader.h
1 #ifndef _RFID_READER_H
2 #define _RFID_READER_H
3
4 #include <rfid/rfid_asic.h>
5 #include <rfid/rfid_layer2_iso14443a.h>
6
7 struct rfid_reader_handle;
8
9 struct rfid_reader {
10         char *name;
11         unsigned int id;
12         int (*transcieve)(struct rfid_reader_handle *h,
13                           const unsigned char *tx_buf, unsigned int tx_len,
14                           unsigned char *rx_buf, unsigned int *rx_len,
15                           u_int64_t timeout, unsigned int flags);
16         struct rfid_reader_handle * (*open)(void *data);
17         void (*close)(struct rfid_reader_handle *h);
18
19         struct rfid_14443a_reader {
20                 int (*init)(struct rfid_reader_handle *h);
21                 int (*transcieve_sf)(struct rfid_reader_handle *h,
22                                      unsigned char cmd,
23                                      struct iso14443a_atqa *atqa);
24                 int (*transcieve_acf)(struct rfid_reader_handle *h,
25                                       struct iso14443a_anticol_cmd *cmd,
26                                       unsigned int *bit_of_col);
27                 unsigned int speed;
28         } iso14443a;
29         struct rfid_14443b_reader {
30                 int (*init)(struct rfid_reader_handle *rh);
31                 unsigned int speed;
32         } iso14443b;
33         struct rfid_15693_reader {
34                 int (*init)(struct rfid_reader_handle *rh);
35         } iso15693;
36         struct rfid_reader *next;
37 };
38
39 enum rfid_reader_id {
40         RFID_READER_CM5121,
41         RFID_READER_PEGODA,
42 };
43
44 enum rfid_reader_14443a_speed {
45         RFID_READER_SPEED_106K,
46         RFID_READER_SPEED_212K,
47         RFID_READER_SPEED_424K,
48         RFID_READER_SPEED_848K,
49 };
50
51 struct rfid_reader_handle {
52         struct rfid_asic_handle *ah;
53
54         union {
55
56         } priv;
57         struct rfid_reader *reader;
58 };
59 #endif