} fn;
};
-int rfid_protocol_register(struct rfid_protocol *p);
-
#include <librfid/rfid_protocol_tcl.h>
#include <librfid/rfid_protocol_mifare_ul.h>
#include <librfid/rfid_protocol_mifare_classic.h>
struct rfid_reader *reader;
};
-
-extern int rfid_reader_register(struct rfid_reader *r);
-
extern struct rfid_reader_handle *
rfid_reader_open(void *data, unsigned int id);
/* system / environment specific defines */
/* build for openpcd firmware */
-//#define LIBRFID_FIRMWARE
+#define LIBRFID_FIRMWARE
/* build without dynamic allocations */
+//#define LIBRFID_STATIC
+//
+#ifdef LIBRFID_FIRMWARE
#define LIBRFID_STATIC
+#endif
#ifdef __LIBRFID__
struct rfid_reader_handle rfid_rh;
#endif
+#ifndef LIBRFID_FIRMWARE
const char *
rfid_hexdump(const void *data, unsigned int len)
{
}
return string;
}
+#else
+#define rfid_hexdump(x, y) hexdump(x, y)
+#endif
#if 0
int rfid_setopt(struct rfid_handle *rh, unsigned int level,
int rfid_init()
{
-#if 0
- rfid_reader_register(&rfid_reader_cm5121);
- rfid_reader_register(&rfid_reader_openpcd);
- rfid_layer2_register(&rfid_layer2_iso14443a);
- rfid_layer2_register(&rfid_layer2_iso14443b);
- rfid_protocol_register(&rfid_protocol_tcl);
- rfid_protocol_register(&rfid_protocol_mful);
- rfid_protocol_register(&rfid_protocol_mfcl);
-#endif
-
return 0;
}
return ret;
cur_tx_len = 64 - fifo_fill;
- printf("refilling tx fifo with %u bytes\n", cur_tx_len);
+ //printf("refilling tx fifo with %u bytes\n", cur_tx_len);
} else
cur_tx_len = 0;
if (ret < 0)
return ret;
- if (rx_avail > *rx_len)
- printf("rx_avail(%d) > rx_len(%d), JFYI\n", rx_avail, *rx_len);
- else if (*rx_len > rx_avail)
+ if (rx_avail > *rx_len) {
+ //printf("rx_avail(%d) > rx_len(%d), JFYI\n", rx_avail, *rx_len);
+ } else if (*rx_len > rx_avail)
*rx_len = rx_avail;
if (rx_avail == 0) {
int ret = 0;
DEBUGP("fsd is %u\n", h->priv.iso14443b.fsd);
- if (rx_len >= rx_len-1) {
- perror("rx_len too large\n");
- goto out_attrib;
- }
+ if (rx_len >= rx_len-1)
+ return -EINVAL;
/* initialize attrib frame */
memset(&_attrib_buf, 0, sizeof(_attrib_buf));
memcpy(rx_data, rx_buf+1, *rx_len);
out_rx:
- free(rx_buf);
out_attrib:
return ret;
unsigned int rx_len = sizeof(rx_buf);
PC_to_RDR_Escape(rath->data, tx_buf, 1, rx_buf, &rx_len);
- printf("received %u bytes from 01 command\n", rx_len);
return 0;
}
if (!h)
return -1;
- printf("acquiring card lock\n");
rc = ct_card_lock(h, slot, IFD_LOCK_EXCLUSIVE, &lock);
- if (rc < 0) {
- fprintf(stderr, "error, no card lock\n");
+ if (rc < 0)
return -1;
- }
rc = ct_card_reset(h, slot, atr, sizeof(atr));
- if (rc < 0) {
- fprintf(stderr, "error, can't reset virtual card\n");
+ if (rc < 0)
return -1;
- }
rath->data = h;
unsigned char reg,
unsigned char *value)
{
- return rc632_reg_write(rath, reg, value);
+ return rc632_reg_read(rath, reg, value);
}
unsigned char num_bytes,
unsigned char *buf)
{
- return rc632_reg_write(rath, num_bytes, buf);
+ return rc632_fifo_read(rath, num_bytes, buf);
}
static int openpcd_fifo_write(struct rfid_asic_transport_handle *rath,