On 03/23/11 14:19, Alon Levy wrote: > diff --git a/libcacard/passthru.c b/libcacard/passthru.c > new file mode 100644 > index 0000000..d78e2db > --- /dev/null > +++ b/libcacard/passthru.c > @@ -0,0 +1,609 @@ > +/* > + * implement the applets for the CAC card. > + * > + * This work is licensed under the terms of the GNU LGPL, version 2.1 or > later. > + * See the COPYING.LIB file in the top-level directory. > + */ > +#ifdef USE_PASSTHRU > +#include <stdlib.h> > +#include <string.h> > + > +#include <pcsclite.h> > + > +#include "qemu-thread.h" > + > +#include "vcard.h" > +#include "vcard_emul.h" > +#include "card_7816.h" > +#include "vreader.h" > +#include "vcard_emul.h" > +#include "passthru.h" > + > +/* > + * Passthru applet private data > + */ > +struct VCardAppletPrivateStruct { > + char *reader_name; > + /* pcsc-lite parameters */ > + SCARDHANDLE hCard; > + uint32_t hProtocol; > + SCARD_IO_REQUEST *send_io; > + unsigned char atr[MAX_ATR_SIZE]; > + int atr_len; > +}; > + > +static SCARDCONTEXT global_context; > + > +#define MAX_RESPONSE_LENGTH 261 /*65537 */ > +/* > + * handle all the APDU's that are common to all CAC applets > + */ > +static VCardStatus > +passthru_process_apdu(VCard *card, VCardAPDU *apdu, VCardResponse **response) > +{ > + LONG rv;
Where does this odd LONG type come from? I think Windows uses LONG so having your own type would conflict with that, and of course we don't really want Windows types directly in QEMU either, so I am curious? Otherwise the code looks fine. Cheers, Jes