* implement rfid_reader_{get,set}opt()
[librfid] / include / librfid / rfid_layer2.h
index 0f6f683..7fbf81c 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef _RFID_LAYER2_H
 #define _RFID_LAYER2_H
 
-#include <sys/types.h>
 #include <librfid/rfid.h>
 
 struct rfid_layer2_handle;
@@ -12,12 +11,15 @@ enum rfid_layer2_id {
        RFID_LAYER2_ISO14443A,
        RFID_LAYER2_ISO14443B,
        RFID_LAYER2_ISO15693,
+       RFID_LAYER2_ICODE1,
 };
 
 /* 0...0xffff = global options, 0x10000...0x1ffff = private options */
 #define RFID_OPT_L2_PRIV               0x00010000
 enum rfid_layer2_opt {
        RFID_OPT_LAYER2_UID             = 0x0001,
+       RFID_OPT_LAYER2_PROTO_SUPP      = 0x0002,
+       RFID_OPT_LAYER2_WUP             = 0x0003,
 };
 
 struct rfid_layer2_handle *rfid_layer2_init(struct rfid_reader_handle *rh,
@@ -30,9 +32,9 @@ int rfid_layer2_transceive(struct rfid_layer2_handle *l2h,
                           u_int64_t timeout, unsigned int flags);
 int rfid_layer2_close(struct rfid_layer2_handle *l2h);
 int rfid_layer2_fini(struct rfid_layer2_handle *l2h);
-int rfid_layer2_getopt(struct rfid_layer2_handle *ph, int optname,
+int rfid_layer2_getopt(struct rfid_layer2_handle *l2h, int optname,
                        void *optval, unsigned int *optlen);
-int rfid_layer2_setopt(struct rfid_layer2_handle *ph, int optname,
+int rfid_layer2_setopt(struct rfid_layer2_handle *l2h, int optname,
                        const void *optval, unsigned int optlen);
 char *rfid_layer2_name(struct rfid_layer2_handle *l2h);
 #ifdef __LIBRFID__
@@ -40,6 +42,7 @@ char *rfid_layer2_name(struct rfid_layer2_handle *l2h);
 #include <librfid/rfid_layer2_iso14443a.h>
 #include <librfid/rfid_layer2_iso14443b.h>
 #include <librfid/rfid_layer2_iso15693.h>
+#include <librfid/rfid_layer2_icode1.h>
 
 struct rfid_layer2 {
        unsigned int id;
@@ -62,7 +65,6 @@ struct rfid_layer2 {
                              int optname, const void *optval,
                              unsigned int optlen);
        } fn;
-       struct rfid_layer2 *next;
 };
 
 struct rfid_layer2_handle {
@@ -70,12 +72,13 @@ struct rfid_layer2_handle {
        unsigned char uid[10];  /* triple size 14443a id is 10 bytes */
        unsigned int uid_len;
        unsigned int proto_supported;
+       unsigned int flags;
        union {
                struct iso14443a_handle iso14443a;
                struct iso14443b_handle iso14443b;
                struct iso15693_handle iso15693;
        } priv;
-       struct rfid_layer2 *l2;
+       const struct rfid_layer2 *l2;
 };
 
 #endif /* __LIBRFID__ */