summaryrefslogtreecommitdiff
path: root/src/rfid_layer2_iso14443a.c
diff options
context:
space:
mode:
authorlaforge <laforge@e0336214-984f-0b4b-a45f-81c69e1f0ede>2005-11-08 10:34:18 +0000
committerlaforge <laforge@e0336214-984f-0b4b-a45f-81c69e1f0ede>2005-11-08 10:34:18 +0000
commit7600eb5ebbb8ac0f7532e7e7ae6cb5d4dc29d30b (patch)
treef38665192c50bdcbbda8e74d00f585ced5cea63b /src/rfid_layer2_iso14443a.c
parent27e8fe5394184505e09318d3691761da59ecdff5 (diff)
- better layering abstraciton
- differentiate between library internal definitions and public ones - implement getopt/setopt like get/setsockopt - offer speed changing controls git-svn-id: https://svn.gnumonks.org/trunk/librfid@1662 e0336214-984f-0b4b-a45f-81c69e1f0ede
Diffstat (limited to 'src/rfid_layer2_iso14443a.c')
-rw-r--r--src/rfid_layer2_iso14443a.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/rfid_layer2_iso14443a.c b/src/rfid_layer2_iso14443a.c
index d93f917..d33b316 100644
--- a/src/rfid_layer2_iso14443a.c
+++ b/src/rfid_layer2_iso14443a.c
@@ -22,6 +22,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
+#include <errno.h>
#include <rfid/rfid.h>
#include <rfid/rfid_layer2.h>
@@ -250,6 +251,25 @@ iso14443a_hlta(struct rfid_layer2_handle *handle)
return -1;
}
+static int
+iso14443a_setopt(struct rfid_layer2_handle *handle, int optname,
+ const void *optval, unsigned int optlen)
+{
+ int ret = -EINVAL;
+ struct rfid_reader *rdr = handle->rh->reader;
+ unsigned int speed;
+
+ switch (optname) {
+ case RFID_OPT_14443A_SPEED:
+ speed = *(unsigned int *)optval;
+ ret = rdr->iso14443a.set_speed(handle->rh, speed);
+ break;
+ };
+
+ return ret;
+}
+
+
static struct rfid_layer2_handle *
iso14443a_init(struct rfid_reader_handle *rh)
{
@@ -289,6 +309,7 @@ struct rfid_layer2 rfid_layer2_iso14443a = {
.transcieve = &iso14443a_transcieve,
.close = &iso14443a_hlta,
.fini = &iso14443a_fini,
+ .setopt = &iso14443a_setopt,
},
};
personal git repositories of Harald Welte. Your mileage may vary