- driver data is now allocated and destroyed by drivers

- new type driver_data_t, driver data is not stored in struct rf_driver.
- added some comments and better debug messages


git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@357 96b47cad-a561-4643-ad3b-153ac7d7599c
This commit is contained in:
frankmorgner
2010-11-13 13:32:57 +00:00
parent 227f67d32d
commit c9d4c12a3b
4 changed files with 51 additions and 46 deletions

View File

@@ -99,7 +99,7 @@ static size_t get_historical_bytes(unsigned char *atr, size_t atrlen,
}
static int lnfc_connect(void **driver_data)
static int lnfc_connect(driver_data_t **driver_data)
{
struct lnfc_data *data;
/* data derived from German (test) identity card issued 2010 */
@@ -131,10 +131,11 @@ static int lnfc_connect(void **driver_data)
}
if (verbose >= 0)
printf("Connected to %s\n", data->pndTarget->acName);
printf("Connected to %s\n", nfc_device_name(data->pndTarget));
DEBUG("Waiting for a command that is not part of the anti-collision...\n");
if (!nfc_target_init (data->pndTarget, &ntEmulatedTarget, data->abtCapdu, &data->szCapduLen)) {
ERROR("Initialization of NFC emulator failed");
ERROR("nfc_target_init: %s\n", nfc_strerror(data->pndTarget));
nfc_disconnect (data->pndTarget);
return 0;
}
@@ -144,18 +145,21 @@ static int lnfc_connect(void **driver_data)
return 1;
}
static int lnfc_disconnect(void *driver_data)
static int lnfc_disconnect(driver_data_t *driver_data)
{
struct lnfc_data *data = driver_data;
nfc_disconnect (data->pndTarget);
if (data) {
nfc_disconnect (data->pndTarget);
free(data);
}
return 1;
}
static int lnfc_receive_capdu(void *driver_data,
static int lnfc_receive_capdu(driver_data_t *driver_data,
unsigned char **capdu, size_t *len)
{
struct lnfc_data *data = driver_data;
@@ -185,7 +189,7 @@ static int lnfc_receive_capdu(void *driver_data,
return 1;
}
static int lnfc_send_rapdu(void *driver_data,
static int lnfc_send_rapdu(driver_data_t *driver_data,
const unsigned char *rapdu, size_t len)
{
struct lnfc_data *data = driver_data;
@@ -205,7 +209,6 @@ static int lnfc_send_rapdu(void *driver_data,
struct rf_driver driver_libnfc = {
.data = NULL,
.connect = lnfc_connect,
.disconnect = lnfc_disconnect,
.receive_capdu = lnfc_receive_capdu,