On Mon, Mar 28, 2011 at 03:27:49PM +0200, Jes Sorensen wrote: > 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?
Using the "not my code" defence, so no idea. I'll fix. > > Otherwise the code looks fine. > > Cheers, > Jes