2012-1-9  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/92_pcscd_acsccid.rules: New reader "ACS AET65 1SAM ICC Reader".

	* src/acr38cmd.c: Update copyright.
	(ACR38_CmdPowerOn): Remove samRetries.
	Call ACR38_CmdPowerOff before SAM reset.
	(ACR38_TransmitT0, ACR38_TransmitT1, ACR38_TransmitPPS): Replace
	CMD_BUF_SIZE with tx_length.
	Remove tx_length check.

	* src/acr38cmd.h: Update copyright.

	* src/ccid.c: Update copyright.
	(ccid_open_hack_pre): Add hack for ACS_AET62_PICC_READER and
	ACS_AET62_1SAM_PICC_READER.
	(ccid_open_hack_post): Set isSamSlot to 1 in order to enable SAM support for
	readers.
	(ccid_error): Remove duplicate "text = var_text".
	* src/ccid.h: Update copyright.
	(_ccid_descriptor): New member isSamSlot.
	(ACS_ACR33U_A1_3SAM_ICC_READER, ACS_ACR33U_A2_3SAM_ICC_READER)
	(ACS_ACR33U_A3_3SAM_ICC_READER, ACS_ACR33U_4SAM_ICC_READER)
	(ACS_ACR89_ICC_READER, ACS_ACR89_DUAL_READER, ACS_ACR89_FP_READER)
	(ACS_ACR1222_1SAM_PICC_READER, ACS_ACR1222_3S_PICC_READER)
	(ACS_AET62_PICC_READER, ACS_AET62_1SAM_PICC_READER)
	(ACS_AET65_1SAM_ICC_READER): Macro defined.

	* src/ccid_ifdhandler.h: Update copyright.

	* src/ccid_usb.c: Update copyright.
	(OpenUSBByName): Initialize CCID descriptor for ACS_AET65_1SAM_ICC_READER.
	Fix incorrect max slot index for ACS_ACR1222_1SAM_PICC_READER.
	Initialize isSamSlot.

	* src/commands.c: Update copyright.
	[!offsetof]: Define offsetof.
	(CmdPowerOn): Cast *nlength as int.
	(SecurePINVerify, SecurePINModify): Replace CMD_BUF_SIZE with TxLength.
	Remove TxLength check.
	(CmdEscape): Fix potential memory leak on cmd_out.
	(CmdGetSlotStatus): Simplify code for error check.
	(CCID_Transmit): Replace CMD_BUF_SIZE with tx_length.
	Cast tx_buffer as unsigned char *.
	Remove tx_length check.
	(CCID_Receive): Store returned value to *rx_length.
	(CmdXfrBlockAPDU_extended): Initialize local_rx_length.
	(T0ProcSW1, CmdXfrBlockCHAR_T0): Import fix from ccid-1.4.5.
	(SetParameters): Replace CMD_BUF_SIZE with length.
	Remove length check.

	* src/defs.h (CMD_BUF_SIZE): Support 64kb for extended APDU.
	(RESP_BUF_SIZE, ISO_CMD_SIZE, ISO_OFFSET_LENGTH, ISO_OFFSET_TPDU_DATA)
	(ISO_LENGTH_SIZE): Macro removed.

	* src/ifdhandler.c: Update copyright.
	(get_IFSC): New function.
	(IFDHCreateChannelByName, IFDHCreateChannel): Use pGetSlotStatus for warm up
	sequence.
	(IFDHGetCapabilities): Add SCARD_ATTR_ICC_INTERFACE_STATUS and
	SCARD_ATTR_ICC_PRESENCE.
	(IFDHSetCapabilities): Remove unused code.
	(IFDHSetProtocolParameters): Set default supported protocol to T=0 if card
	does not support any protocol.
	Update hack for OpenPGP card.
	Call get_IFSC to get IFSC.
	(IFDHPowerICC): Replace RESP_BUF_SIZE with MAX_ATR_SIZE.
	Change readTimeout to 10 seconds.
	(IFDHControl): Change initial return_value to IFD_ERROR_NOT_SUPPORTED.
	Add ACS_AET65_1SAM_ICC_READER to support ACR38 specific I/O control.
	(IFDHICCPresence): Return dwSlotstatus if it is a SAM slot or reader is
	GEMCORESIMPRO.

	* src/pcscd_acsccid.rules: New reader "ACS ACR89 ICC Reader",
	"ACS ACR89 Dual Reader", "ACS ACR89 FP Reader", "ACS AET62 PICC Reader",
	"ACS AET62 1SAM PICC Reader", "ACS AET65 ICC Reader",
	"ACS AET65 1SAM ICC Reader" and "ACS CryptoMate64".
	* supported_readers.txt: New reader "ACS ACR89 ICC Reader",
	"ACS ACR89 Dual Reader", "ACS ACR89 FP Reader", "ACS AET62 PICC Reader",
	"ACS AET62 1SAM PICC Reader", "ACS AET65 ICC Reader",
	"ACS AET65 1SAM ICC Reader" and "ACS CryptoMate64".
	Rename "ACR33 ICC Reader" to "ACS ACR33U-A1 3SAM ICC Reader",
	"ACS ACR33U-A2 3SAM ICC Reader", "ACS ACR33U-A3 3SAM ICC Reader" and
	"ACS ACR33U 4SAM ICC Reader".

	* src/openct/proto-t1.c: Update copyright.
	* src/towitoko/pps.c: Update copyright.

2011-11-30  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/ccid.c (ccid_open_hack_post): Add hack for ACS_APG8201Z.
	* src/ccid.h (ACS_APG8201Z): Macro defined.

	* src/ifdhandler.c (IFDHControl): Handle vendor specific feature.

	* src/pcscd_acsccid.rules: New reader "ACS ACR1222 1SAM PICC Reader
	(ACR1222U-C1)", "ACS ACR1222 1SAM PICC Reader (ACR1222U-C8)" and
	"ACS APG8201Z".
	* src/supported_readers.txt: New reader "ACS ACR1222 1SAM PICC Reader
	(ACR1222U-C1)", "ACS ACR1222 1SAM PICC Reader (ACR1222U-C8)" and
	"ACS APG8201Z".
	Rename "ACR1222L 3S CL Reader" to "ACR1222 3S PICC Reader".

2011-10-20  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* configure.ac (AC_CHECK_HEADERS): Remove duplicate errno.h.
	(AC_COMPILE_IFELSE): Add AC_LANG_SOURCE.

	* Makefile.am (EXTRA_DIST): Add bootstrap.

	* README: Update release information.

	* src/92_pcscd_acsccid.rules: New reader "ACS ACR38U", "ACS ACR38U-SAM",
	"IRIS SCR21U" and "ACS CryptoMate".

	* src/acr38cmd.c: New file.
	* src/acr38cmd.h: New file.

	* src/ccid.c: Include acr38cmd.h.
	(ccid_open_hack_post): Add hack for ACS_ACR38U, ACS_ACR38U_SAM and
	IRIS_SCR21U.
	(acr38_error): New function.
	* src/ccid.h (_ccid_descriptor): New member cardVoltage and cardType.
	(PROTOCOL_ACR38, ACS_ACR38U, ACS_ACR38U_SAM, IRIS_SCR21U, ACS_CRYPTOMATE):
	Macro defined.
	(acr38_error): New function prototype.

	* src/ccid_ifdhandler.h (IOCTL_SMARTCARD_SET_CARD_TYPE)
	(IOCTL_SMARTCARD_SET_CARD_VOLTAGE): Macro defined.

	* src/ccid_usb.c (OpenUSBByName): Initialize CCID descriptor for ACS_ACR38U,
	ACS_ACR38U_SAM, IRIS_SCR21U and ACS_CRYPTOMATE.
	Initialize cardVoltage and cardType.
	(ReadUSB): Handle PROTOCOL_ACR38.

	* src/defs.h (PPOWER_ON, PPOWER_OFF, PGET_SLOT_STATUS, PXFR_BLOCK)
	(PTRANSMIT, PRECEIVE, PSET_PARAMETERS): Type defined.
	(CcidDesc): Add pPowerOn, pPowerOff, pGetSlotStatus, pXfrBlock, pTransmitT1,
	pTransmitPPS, pReceive and pSetParameters.

	* src/ifdhandler.c: Include acr38cmd.h.
	(ACR38CardVoltage, ACR38CardType): New variable.
	(IFDHCreateChannelByName, IFDHCreateChannel): Initialize pPowerOn,
	pPowerOff, pGetSlotStatus, pXfrBlock, pTransmitT1, pTransmitPPS, pReceive
	and pSetParameters according to bInterfaceProtocol.
	(IFDHCloseChannel, IFDHPowerICC): Replace CmdPowerOff with pPowerOff.
	(IFDHSetProtocolParameters): Replace SetParameters with pSetParameters.
	(IFDHPowerICC): Replace CmdPowerOn with pPowerOn.
	(IFDHTransmitToICC, IFDHICCPresence): Replace CmdGetSlotStatus with
	pGetSlotStatus.
	(IFDHTransmitToICC): Replace CmdXfrBlock with pXfrBlock.
	(IFDHControl): Handle IOCTL_SMARTCARD_SET_CARD_VOLTAGE and
	IOCTL_SMARTCARD_SET_CARD_TYPE for ACS_ACR38U, ACS_ACR38U_SAM and
	IRIS_SCR21U.
	(init_driver): Load options to ACR38CardVoltage and ACR38CardType.

	* src/info.plist.src (ifdACR38CardVoltage, ifdACR38CardType): New option.

	* src/Makefile.am (COMMON): Add acr38cmd.c and acr38cmd.h.

	* src/pcscd_acsccid.rules: New reader "ACS ACR38U", "ACS ACR38U-SAM",
	"IRIS SCR21U" and "ACS CryptoMate".
	* src/supported_readers.txt: New reader "ACS ACR38U", "ACS ACR38U-SAM",
	"IRIS SCR21U" and "ACS CryptoMate".

	* src/openct/proto-t1.c: Include defs.h and ccid_ifdhandler.h.
	(t1_xcv): Replace CCID_Transmit with pTransmitT1.
	Replace CCID_Receive with pReceive.

	* src/towitoko/pps.c: Include ccid_ifdhandler.h.
	(PPS_Exchange): Replace CCID_Transmit with pTransmitPPS.
	Replace CCID_Receive with pReceive.

2011-10-10  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/ifdhandler.c (IFDHSetProtocolParameters): Check if card supports this
	protocol.

2011-9-19  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/ccid.h (ACS_ACR1281_1S_PICC_READER): Macro defined.
	* src/ccid_usb.c (OpenUSBByName): Check for ACS_ACR1281_1S_PICC_READER.
	* src/ifdhandler.c (IFDHGetCapabilities): Check for
	ACS_ACR1281_1S_PICC_READER.

	* src/pcscd_acsccid.rules: Change PID of ACR33 ICC reader from 0x8306 to
	0x8307.
	New reader "ACS ACR1281 1S PICC Reader".
	* src/supported_readers.txt: Change PID of ACR33 ICC reader from 0x8306 to
	0x8307.
	New reader "ACS ACR1281 1S PICC Reader".

2011-7-20  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/ccid.c (GetFirmwareVersion): Function removed.
	(ACR83_GetFirmwareVersion, ACR1222_GetFirmwareVersion): New function.
	(ccid_open_hack_post): Update hack for ACR38U, APG8201, ACR85, ACR1222,
	ACR88U, ACR128U and ACR1281.
	* src/ccid.h (_ccid_descriptor): Member firmwareVersion removed.
	New member firmwareFixEnabled.
	* src/ccid_usb.c (OpenUSBByName): Initialize firmwareFixEnabled.
	* src/ifdhandler.c (IFDHPowerICC, IFDHTransmitToICC, IFDHICCPresence): Use
	firmwareFixEnabled.

	* src/pcscd_acsccid.rules: New reader "ACS ACR33 ICC Reader".
	* src/supported_readers.txt: New reader "ACS ACR33 ICC Reader".

2011-6-24  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/92_pcscd_acsccid.rules: New reader "ACS ACR1281 2S CL Reader".

	* src/ccid.c (ccid_open_hack_post): Adjust features and maximum date rate
	for ACS_ACR88U, ACS_ACR128U, ACS_ACR1281_1S_DUAL_READER and
	ACS_ACR1281_2S_CL_READER.
	(ACS_ACR1281_2S_CL_READER): Macro defined.

	* src/ccid_ifdhandler.h (IOCTL_ACR128_READER_COMMAND): Macro defined.

	* src/ccid_usb.c (OpenUSBByName): Add ACS_ACR1281_2S_CL_READER support.

	* src/ifdhandler.c (IFDHControl): Handle IOCTL_ACR128_READER_COMMAND.

	* src/pcscd_acsccid.rules: New reader "ACS ACR1281 2S CL Reader".
	* src/supported_readers.txt: New reader "ACS ACR1281 2S CL Reader".

2011-6-22  Wolfgang Rosenauer  <wr@rosenauer.org>

	* src/ccid_ifdhandler.h [!FEATURE_MCT_READERDIRECT]: Define
	FEATURE_MCT_READERDIRECT to fix problem using pcsc-lite 1.7.3 or later
	header files.

2011-6-8  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* bootstrap: Change mode for bootstrap itself.
	Remove autom4te.cache directory after autoreconf.

	* configure.ac: Update version to 1.0.3.

	* README: Update authors, copyright and license to fix non-redistributable
	reference manual problem.
	Update release information.

	* src/92_pcscd_acsccid.rules: New file.

	* src/ccid.c (ccid_open_hack_pre): Correct the code that enabling polling
	mode is applied to ACR122U only and not all ACS readers.
	(ccid_open_hack_post): Adjust features and maximum data rate for ACS_ACR128U
	and	ACS_ACR1281_1S_DUAL_READER.
	Adjust maximum data rate for ACS_ACR88U.

	* src/ccid.h (ACS_ACR1281_PICC_READER_BSI, ACS_ACR1281_1S_DUAL_READER):
	Macro defined.

	* src/ccid_usb.c (OpenUSBByName): Add ACS_ACR1281_1S_DUAL_READER support.
	Adjust maximum data rate for ACS_ACR88U and ACS_ACR128U.

	* src/ifdhandler.c [!IFD_ERROR_INSUFFICIENT_BUFFER]: Define
	IFD_ERROR_INSUFFICIENT_BUFFER to 618.
	(IFDHCreateChannelByName): Debug print ccid_descriptor.
	(IFDHCreateChannel): Debug print ccid_descriptor.
	(IFDHSetProtocolParameters): Fix a problem that the optimal baud rate is not
	selected properly.
	Perform cold reset and try default Fl/Dl (0x11) if PPS_Exchange() or
	SetParameters() is failed.
	Protocol parameters will not be set if card is specific mode.
	(IFDHTransmitToICC): Fix reader hang problem by checking card status of
	ACR85 PICC before exchanging APDU.
	Add BSI miscellaneous command for ACR1281 BSI.
	Remove code to store bStatus.
	(IFDHICCPresence): Remove code to store bStatus.

	* src/pcscd_acsccid.rules: New reader "ACS ACR1281 PICC Reader (qPBOC)" and
	"ACS ACR1281 1S Dual Reader".
	* src/supported_readers.txt: New reader "ACS ACR1281 PICC Reader (qPBOC)"
	and "ACS ACR1281 1S Dual Reader".

2011-3-16  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/ifdhandler.c (IFDHTransmitToICC): Avoid to transmit APDU if no card is
	inserted to ACR85 PICC.
	Check card status of ACR85 PICC if SW1SW2 "63 00" is received.
	(IFDHICCPresence): Store card status.

	* src/pcscd_acsccid.rules: New reader "ACS ACR3801".
	* src/supported_readers.txt: New reader "ACS ACR3801".

2011-2-21  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/ccid.c (GetFirmwareVersion): New function.
	(ccid_open_hack_post): Get firmware version for ACS_ACR1222_DUAL_READER,
	ACS_ACR1222_1SAM_DUAL_READER and ACS_ACR85_PINPAD_READER_PICC.
	(EnablePicc): Add {} to DEBUG_CRITICAL.
	* src/ccid.h (_ccid_descriptor): New member firmwareVersion for ACR1222.

	* src/ccid_usb.c (OpenUSBByName): Simulate ACR85 as multi-slot reader.
	Initialize firmwareVersion.

	* src/ifdhandler.c (IFDHPowerICC, IFDHICCPresence): Check if firmware
	version of ACR1222 is 401 or reader is ACR85.

	* src/Info.plist.src (ifdDriverOptions): Update description for
	DRIVER_OPTION_REMOVE_PUPI_FROM_ATR and DRIVER_OPTION_DISABLE_PICC.

	* src/pcscd_acsccid.rules: Reader "ACR85 PINPad Reader PICC" removed.
	* src/supported_readers.txt: Reader "ACR85 PINPad Reader PICC" removed.

2011-2-14  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/ccid.c (ccid_open_hack_post): Enable PICC for ACS_ACR1222_DUAL_READER
	and ACS_ACR1222_1SAM_DUAL_READER.
	(EnablePicc): New function.
	* src/ccid.h (_ccid_descriptor): New member piccEnabled, pPiccEnabled,
	piccReaderIndex and pPiccReaderIndex.
	(EnablePicc): New function prototype.

	* src/ccid_ifdhandler.h (DRIVER_OPTION_REMOVE_PUPI_FROM_ATR)
	(DRIVER_OPTION_DISABLE_PICC): Macro defined for ACR1222/ACR85 driver option.

	* src/ccid_usb.c (OpenUSBByName): Get PICC reader index for
	ACS_ACR1222_DUAL_READER and ACS_ACR1222_1SAM_DUAL_READER.
	Get number of slots from bMaxSlotIndex.
	Initialize piccEnabled, pPiccEnabled, piccReaderIndex and pPiccReaderIndex.

	* src/ifdhandler.c (IFDHPowerICC): Perform cold reset after disabling PICC
	if DRIVER_OPTION_DISABLE_PICC is enabled for ACS_ACR1222_DUAL_READER and
	ACS_ACR1222_1SAM_DUAL_READER.
	Return IFD_ERROR_POWER_ACTION if nlength is zero.
	Remove PUPI from ATR if DRIVER_OPTION_REMOVE_PUPI_FROM_ATR is enabled for
	ACS_ACR1222_DUAL_READER and ACS_ACR1222_1SAM_DUAL_READER.
	(IFDHICCPresence): Return absent if PICC is disabled for
	ACS_ACR1222_DUAL_READER and ACS_ACR1222_1SAM_DUAL_READER.
	Enable/disable PICC if DRIVER_OPTION_DISABLE_PICC is enabled for
	ACS_ACR1222_DUAL_READER and ACS_ACR1222_1SAM_DUAL_READER.

	* src/Info.plist.src (ifdDriverOptions): Change to 0x00C0.
	Add description for DRIVER_OPTION_REMOVE_PUPI_FROM_ATR and
	DRIVER_OPTION_DISABLE_PICC.

2011-1-28  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* bootstrap: New file.

	* README: Update release information.

	* m4/acx_pthread.m4: File removed.
	* m4/ax_pthread.m4: New file.
	* m4/Makefile.am (EXTRA_DIST): Change to ax_pthread.m4.

	* src/ccid.h (ACS_ACR1281_DUAL_READER_QPBOC, ACS_ACR1281_DUAL_READER_BSI)
	(ACS_ACR122U): Macro defined.
	[__APPLE__]: Include <pthread.h>.
	(_ccid_descriptor): New member bcdDevice and bStatus.
	(_ccid_descriptor) [__APPLE__]: New member pbStatusLock and bStatusLock.

	* src/ccid_usb.c [__APPLE__]: HAVE_PTHREAD removed.
	(_usbDevice) [__APPLE__]: HAVE_PTHREAD removed.
	(_usbDevice): New member bulkOutMaxPacketSize.
	(CardDetectionThread) [__APPLE__]: HAVE_PTHREAD removed.
	Get reader_index as *((int *) pParam).
	(OpenUSBByName) [__APPLE__]: HAVE_PTHREAD removed.
	ret is used in Mac OS X.
	Create bStatus lock.
	Pass reader_index as pointer in pthread_create.
	(OpenUSBByName): Simulate ACR1281 Dual Reader (composite device) as
	multi-slot reader.
	Store bcdDevice for firmware version checking.
	Allocate and initialize array of bStatus.
	(WriteUSB): Fix APG8201 and ACR85 ICC cannot receive command properly by
	dividing number of packets with 10 ms delay on each write.
	(CloseUSB) [__APPLE__]: HAVE_PTHREAD removed.
	Free bStatus lock.
	(CloseUSB): Free array of bStatus and set bStatus to NULL.
	(get_end_points): Get bulkOutMaxPacketSize.
	(InterruptRead): Process RDR_to_PC_NotifySlotChange.

	* src/commands.c [!IFD_ERROR_INSUFFICIENT_BUFFER]: Fix problem using
	pcsc-lite 1.6.x header files and modify the value to 618.
	(CmdXfrBlock): Use infinite timeout in T=0, short APDU and extended APDU.

	* src/ifdhandler.c (IFDHGetCapabilities): Simulate ACR1281 Dual Reader
	(composite device) as multi-slot reader.
	(IFDHICCPresence): Simulate bStatus by reading bmSlotIccState from interrupt
	endpoint for ACR122U v2.00 - v2.04.

	* src/pcscd_acsccid.rules: New reader "ACS ACR100 ICC Reader",
	"ACS ACR101 ICC Reader", "ACS ACR102 ICC Reader",
	"ACS ACR1222L 3S CL Reader", "ACS ACR1281 CL Reader (qPBOC)" and
	"ACS ACR1281 Dual Reader (BSI)".
	* src/supported_readers.txt: New reader "ACS ACR100 ICC Reader",
	"ACS ACR101 ICC Reader", "ACS ACR102 ICC Reader",
	"ACS ACR1222L 3S CL Reader", "ACS ACR1281 CL Reader (qPBOC)" and
	"ACS ACR1281 Dual Reader (BSI)".

2010-12-17  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* MacOSX/configure: Modify to use libusb-0.1.

	* src/ccid.c (ccid_open_hack_pre): Add hack for ACS_ACR83U, ACS_APG8201 and
	ACS_ACR85_PINPAD_READER_ICC.

	* src/ccid.h (ACS_ACR85_PINPAD_READER_ICC, ACS_ACR85_PINPAD_READER_PICC)
	(ACS_ACR1222_DUAL_READER, ACS_ACR1222_1SAM_DUAL_READER, ACS_ACR83U)
	(ACS_APG8201): Macro defined.

	* src/ccid_ifdhandler.h (FEATURE_IFD_PIN_PROPERTIES, IOCTL_CCID_ESCAPE)
	(IOCTL_SMARTCARD_GET_FIRMWARE_VERSION, IOCTL_SMARTCARD_DISPLAY_LCD_MESSAGE)
	(IOCTL_SMARTCARD_READ_KEY): Macro defined.

	* src/ccid_usb.c [__APPLE__ && HAVE_PTHREAD]: Include <pthread.h>.
	(_usbDevice) [__APPLE__ && HAVE_PTHREAD]: New member hThread, pTerminated
	and terminated.
	(CardDetectionThread) [__APPLE__ && HAVE_PTHREAD]: New function.
	(OpenUSBByName): Update CCID descriptor for ACR88U and ACR128U.
	(OpenUSBByName): Fix ACR1222 incorrect max slot index.
	(OpenUSBByName) [__APPLE__ && HAVE_PTHREAD]: Create card detection thread.
	(CloseUSB) [__APPLE__ && HAVE_PTHREAD]: Terminate card detection thread.

	* src/commands.c (SecurePINVerify): Change timeout to infinite.
	(SecurePINModify): Change timeout to infinite.
	(CmdEscape): Remove code for setting timeout.
	(CCID_Receive): Handle 0xFF for cmd[ERROR_OFFSET];

	* src/ifdhandler.c (IFDHSetProtocolParameters): Check TPDU exchange level
	before calling t1_negotiate_ifsd.
	(IFDHControl): Set infinite timeout before calling CmdEscape.
	(IFDHControl): Fix PIN_PROPERTIES_STRUCTURE problem in handling
	IOCTL_FEATURE_IFD_PIN_PROPERTIES.
	(IFDHControl): Handle IOCTL_CCID_ESCAPE,
	IOCTL_SMARTCARD_GET_FIRMWARE_VERSION, IOCTL_SMARTCARD_DISPLAY_LCD_MESSAGE,
	and IOCTL_SMARTCARD_READ_KEY.
	(IFDHICCPresence) [!__APPLE__]: ACR1222 reader is required to read data from
	interrupt endpoint.

	* src/pcscd_acsccid.rules: New reader "ACS ACR83U",
	"ACS ACR85 PINPad Reader ICC", "ACS ACR85 PINPad Reader PICC",
	"ACS ACR1222 Dual Reader", "ACS ACR1222 1SAM Dual Reader",
	"ACS ACR1281 Dual Reader" and "ACS APG8201".
	Rename "ACS ACR1281 CL Reader" to "ACS ACR1281 PICC Reader".
	* src/supported_readers.txt: New reader "ACS ACR83U",
	"ACS ACR85 PINPad Reader ICC", "ACS ACR85 PINPad Reader PICC",
	"ACS ACR1222 Dual Reader", "ACS ACR1222 1SAM Dual Reader",
	"ACS ACR1281 Dual Reader" and "ACS APG8201".
	Rename "ACS ACR1281 CL Reader" to "ACS ACR1281 PICC Reader".

2010-11-22  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* MacOSX/configure: Import Mac OS X 10.6 configure script from ccid-1.3.12.

	* src/pcscd_acsccid.rules: New reader "ACS ACR1281 CL Reader".
	* src/supported_readers.txt: New reader "ACS ACR1281 CL Reader".

2010-6-17  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* README: Update release information.

	* src/pcscd_acsccid.rules: New reader "ACS ACR125U nPA plus".
	* src/supported_readers.txt: New reader "ACS ACR125U nPA plus".

2010-2-10  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* src/ccid.c (ccid_open_hack_pre): Add sleep(1) after enabling the polling
	mode.

2010-2-2  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* configure.ac: Update version to 1.0.2.

	* README: Update release information.

	* src/ccid.c (ccid_open_hack_pre): Enable polling mode for ACR122U.

	* src/ccid.h (_ccid_descriptor): Member dwSamSlot and slotIccStates removed.

	* src/ccid_usb.c: Revert to previous revision.
	(Bogus_firmwares): Remove firmware version checking for ACR122U.

	* src/ifdhandler.c: Revert to previous revision.

2009-11-9  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* configure.ac: Update version to 1.0.1.

	* README: Update release information.

	* src/ccid.h: Add dwSamSlot and slotIccStates.

	* src/ccid_usb.c [HAVE_PTHREAD]: Include <pthread.h>.
	(_usbDevice) [HAVE_PTHREAD]: New member hThread, pTerminated, terminated,
	pDeviceLock, deviceLock, pStatesLock and statesLock.
	(ccid_check_firmware): Function removed.
	(GetSlotIccState) [HAVE_PTHREAD]: New function.
	(UpdateSlotIccStates) [HAVE_PTHREAD]: New function.
	(CardDetectionThread) [HAVE_PTHREAD]: New function.
	(_bogus_firmware): Structure removed.
	(Bogus_firmwares): Variable removed.
	(OpenUSBByName): Remove firmware check.
	(OpenUSBByName) [HAVE_PTHREAD]: Initialize hThread, pTerminated, terminated,
	pDeviceLock, deviceLock, pStatesLock and statesLock.
	(WriteUSB) [HAVE_PTHREAD && !_APPLE_]: Lock and unlock device.
	(ReadUSB) [HAVE_PTHREAD && !_APPLE_]: Lock and unlock device.
	(CloseUSB) [HAVE_PTHREAD && !_APPLE_]: Terminate thread and free resources.

	* src/ifdhandler.c (GetSlotIccState): New function prototype.
	(IFDHGetCapabilities) [0]: Disable polling thread support.
	(IFDHICCPresence) [HAVE_PTHREAD]: Return status from slot ICC state.

2009-9-18  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* AUTHORS: Add authors.
	* COPYING: Add LGPL-2.1+ license.

	* README: Update release information.

	* Makefile.am (EXTRA_DIST): Add MacOSX/*.
	* MacOSX/configure: New file.
	* MacOSX/convert_reader_h.pl: New file.
	* MacOSX/debuglog.h: New file.
	* MacOSX/ifdhandler.h: New file.
	* MacOSX/pcsclite.h: New file.
	* MacOSX/reader.h.in: New file.
	* MacOSX/winscard.h: New file.
	* MacOSX/wintypes.h: New file.

	* src/ccid.c (ccid_open_hack_pre): Disable InterruptRead.
	* src/ccid.h (ACS_ACR88U, ACS_ACR128U): Macro defined.
	* src/ccid_usb.c (OpenUSBByName): Add ACR88U and ACR128U support.
	(get_ccid_usb_interface): Allow 0x00 in bInterfaceClass.

2009-8-26  Godfrey Chung  <godfrey.chung@acs.com.hk>

	* src/ifdhandler.c (IFDHPowerICC): Change read timeout from 60 seconds to 4
	seconds.
