X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=src%2Frfid.c;h=fb5b9c376d412cad1784e2139dfd9ad4693ef7f5;hb=893a580c6f1c7f1cc50d9bd1acc51c9fd6307a17;hp=ea6c0aaccbe327fe5e9a1482014d8ab2d7a61666;hpb=10cb102b34aaedc50c510f84cc2de816894a384b;p=librfid diff --git a/src/rfid.c b/src/rfid.c index ea6c0aa..fb5b9c3 100644 --- a/src/rfid.c +++ b/src/rfid.c @@ -1,4 +1,6 @@ -/* +/* librfid core + * (C) 2005-2006 by Harald Welte + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 * as published by the Free Software Foundation @@ -10,18 +12,27 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include #include -#include -#include +#include +#include #include #include #include #include +#ifdef LIBRFID_STATIC +struct rfid_asic_handle rfid_ah; +struct rfid_layer2_handle rfid_l2h; +struct rfid_protocol_handle rfid_ph; +struct rfid_asic_transport_handle rfid_ath; +struct rfid_reader_handle rfid_rh; +#endif + +#ifndef LIBRFID_FIRMWARE const char * rfid_hexdump(const void *data, unsigned int len) { @@ -38,20 +49,63 @@ rfid_hexdump(const void *data, unsigned int len) } return string; } +#else +#define rfid_hexdump(x, y) hexdump(x, y) +#endif -int rfid_init() +#if 0 +int rfid_setopt(struct rfid_handle *rh, unsigned int level, + unsigned int optname, + const void *opt, unsigned int *optlen) { - rfid_reader_register(&rfid_reader_cm5121); - rfid_reader_register(&rfid_reader_openpcd); - rfid_layer2_register(&rfid_layer2_iso14443a); - rfid_layer2_register(&rfid_layer2_iso14443b); - rfid_protocol_register(&rfid_protocol_tcl); - rfid_protocol_register(&rfid_protocol_mful); - rfid_protocol_register(&rfid_protocol_mfcl); + switch (level) { + case RFID_LEVEL_READER: + return rfid_reader_setopt(optname, opt, optlen); + break; + case RFID_LEVEL_LAYER2: + return rfid_layer2_setopt(optname, opt, optlen); + break; + case RFID_LEVEL_LAYER3: + return rfid_layer3_setopt(optname, opt, optlen); + break; + case RFID_LEVEL_ASIC: + default: + return -EINVAL; + break; + } return 0; } +int rfid_getopt(struct rfid_handle *rh, unsigned int level, + unsigned int optname, + void *opt, unsigned int *optlen) +{ + switch (level) { + case RFID_LEVEL_READER: + return rfid_reader_getopt(optname, opt, optlen); + break; + case RFID_LEVEL_LAYER2: + return rfid_layer2_getopt(optname, opt, optlen); + break; + case RFID_LEVEL_LAYER3: + return rfid_layer3_getopt(optname, opt, optlen); + break; + case RFID_LEVEL_ASIC: + default: + return -EINVAL; + break; + } + + return 0; +} +#endif + +int rfid_init() +{ + return 0; +} + void rfid_fini() { /* FIXME: implementation */