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

Reply via email to