From 852829c4ab597ce137bac4bb9b612fd57b1dd282 Mon Sep 17 00:00:00 2001 From: laforge Date: Sat, 22 Oct 2005 18:12:48 +0000 Subject: add convenience functions to set lock bits git-svn-id: https://svn.gnumonks.org/trunk/librfid@1553 e0336214-984f-0b4b-a45f-81c69e1f0ede --- rfid_proto_mifare_ul.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'rfid_proto_mifare_ul.c') diff --git a/rfid_proto_mifare_ul.c b/rfid_proto_mifare_ul.c index 1d80702..e420fcf 100644 --- a/rfid_proto_mifare_ul.c +++ b/rfid_proto_mifare_ul.c @@ -136,3 +136,31 @@ struct rfid_protocol rfid_protocol_mful = { .fini = &mful_fini, }, }; + +/* Functions below are not (yet? covered in the generic librfid api */ + + +/* lock a certain page */ +int rfid_mful_lock_page(struct rfid_protocol_handle *ph, unsigned int page) +{ + unsigned char buf[4] = { 0x00, 0x00, 0x00, 0x00 }; + + if (ph->proto != &rfid_protocol_mful) + return -EINVAL; + + if (page < 3 || page > 15) + return -EINVAL; + + if (page > 8) + buf[2] = (1 << page); + else + buf[3] = (1 << (page - 8)); + + return mful_write(ph, MIFARE_UL_PAGE_LOCK, buf, sizeof(buf)); +} + +/* convenience wrapper to lock the otp page */ +int rfid_mful_lock_otp(struct rfid_protocol_handle *ph) +{ + return rfid_mful_lock_page(ph, MIFARE_UL_PAGE_OTP); +} -- cgit v1.2.3