[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/26] ccid-card-passthru, dev-smartcard-reader: add
From: |
Alon Levy |
Subject: |
[Qemu-devel] [PATCH 13/26] ccid-card-passthru, dev-smartcard-reader: add debug environment variables |
Date: |
Mon, 18 Mar 2013 15:10:59 +0200 |
From: Alon Levy <address@hidden>
This overrides whatever debug value is set on the corresponding devices
from the command line, and is meant to ease the usage with any
management stack. For libvirt you can set environment variables by
extending the dom namespace, i.e:
<domain type='kvm' id='3'
xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<qemu:commandline>
<qemu:env name='QEMU_CCID_PASSTHRU_DEBUG' value='4'/>
<qemu:env name='QEMU_CCID_DEBUG' value='4'/>
</qemu:commandline>
</domain>
Signed-off-by: Alon Levy <address@hidden>
---
hw/ccid-card-passthru.c | 16 ++++++++++++++++
hw/usb/dev-smartcard-reader.c | 16 ++++++++++++++++
2 files changed, 32 insertions(+)
diff --git a/hw/ccid-card-passthru.c b/hw/ccid-card-passthru.c
index 111894f..80fe514 100644
--- a/hw/ccid-card-passthru.c
+++ b/hw/ccid-card-passthru.c
@@ -350,6 +350,22 @@ static int passthru_initfn(CCIDCardState *base)
error_report("missing chardev");
return -1;
}
+ {
+ char *debug_env = getenv("QEMU_CCID_PASSTHRU_DEBUG");
+ char *inv = NULL;
+ int debug;
+ if (debug_env) {
+ debug = strtol(debug_env, &inv, 10);
+ if (inv != debug_env) {
+ if (debug < 0 || debug > D_VERBOSE) {
+ fprintf(stderr, "warning: QEMU_CCID_PASSTHRU_DEBUG"
+ " not in [0, %d]", D_VERBOSE);
+ } else {
+ card->debug = debug;
+ }
+ }
+ }
+ }
assert(sizeof(DEFAULT_ATR) <= MAX_ATR_SIZE);
memcpy(card->atr, DEFAULT_ATR, sizeof(DEFAULT_ATR));
card->atr_length = sizeof(DEFAULT_ATR);
diff --git a/hw/usb/dev-smartcard-reader.c b/hw/usb/dev-smartcard-reader.c
index caebc1c..fc950c8 100644
--- a/hw/usb/dev-smartcard-reader.c
+++ b/hw/usb/dev-smartcard-reader.c
@@ -1201,6 +1201,22 @@ static int ccid_initfn(USBDevice *dev)
s->bulk_out_pos = 0;
ccid_reset_parameters(s);
ccid_reset(s);
+ {
+ char *debug_env = getenv("QEMU_CCID_DEBUG");
+ char *inv = NULL;
+ int debug;
+ if (debug_env) {
+ debug = strtol(debug_env, &inv, 10);
+ if (inv != debug_env) {
+ if (debug < 0 || debug > D_VERBOSE) {
+ fprintf(stderr, "warning: QEMU_CCID_PASSTHRU_DEBUG"
+ " not in [0, %d]", D_VERBOSE);
+ } else {
+ s->debug = debug;
+ }
+ }
+ }
+ }
return 0;
}
--
1.8.1.4
- [Qemu-devel] [PATCH 05/26] libcacard: use system config directory for nss db on win32, (continued)
- [Qemu-devel] [PATCH 05/26] libcacard: use system config directory for nss db on win32, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 11/26] libcacard: teach vscclient to use GMainLoop for portability, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 10/26] libcacard: vscclient to use QemuThread for portability, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 12/26] hw/ccid-card-passthru.c: add atr check, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 08/26] libcacard: fix mingw64 cross-compilation, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 09/26] libcacard: split vscclient main() from socket reading, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 15/26] hw/usb/dev-smartcard-reader.c: nicer debug messages, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 13/26] ccid-card-passthru, dev-smartcard-reader: add debug environment variables,
Alon Levy <=
- [Qemu-devel] [PATCH 16/26] hw/usb/dev-smartcard-reader.c: remove aborts (never triggered, but just in case), Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 14/26] hw/usb/dev-smartcard-reader.c: white space fixes, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 17/26] hw/usb/dev-smartcard-reader.c: define structs for CCID_Parameter internals, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 22/26] libcacard/vreader: add debugging messages for apdu, Alon Levy, 2013/03/18
- [Qemu-devel] [PATCH 20/26] hw/usb/dev-smartcard-reader: support windows guest, Alon Levy, 2013/03/18