move librfid to new location in repository
[librfid] / rfid_reader.c
1 /* librfid - core reader handling
2  * (C) 2005 by Harald Welte <laforge@gnumonks.org>
3  */
4 #include <stdlib.h>
5 #include <stdio.h>
6
7 #include <rfid/rfid.h>
8 #include <rfid/rfid_reader.h>
9
10 static struct rfid_reader *rfid_reader_list;
11
12 struct rfid_reader_handle *
13 rfid_reader_open(void *data, unsigned int id)
14 {
15         struct rfid_reader *p;
16
17         for (p = rfid_reader_list; p; p = p->next)
18                 if (p->id == id)
19                         return p->open(data);
20
21         DEBUGP("unable to find matching reader\n");
22         return NULL;
23 }
24
25 int
26 rfid_reader_transcieve(struct rfid_reader_handle *rh,
27                          const unsigned char *tx_buf, unsigned int len,
28                          unsigned char *rx_buf, unsigned int *rx_len,
29                          unsigned int timeout, unsigned int flags)
30 {
31         return rh->reader->transcieve(rh, tx_buf, len, rx_buf, rx_len,
32                                         timeout, flags);
33 }
34
35 int
36 rfid_reader_close(struct rfid_reader_handle *rh)
37 {
38         return rh->reader->close(rh);
39 }
40
41 int
42 rfid_reader_register(struct rfid_reader *r)
43 {
44         r->next = rfid_reader_list;
45         rfid_reader_list = r;
46
47         return 0;
48 }