[Pcsclite-cvs-commit] r4937 - in /trunk/Drivers/ccid/src: ccid.c ccid.h ccid_serial.c ccid_usb.c commands.c defs.h ifdhandler.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Mon May 10 09:28:03 UTC 2010
Author: rousseau
Date: Mon May 10 09:28:02 2010
New Revision: 4937
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=4937
Log:
change read timeout from second to millisecond unit to have a sub-second
control
Modified:
trunk/Drivers/ccid/src/ccid.c
trunk/Drivers/ccid/src/ccid.h
trunk/Drivers/ccid/src/ccid_serial.c
trunk/Drivers/ccid/src/ccid_usb.c
trunk/Drivers/ccid/src/commands.c
trunk/Drivers/ccid/src/defs.h
trunk/Drivers/ccid/src/ifdhandler.c
Modified: trunk/Drivers/ccid/src/ccid.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ccid.c?rev=4937&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ccid.c (original)
+++ trunk/Drivers/ccid/src/ccid.c Mon May 10 09:28:02 2010
@@ -63,7 +63,7 @@
case CL1356D:
/* the firmware needs some time to initialize */
(void)sleep(1);
- ccid_descriptor->readTimeout = 60; /* 60 seconds */
+ ccid_descriptor->readTimeout = 60*1000; /* 60 seconds */
break;
}
Modified: trunk/Drivers/ccid/src/ccid.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ccid.h?rev=4937&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ccid.h (original)
+++ trunk/Drivers/ccid/src/ccid.h Mon May 10 09:28:02 2010
@@ -86,7 +86,7 @@
/*
* Read communication port timeout
- * value is seconds
+ * value is milliseconds
* this value can evolve dynamically if card request it (time processing).
*/
unsigned int readTimeout;
Modified: trunk/Drivers/ccid/src/ccid_serial.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ccid_serial.c?rev=4937&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ccid_serial.c (original)
+++ trunk/Drivers/ccid/src/ccid_serial.c Mon May 10 09:28:02 2010
@@ -421,8 +421,8 @@
/* use select() to, eventually, timeout */
FD_ZERO(&fdset);
FD_SET(fd, &fdset);
- t.tv_sec = serialDevice[reader_index].ccid.readTimeout;
- t.tv_usec = 0;
+ t.tv_sec = serialDevice[reader_index].ccid.readTimeout / 1000;
+ t.tv_usec = (serialDevice[reader_index].ccid.readTimeout - t.tv_sec*1000)*1000;
i = select(fd+1, &fdset, NULL, NULL, &t);
if (i == -1)
@@ -433,7 +433,7 @@
else
if (i == 0)
{
- DEBUG_COMM2("Timeout! (%d sec)", serialDevice[reader_index].ccid.readTimeout);
+ DEBUG_COMM2("Timeout! (%d ms)", serialDevice[reader_index].ccid.readTimeout);
return -1;
}
@@ -750,7 +750,7 @@
unsigned int rx_length = sizeof(rx_buffer);
/* 2 seconds timeout to not wait too long if no reader is connected */
- serialDevice[reader].ccid.readTimeout = 2;
+ serialDevice[reader].ccid.readTimeout = 2*1000;
if (IFD_SUCCESS != CmdEscape(reader_index, tx_buffer, sizeof(tx_buffer),
rx_buffer, &rx_length))
Modified: trunk/Drivers/ccid/src/ccid_usb.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ccid_usb.c?rev=4937&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ccid_usb.c (original)
+++ trunk/Drivers/ccid/src/ccid_usb.c Mon May 10 09:28:02 2010
@@ -623,7 +623,7 @@
rv = usb_bulk_read(usbDevice[reader_index].handle,
usbDevice[reader_index].bulk_in, (char *)buffer, *length,
- usbDevice[reader_index].ccid.readTimeout * 1000);
+ usbDevice[reader_index].ccid.readTimeout);
if (rv < 0)
{
@@ -952,7 +952,7 @@
ret = usb_control_msg(usbDevice[reader_index].handle, requesttype,
request, value, usbDevice[reader_index].interface, (char *)bytes, size,
- usbDevice[reader_index].ccid.readTimeout * 1000);
+ usbDevice[reader_index].ccid.readTimeout);
if (requesttype & 0x80)
DEBUG_XXD("receive: ", bytes, ret);
Modified: trunk/Drivers/ccid/src/commands.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/commands.c?rev=4937&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/commands.c (original)
+++ trunk/Drivers/ccid/src/commands.c Mon May 10 09:28:02 2010
@@ -446,7 +446,7 @@
i2dw(a - 10, cmd + 1); /* CCID message length */
old_read_timeout = ccid_descriptor -> readTimeout;
- ccid_descriptor -> readTimeout = min(30, TxBuffer[0]+10); /* at least 30 seconds */
+ ccid_descriptor -> readTimeout = min(30, TxBuffer[0]+10)*1000; /* at least 30 seconds */
if (WritePort(reader_index, a, cmd) != STATUS_SUCCESS)
{
@@ -674,7 +674,7 @@
i2dw(a - 10, cmd + 1); /* command length (includes bPINOperation) */
old_read_timeout = ccid_descriptor -> readTimeout;
- ccid_descriptor -> readTimeout = min(30, TxBuffer[0]+10); /* at least 30 seconds */
+ ccid_descriptor -> readTimeout = min(30, TxBuffer[0]+10)*1000; /* at least 30 seconds */
if (WritePort(reader_index, a, cmd) != STATUS_SUCCESS)
{
@@ -729,7 +729,7 @@
_ccid_descriptor *ccid_descriptor = get_ccid_descriptor(reader_index);
old_read_timeout = ccid_descriptor -> readTimeout;
- ccid_descriptor -> readTimeout = 30; /* 30 seconds */
+ ccid_descriptor -> readTimeout = 30*1000; /* 30 seconds */
again:
/* allocate buffers */
Modified: trunk/Drivers/ccid/src/defs.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/defs.h?rev=4937&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/defs.h (original)
+++ trunk/Drivers/ccid/src/defs.h Mon May 10 09:28:02 2010
@@ -74,8 +74,8 @@
#define T_0 0
#define T_1 1
-/* Default communication read timeout in seconds */
-#define DEFAULT_COM_READ_TIMEOUT 2
+/* Default communication read timeout in milliseconds */
+#define DEFAULT_COM_READ_TIMEOUT (2*1000)
/*
* communication ports abstraction
Modified: trunk/Drivers/ccid/src/ifdhandler.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/Drivers/ccid/src/ifdhandler.c?rev=4937&op=diff
==============================================================================
--- trunk/Drivers/ccid/src/ifdhandler.c (original)
+++ trunk/Drivers/ccid/src/ifdhandler.c Mon May 10 09:28:02 2010
@@ -945,7 +945,7 @@
break;
}
- DEBUG_COMM2("Timeout: %d seconds", ccid_desc->readTimeout);
+ DEBUG_COMM2("Timeout: %d ms", ccid_desc->readTimeout);
ret = SetParameters(reader_index, 1, sizeof(param), param);
if (IFD_SUCCESS != ret)
@@ -986,8 +986,7 @@
ccid_desc->readTimeout = T0_card_timeout(f, d, param[2] /* TC1 */,
param[3] /* TC2 */, ccid_desc->dwDefaultClock);
- DEBUG_COMM2("Communication timeout: %d seconds",
- ccid_desc->readTimeout);
+ DEBUG_COMM2("Communication timeout: %d ms", ccid_desc->readTimeout);
ret = SetParameters(reader_index, 0, sizeof(param), param);
if (IFD_SUCCESS != ret)
@@ -1125,7 +1124,7 @@
* 1 ETU = 372 cycles during ATR
* with a 4 MHz clock => 29 seconds
*/
- ccid_descriptor->readTimeout = 60;
+ ccid_descriptor->readTimeout = 60*1000;
nlength = sizeof(pcbuffer);
return_value = CmdPowerOn(reader_index, &nlength, pcbuffer,
@@ -1874,16 +1873,11 @@
/* ISO in */
t = 261 * EGT + (3 + 3) * WWT;
- /* Convert from milliseonds to seconds rouned to the upper value
- * use +1 instead of ceil() to round up to the nearest integer
- * so we can avoid a dependency on the math library */
- t = t/1000 +1;
if (timeout < t)
timeout = t;
/* ISO out */
t = 5 * EGT + (1 + 259) * WWT;
- t = t/1000 +1;
if (timeout < t)
timeout = t;
@@ -1931,11 +1925,6 @@
timeout = 260*EGT + BWT + 260*CWT;
- /* Convert from milliseonds to seconds rounded to the upper value
- * we use +1 instead of ceil() to round up to the nearest greater integer
- * so we can avoid a dependency on the math library */
- timeout = timeout/1000 +1;
-
return timeout;
} /* T1_card_timeout */
More information about the Pcsclite-cvs-commit
mailing list