diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/rfid_layer2_iso14443a.c | 14 | ||||
-rw-r--r-- | src/rfid_layer2_iso14443b.c | 2 | ||||
-rw-r--r-- | src/rfid_proto_mifare_ul.c | 4 |
3 files changed, 16 insertions, 4 deletions
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; |