From d222d836a7a97c7164e0f96920b148d532fa574a Mon Sep 17 00:00:00 2001 From: laforge Date: Thu, 20 Oct 2005 20:15:49 +0000 Subject: add mifare ultralight support (incomplete) git-svn-id: https://svn.gnumonks.org/trunk/librfid@1543 e0336214-984f-0b4b-a45f-81c69e1f0ede --- include/rfid/rfid_layer2_iso14443a.h | 2 ++ include/rfid/rfid_protocol.h | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) (limited to 'include') diff --git a/include/rfid/rfid_layer2_iso14443a.h b/include/rfid/rfid_layer2_iso14443a.h index 400f951..9594abb 100644 --- a/include/rfid/rfid_layer2_iso14443a.h +++ b/include/rfid/rfid_layer2_iso14443a.h @@ -68,6 +68,8 @@ struct iso14443a_handle { unsigned int state; unsigned int level; unsigned int tcl_capable; + unsigned int uid_len; + unsigned char uid[10]; /* Triple size UID is 10 bytes */ }; enum iso14443a_level { diff --git a/include/rfid/rfid_protocol.h b/include/rfid/rfid_protocol.h index f9db318..5172a08 100644 --- a/include/rfid/rfid_protocol.h +++ b/include/rfid/rfid_protocol.h @@ -16,6 +16,7 @@ struct rfid_protocol { int (*open)(struct rfid_protocol_handle *ph); int (*close)(struct rfid_protocol_handle *ph); int (*fini)(struct rfid_protocol_handle *ph); + /* transcieve for session based transport protocols */ int (*transcieve)(struct rfid_protocol_handle *ph, const unsigned char *tx_buf, unsigned int tx_len, @@ -23,6 +24,15 @@ struct rfid_protocol { unsigned int *rx_len, unsigned int timeout, unsigned int flags); + /* read/write for synchronous memory cards */ + int (*read)(struct rfid_protocol_handle *ph, + unsigned int page, + unsigned char *rx_data, + unsigned int *rx_len); + int (*write)(struct rfid_protocol_handle *ph, + unsigned int page, + unsigned char *tx_data, + unsigned int tx_len); } fn; }; @@ -44,6 +54,18 @@ int rfid_protocol_transcieve(struct rfid_protocol_handle *ph, const unsigned char *tx_buf, unsigned int tx_len, unsigned char *rx_buf, unsigned int *rx_len, unsigned int timeout, unsigned int flags); +int +rfid_protocol_read(struct rfid_protocol_handle *ph, + unsigned int page, + unsigned char *rx_data, + unsigned int rx_len); + +int +rfid_protocol_write(struct rfid_protocol_handle *ph, + unsigned int page, + unsigned char *tx_data, + unsigned int tx_len); + int rfid_protocol_fini(struct rfid_protocol_handle *ph); int rfid_protocol_close(struct rfid_protocol_handle *ph); @@ -52,5 +74,6 @@ int rfid_protocol_register(struct rfid_protocol *p); enum rfid_protocol_id { RFID_PROTOCOL_UNKNOWN, RFID_PROTOCOL_TCL, + RFID_PROTOCOL_MIFARE_UL, }; #endif -- cgit v1.2.3