From 93ffaaefecb5b83a39e30d4126dbbbd78f901aa2 Mon Sep 17 00:00:00 2001 From: ploetz Date: Tue, 20 Mar 2007 00:47:12 +0000 Subject: Add RFID_OPT_14443A_WUPA to request WUPA instead of REQA (Rainer Keller ) git-svn-id: https://svn.gnumonks.org/trunk/librfid@1985 e0336214-984f-0b4b-a45f-81c69e1f0ede --- src/rfid_layer2_iso14443a.c | 14 +++++++++++++- src/rfid_layer2_iso14443b.c | 2 +- src/rfid_proto_mifare_ul.c | 4 ++-- 3 files changed, 16 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/rfid_layer2_iso14443a.c b/src/rfid_layer2_iso14443a.c index 429577c..4716018 100644 --- a/src/rfid_layer2_iso14443a.c +++ b/src/rfid_layer2_iso14443a.c @@ -280,6 +280,13 @@ iso14443a_setopt(struct rfid_layer2_handle *handle, int optname, speed = *(unsigned int *)optval; ret = rdr->iso14443a.set_speed(handle->rh, 1, speed); break; + case RFID_OPT_14443A_WUPA: + if((unsigned int*)optval) + handle->flags |= RFID_OPT_LAYER2_WUP; + else + handle->flags &= ~RFID_OPT_LAYER2_WUP; + ret = 0; + break; }; return ret; @@ -287,17 +294,22 @@ iso14443a_setopt(struct rfid_layer2_handle *handle, int optname, static int iso14443a_getopt(struct rfid_layer2_handle *handle, int optname, - void *optval, unsigned int optlen) + void *optval, unsigned int *optlen) { int ret = -EINVAL; struct iso14443a_handle *h = &handle->priv.iso14443a; struct iso14443a_atqa *atqa = optval; + int *wupa = optval; switch (optname) { case RFID_OPT_14443A_ATQA: *atqa = h->atqa; ret = 0; break; + case RFID_OPT_14443A_WUPA: + *wupa = ((handle->flags & RFID_OPT_LAYER2_WUP) != 0); + ret = 0; + break; }; return ret; diff --git a/src/rfid_layer2_iso14443b.c b/src/rfid_layer2_iso14443b.c index 34575c5..e5fb151 100644 --- a/src/rfid_layer2_iso14443b.c +++ b/src/rfid_layer2_iso14443b.c @@ -337,7 +337,7 @@ iso14443b_transceive(struct rfid_layer2_handle *handle, static int iso14443b_getopt(struct rfid_layer2_handle *handle, - int optname, void *optval, unsigned int optlen) + int optname, void *optval, unsigned int *optlen) { unsigned int *opt_ui = optval; diff --git a/src/rfid_proto_mifare_ul.c b/src/rfid_proto_mifare_ul.c index 65347b1..7243c89 100644 --- a/src/rfid_proto_mifare_ul.c +++ b/src/rfid_proto_mifare_ul.c @@ -110,7 +110,7 @@ mful_transceive(struct rfid_protocol_handle *ph, static int mful_getopt(struct rfid_protocol_handle *ph, int optname, void *optval, - unsigned int optlen) + unsigned int *optlen) { int ret = -EINVAL; u_int16_t atqa; @@ -139,7 +139,7 @@ mful_init(struct rfid_layer2_handle *l2h) /* According to "Type Identification Procedure Rev. 1.3" */ rfid_layer2_getopt(l2h, RFID_OPT_14443A_ATQA, - &atqa, atqa_len); + &atqa, &atqa_len); if (atqa != 0x0044) return NULL; -- cgit v1.2.3