• A
    usb-ccid: add CCID bus · 36707144
    Alon Levy 提交于
    A CCID device is a smart card reader. It is a USB device, defined at [1].
    This patch introduces the usb-ccid device that is a ccid bus. Next patches will
    introduce two card types to use it, a passthru card and an emulated card.
    
     [1] http://www.usb.org/developers/devclass_docs/DWG_Smart-Card_CCID_Rev110.
    Signed-off-by: NAlon Levy <alevy@redhat.com>
    
    ---
    
    changes from v20->v21: (Jes Sorenson review)
     * cosmetic changes - fix multi line comments.
     * reorder fields in USBCCIDState
     * add reference to COPYING
     * add --enable-smartcard and --disable-smartcard here (moved
     from last patch)
    
    changes from v19->v20:
     * checkpatch.pl
    
    changes from v18->v19:
     * merged: ccid.h: add copyright, fix define and remove non C89 comments
     * add qdev.desc
    
    changes from v15->v16:
    
    Behavioral changes:
     * 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)
    
    whitefixes / comments / consts defines:
     * remove stale comment
     * remove ccid_print_pending_answers if no DEBUG_CCID
     * replace printf's with DPRINTF, remove DEBUG_CCID, add verbosity defines
     * use error_report
     * update copyright (most of the code is not original)
     * reword known bug comment
     * add missing closing quote in comment
     * add missing whitespace on one line
     * s/CCID_SetParameter/CCID_SetParameters/
     * add comments
     * use define for max packet size
    
    Comment for "return consistent self-powered state":
    
    the Configuration Descriptor bmAttributes claims we are self powered,
    but we were returning not self powered to USB_REQ_GET_STATUS control message.
    
    In practice, this message is not sent by a linux 2.6.35.10-74.fc14.x86_64
    guest (not tested on other guests), unless you issue lsusb -v as root (for
    example).
    36707144
usb-ccid.c 44.6 KB