From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=34608 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q4CUQ-0000Q9-17 for qemu-devel@nongnu.org; Mon, 28 Mar 2011 09:28:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q4CUO-0002FZ-OA for qemu-devel@nongnu.org; Mon, 28 Mar 2011 09:28:13 -0400 Received: from mx1.redhat.com ([209.132.183.28]:65041) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q4CUO-0002FQ-ET for qemu-devel@nongnu.org; Mon, 28 Mar 2011 09:28:12 -0400 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p2SDSAkw010825 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 28 Mar 2011 09:28:10 -0400 Message-ID: <4D908CD5.5030301@redhat.com> Date: Mon, 28 Mar 2011 15:27:49 +0200 From: Jes Sorensen MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH v23 08/11] libcacard: add passthru References: <1300886393-2799-1-git-send-email-alevy@redhat.com> <1300886393-2799-9-git-send-email-alevy@redhat.com> In-Reply-To: <1300886393-2799-9-git-send-email-alevy@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alon Levy Cc: qemu-devel@nongnu.org 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 > +#include > + > +#include > + > +#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