[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v24 00/10] usb-ccid
From: |
Alon Levy |
Subject: |
Re: [Qemu-devel] [PATCH v24 00/10] usb-ccid |
Date: |
Mon, 28 Mar 2011 18:49:04 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, Mar 28, 2011 at 06:11:04PM +0200, Alon Levy wrote:
Sorry, please ignore this mail.
> This patchset adds three new devices, usb-ccid, ccid-card-passthru and
> ccid-card-emulated, providing a CCID bus, a simple passthru protocol
> implementing card requiring a client, and a standalone emulated card.
>
> It also introduces a new directory libcaccard with CAC card emulation,
> CAC is a type of ISO 7816 smart card.
>
> Tree for pull: git://anongit.freedesktop.org/~alon/qemu usb_ccid.v23
>
> v23->v24 changes:
> * libcacard:
> = changed patches: (that need re-review)
> * 6 - libcacard: initial commit
> * 7 - libcacard: add vscclient
> * 5 - ccid: add passthru card device
> * drop "libcacard add passthru" patch, not ready, not used.
> * remove unrequired includes
> * use stderr in vscclient for printing errors
> * cosmetic fixes
>
> v22->v23 changes:
> * libcacard
> * configure fixes: (reported by Stefan Hajnoczi)
> * test a = b, not a == b (second isn't portable)
> * quote $source_path in case it contains spaces
> - this doesn't really help since there are many other places
> that need similar fixes, not introduced by this patch.
>
> v21->v22 changes:
> * libcacard:
> * fix configure to not link libcacard if nss not found
> (reported by Stefan Hajnoczi)
> * fix vscclient linkage with simpletrace backend
> (reported by Stefan Hajnoczi)
> * card_7816.c: add missing break in ERROR_DATA_NOT_FOUND
> (reported by William van de Velde)
>
> v20->v21 changes:
> * all: cosmetics
> * libcacard, ccid-card-passthru:
> * use qemu-{malloc,free} and qemu-thread, error_report
> * libcacard:
> * split to multiple patches
>
> v19->v20 changes:
> * checkpatch.pl. Here are the remaining errors with explanation:
> * ignored 5 macro errors of the type
> "ERROR: Macros with complex values should be enclosed in parenthesis"
> because fixing them breaks current code, if it really bothers someone
> I can fix it.
> * four of them are in libcacard/card_7816t.h:
> /* give the subfields a unified look */
> ..
> #define a_cla a_header->ah_cla /* class */
> #define a_ins a_header->ah_ins /* instruction */
> #define a_p1 a_header->ah_p1 /* parameter 1 */
> #define a_p2 a_header->ah_p2 /* parameter 2 */
> * and the fifth:
> #4946: FILE: libcacard/vcardt.h:31:
> +#define VCARD_ATR_PREFIX(size) 0x3b, 0x66+(size), 0x00, 0xff, \
> + 'V', 'C', 'A', 'R', 'D', '_'
> * Ignored this warning since I couldn't figure it out, and it's a test
> file:
> WARNING: externs should be avoided in .c files
> #2343: FILE: libcacard/link_test.c:7:
> +VCardStatus cac_card_init(const char *flags, VCard *card,
>
> v18-v19 changes:
> * more merges, down to a single digit number of patches.
> * drop enumeration property, use string.
> * rebased (trivial)
>
> v17-v18 changes:
> * merge vscard_common.h patches.
> * actually provide a tree to pull.
>
> v16-v17 changes:
> * merged all the "v15->v16" patches
> * merged some more wherever it was easy (all same file commits).
> * added signed off by to first four patches
> * ccid.h: added copyright, removed underscore in defines, and replaced
> non C89 comments
>
> v15-v16 changes:
> * split vscard_common introducing patch for ease of review
> * sum of commit logs for the v15-v16 commits: (whitespace fixes
> removed for space, see original commit messages in later patches)
> * usb-ccid:
> * fix abort on client answer after card remove
> * enable migration
> * remove side affect code from asserts
> * return consistent self-powered state
> * mask out reserved bits in ccid_set_parameters
> * add missing abRFU in SetParameters (no affect on linux guest)
> * vscard_common.h protocol change:
> * VSCMsgInit capabilities and magic
> * removed ReaderResponse, will use Error instead with code==VSC_SUCCESS.
> * added Flush and FlushComplete, remove Reconnect.
> * define VSCARD_MAGIC
> * added error code VSC_SUCCESS.
> * ccid-card-passthru
> * return correct size
> * return error instead of assert if client sent too large ATR
> * don't assert if client sent too large a size, but add asserts for
> indices to buffer
> * reset vscard_in indices on chardev disconnect
> * handle init from client
> * error if no chardev supplied
> * use ntoh, hton
> * eradicate reader_id_t
> * remove Reconnect usage (removed from VSCARD protocol)
> * send VSC_SUCCESS on card insert/remove and reader add/remove
> * ccid-card-emulated
> * fix error reporting in initfn
>
> v14-v15 changes:
> * add patch with --enable-smartcard and --disable-smartcard and only
> disable ccid-card-emulated if nss not found.
> * add patch with description strings
> * s/libcaccard/libcacard/ in docs/ccid.txt
>
> v13-v14 changes:
> - support device_del/device_add on ccid-card-* and usb-ccid
> * usb-ccid:
> * lose card reference when card device deleted
> * check slot number and deny adding a slot if one is already added.
> * ccid-card-*: use qdev_simple_unplug_cb in both emulated and passthru ccid
> cards,
> the exitfn already takes care of triggering card removal in the usb dev.
> * libcacard:
> * remove double include of config-host.mak
> * add replay of card events to libcacard to support second and more
> emulation
> * don't initialize more then once (doesn't support it right now, so one
> thread, NSS thread, is left when device_del is done)
> * add VCARD_EMUL_INIT_ALREADY_INITED
> * ccid-card-emulated:
> * take correct mutexes on signaling to fix deadlocks on device_del
> * allow card insertion/removal event without proper reader insertion event
>
> v12-v13 changes:
> * libcacard:
> * fix Makefile clean to remove vscclient
> * fix double include of config-host in Makefile
> * usb-ccid: remove attach/detach logic, usb is always attached. Guest
> doesn't care if there is a reader attached with no card anyway.
> * ccid-card-passthru: don't close chr_dev on removal, makes it possible
> to use device_del/device_add to create remove/insertion for debugging.
>
> v11-v12 changes:
> * fix out of tree build
>
> v10-v11 changes:
> * fix last patch that removed one of the doc files.
> * updated flow table in docs/ccid.txt
>
> v8-v10 changes:
> * usb-ccid:
> * add slot for future use (Gerd)
> * ifdef ENABLE_MIGRATION for migration support on account of usb
> migration not being ready in general. (Gerd)
> * verbosified commit messages. (Gerd)
> * put libcacard docs in libcacard commit. (Gerd)
>
> v8-v9 changes:
> * Blue Swirl comments:
> * white space fixes
> * enabled by default, disabled only if missing nss
> * forgotten fix from v8 (don't build libcacard.so)
> * added a note about device being little endian
> * library renamed from libcaccard to libcacard
> * squashed both of libcacard patches, they touched different files anyway.
>
> v7-v8 changes:
> * Blue Swirl comments:
> * usb-ccid: deannonymize some structs
> * usb-ccid: coding style change - answer_t and bulk_in_t fixed
> * usb-ccid: handle endianess conversion between guest and host
> * usb-ccid: s/ccid_bulk_in_copy_out/ccid_bulk_in_copy_to_guest/
> * ccid-card-emulated: fix segfault if backend not specified
> * ccid-card-emulated: let last reader inserted win
> * libcaccard: remove double vscard_common.h
>
> v6->v7 changes:
> * external libcaccard became internal directory libcaccard
> * statically link object files into qemu
> * produce libcaccard.so for usage by external projects
> * applied coding style to new code (please check me)
> - did not use the qemu options parsing for libcaccard, since
> it seems to draw large amounts of qemu code (monitor for instance).
>
> v5->v6 changes:
> * really remove static debug (I apologize for claiming to have done so
> before)
>
> v4->v5 changes:
> * rebased to latest
> * remove static debug in card devices
> * fix --enable-smartcard to link
> * stall instead of assert when exceeding BULK_OUT_DATA_SIZE
> * make ccid_reserve_recv_buf for too large len discard message, not exit
> * make ccid_reserve_recv_buf return void*
> * fix typo
> * remove commented code in VMState
>
> v3->v4:
> * remove ccid field in CCIDBus
> * remove static debug in bus
> * add back docs
>
> v2->v3:
> * split into bus (usb-ccid.c, uses ccid.h) and card (ccid-card-passthru.c).
> * removed documentation (being revised).
>
> v1->v2:
> * all QSIMPLEQ turned into fixed sized rings
> * all allocated buffers turned into fixed size buffers
> * added migration support
> * added a message to tell client qemu has migrated to ip:port
> * for lack of monitor commands ip:port are 0:0, which causes the updated
> vscclient to connect to one port higher on the same host. will add monitor
> commands in a separate patch. tested with current setup.
> Alon Levy (7):
> trace: move trace objects from Makefile to Makefile.objs
> qemu-thread.h: include inttypes.h
> usb-ccid: add CCID bus
> introduce libcacard/vscard_common.h
> ccid: add passthru card device
> ccid: add ccid-card-emulated device
> ccid: add docs
>
> Robert Relyea (3):
> libcacard: initial commit
> libcacard: add vscclient
> libcacard: add docs
>
> Makefile | 38 +-
> Makefile.objs | 39 ++
> Makefile.target | 2 +
> configure | 60 ++
> docs/ccid.txt | 135 ++++
> docs/libcacard.txt | 483 +++++++++++++++
> hw/ccid-card-emulated.c | 595 ++++++++++++++++++
> hw/ccid-card-passthru.c | 340 +++++++++++
> hw/ccid.h | 59 ++
> hw/usb-ccid.c | 1419
> +++++++++++++++++++++++++++++++++++++++++++
> libcacard/Makefile | 22 +
> libcacard/cac.c | 403 ++++++++++++
> libcacard/cac.h | 23 +
> libcacard/card_7816.c | 763 +++++++++++++++++++++++
> libcacard/card_7816.h | 62 ++
> libcacard/card_7816t.h | 165 +++++
> libcacard/event.c | 106 ++++
> libcacard/eventt.h | 29 +
> libcacard/link_test.c | 22 +
> libcacard/vcard.c | 339 +++++++++++
> libcacard/vcard.h | 86 +++
> libcacard/vcard_emul.h | 65 ++
> libcacard/vcard_emul_nss.c | 1157 +++++++++++++++++++++++++++++++++++
> libcacard/vcard_emul_type.c | 57 ++
> libcacard/vcard_emul_type.h | 32 +
> libcacard/vcardt.h | 64 ++
> libcacard/vevent.h | 27 +
> libcacard/vreader.c | 513 ++++++++++++++++
> libcacard/vreader.h | 55 ++
> libcacard/vreadert.h | 24 +
> libcacard/vscard_common.h | 178 ++++++
> libcacard/vscclient.c | 652 ++++++++++++++++++++
> qemu-thread.h | 2 +
> 33 files changed, 7982 insertions(+), 34 deletions(-)
> create mode 100644 docs/ccid.txt
> create mode 100644 docs/libcacard.txt
> create mode 100644 hw/ccid-card-emulated.c
> create mode 100644 hw/ccid-card-passthru.c
> create mode 100644 hw/ccid.h
> create mode 100644 hw/usb-ccid.c
> create mode 100644 libcacard/Makefile
> create mode 100644 libcacard/cac.c
> create mode 100644 libcacard/cac.h
> create mode 100644 libcacard/card_7816.c
> create mode 100644 libcacard/card_7816.h
> create mode 100644 libcacard/card_7816t.h
> create mode 100644 libcacard/event.c
> create mode 100644 libcacard/eventt.h
> create mode 100644 libcacard/link_test.c
> create mode 100644 libcacard/vcard.c
> create mode 100644 libcacard/vcard.h
> create mode 100644 libcacard/vcard_emul.h
> create mode 100644 libcacard/vcard_emul_nss.c
> create mode 100644 libcacard/vcard_emul_type.c
> create mode 100644 libcacard/vcard_emul_type.h
> create mode 100644 libcacard/vcardt.h
> create mode 100644 libcacard/vevent.h
> create mode 100644 libcacard/vreader.c
> create mode 100644 libcacard/vreader.h
> create mode 100644 libcacard/vreadert.h
> create mode 100644 libcacard/vscard_common.h
> create mode 100644 libcacard/vscclient.c
>
> --
> 1.7.4.1
>
>
- [Qemu-devel] [PATCH v24 00/10] usb-ccid, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH 01/10] trace: move trace objects from Makefile to Makefile.objs, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH 04/10] introduce libcacard/vscard_common.h, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH 02/10] qemu-thread.h: include inttypes.h, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH 10/10] ccid: add docs, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH v24 00/10] usb-ccid, Alon Levy, 2011/03/28
- Re: [Qemu-devel] [PATCH v24 00/10] usb-ccid,
Alon Levy <=
- [Qemu-devel] [PATCH 05/10] ccid: add passthru card device, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH 07/10] libcacard: add vscclient, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH 09/10] ccid: add ccid-card-emulated device, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH 08/10] libcacard: add docs, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH 06/10] libcacard: initial commit, Alon Levy, 2011/03/28
- [Qemu-devel] [PATCH 03/10] usb-ccid: add CCID bus, Alon Levy, 2011/03/28
- Re: [Qemu-devel] [PATCH v24 00/10] usb-ccid, Jes Sorensen, 2011/03/29