[libvirt] [PATCH v2 0/8] Improve logging when QEMU caps fails
by Daniel P. Berrange
A followup to
https://www.redhat.com/archives/libvir-list/2014-February/msg01395.html
In v2:
- Added several docs improvements
- Fixed typos
- Add missing translation
Daniel P. Berrange (8):
Send virLogMetadata fields onto the journal
Fix journald PRIORITY values
Fix heading level in logging docs
Auto-generate the table of contents in logging doc
Add docs about use of systemd journal for logging
Include error domain and code in log messages from errors
Add comments describing the different log sources
Generate a unique journald log for QEMU capabilities failure
docs/logging.html.in | 124 ++++++++++++++++++++++++++++++++-----------
src/qemu/qemu_capabilities.c | 30 ++++++++++-
src/util/virerror.c | 8 ++-
src/util/virlog.c | 40 ++++++++++++--
src/util/virlog.h | 10 ++--
5 files changed, 170 insertions(+), 42 deletions(-)
--
1.8.5.3
10 years, 8 months
[libvirt] [PATCH] qemu: Enable 'host-passthrough' cpu mode for arm
by Oleg Strikov
This patch allows libvirt user to specify 'host-passthrough'
cpu mode while using qemu/kvm backend on arm (arm32).
It uses 'host' as a CPU model name instead of some other stub
(correct CPU detection is not implemented yet) to allow libvirt
user to specify 'host-model' cpu mode as well.
Signed-off-by: Oleg Strikov <oleg.strikov(a)canonical.com>
---
This is a port of the following aarch64-specific change:
http://libvirt.org/git/?p=libvirt.git;a=commit;h=29ea437e408e441bad67e4ff...
Only function names were changed.
---
src/cpu/cpu_arm.c | 30 ++++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/src/cpu/cpu_arm.c b/src/cpu/cpu_arm.c
index 1853810..5baff42 100644
--- a/src/cpu/cpu_arm.c
+++ b/src/cpu/cpu_arm.c
@@ -26,6 +26,7 @@
#include "viralloc.h"
#include "cpu.h"
+#include "virstring.h"
#define VIR_FROM_THIS VIR_FROM_CPU
@@ -45,16 +46,19 @@ ArmNodeData(virArch arch)
}
static int
-ArmDecode(virCPUDefPtr cpu ATTRIBUTE_UNUSED,
+ArmDecode(virCPUDefPtr cpu,
const virCPUData *data ATTRIBUTE_UNUSED,
const char **models ATTRIBUTE_UNUSED,
unsigned int nmodels ATTRIBUTE_UNUSED,
const char *preferred ATTRIBUTE_UNUSED,
unsigned int flags)
{
-
virCheckFlags(VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES, -1);
+ if (cpu->model == NULL &&
+ VIR_STRDUP(cpu->model, "host") < 0)
+ return -1;
+
return 0;
}
@@ -64,6 +68,24 @@ ArmDataFree(virCPUDataPtr data)
VIR_FREE(data);
}
+static int
+ArmUpdate(virCPUDefPtr guest,
+ const virCPUDef *host)
+{
+ guest->match = VIR_CPU_MATCH_EXACT;
+ virCPUDefFreeModel(guest);
+ return virCPUDefCopyModel(guest, host, true);
+}
+
+static virCPUCompareResult
+ArmGuestData(virCPUDefPtr host ATTRIBUTE_UNUSED,
+ virCPUDefPtr guest ATTRIBUTE_UNUSED,
+ virCPUDataPtr *data ATTRIBUTE_UNUSED,
+ char **message ATTRIBUTE_UNUSED)
+{
+ return VIR_CPU_COMPARE_IDENTICAL;
+}
+
struct cpuArchDriver cpuDriverArm = {
.name = "arm",
.arch = archs,
@@ -73,8 +95,8 @@ struct cpuArchDriver cpuDriverArm = {
.encode = NULL,
.free = ArmDataFree,
.nodeData = ArmNodeData,
- .guestData = NULL,
+ .guestData = ArmGuestData,
.baseline = NULL,
- .update = NULL,
+ .update = ArmUpdate,
.hasFeature = NULL,
};
--
1.7.9.5
10 years, 8 months
[libvirt] [PATCH LIBVIRT] libxl: Recognise ARM architectures
by Ian Campbell
Only tested on v7 but the v8 equivalent seems pretty obvious.
XEN_CAP_REGEX already accepts more than it should (e.g. x86_64p or x86_32be)
but I have stuck with the existing pattern.
With this I can create a guest from:
<domain type='xen'>
<name>libvirt-test</name>
<uuid>6343998e-9eda-11e3-98f6-77252a7d02f3</uuid>
<memory>393216</memory>
<currentMemory>393216</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='armv7l' machine='xenpv'>linux</type>
<kernel>/boot/vmlinuz-arm-native</kernel>
<cmdline>console=hvc0 earlyprintk debug root=/dev/xvda1</cmdline>
</os>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<disk type='block' device='disk'>
<source dev='/dev/marilith-n0/debian-disk'/>
<target dev='xvda1'/>
</disk>
<interface type='bridge'>
<mac address='8e:a7:8e:3c:f4:f6'/>
<source bridge='xenbr0'/>
</interface>
</devices>
</domain>
Using virsh create and I can destroy it too.
Currently virsh console fails with:
Connected to domain libvirt-test
Escape character is ^]
error: internal error: cannot find character device <null>
I haven't investigated yet.
Signed-off-by: Ian Campbell <ian.campbell(a)citrix.com>
---
src/libxl/libxl_conf.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 4cefadf..7ed692d 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -61,7 +61,7 @@ struct guest_arch {
int ia64_be;
};
-#define XEN_CAP_REGEX "(xen|hvm)-[[:digit:]]+\\.[[:digit:]]+-(x86_32|x86_64|ia64|powerpc64)(p|be)?"
+#define XEN_CAP_REGEX "(xen|hvm)-[[:digit:]]+\\.[[:digit:]]+-(aarch64|armv7l|x86_32|x86_64|ia64|powerpc64)(p|be)?"
static virClassPtr libxlDriverConfigClass;
@@ -319,8 +319,11 @@ libxlCapsInitGuests(libxl_ctx *ctx, virCapsPtr caps)
}
else if (STRPREFIX(&token[subs[2].rm_so], "powerpc64")) {
arch = VIR_ARCH_PPC64;
+ } else if (STRPREFIX(&token[subs[2].rm_so], "armv7l")) {
+ arch = VIR_ARCH_ARMV7L;
+ } else if (STRPREFIX(&token[subs[2].rm_so], "aarch64")) {
+ arch = VIR_ARCH_AARCH64;
} else {
- /* XXX arm ? */
continue;
}
--
1.7.10.4
10 years, 8 months
[libvirt] [PATCH] domblkstat: Produce error message that at least sounds like English
by Michal Privoznik
Compare:
# virsh domblkstat freebsd hdd
error: Failed to get block stats freebsd hdd
error: invalid argument: invalid path: hdd
with:
# virsh domblkstat freebsd hdd
error: Failed to get block stats for domain 'freebsd' device 'hdd'
error: invalid argument: invalid path: hdd
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
tools/virsh-domain-monitor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
index bd89499..bcc5526 100644
--- a/tools/virsh-domain-monitor.c
+++ b/tools/virsh-domain-monitor.c
@@ -957,7 +957,7 @@ cmdDomblkstat(vshControl *ctl, const vshCmd *cmd)
params = vshCalloc(ctl, nparams, sizeof(*params));
if (virDomainBlockStatsFlags(dom, device, params, &nparams, 0) < 0) {
- vshError(ctl, _("Failed to get block stats %s %s"), name, device);
+ vshError(ctl, _("Failed to get block stats for domain '%s' device '%s'"), name, device);
goto cleanup;
}
--
1.9.0
10 years, 8 months
[libvirt] [PATCH] virDomainBlockStats(Flags): Produce saner error message on empty disk path
by Michal Privoznik
As of 0bd2ccdec an empty disk path for virDomainBlockStats (or the one
with Flags) is allowed meaning "get me overall summarized statistics".
However, running 'virsh domblkstat $dom' throws a misleading error:
# ./tools/virsh domblkstat dom
error: Failed to get block stats dom
error: invalid argument: invalid path:
while after this commit
# virsh domblkstat dom
error: Operation not supported: summary statistics are not supported yet
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_driver.c | 12 ++++++++++++
src/test/test_driver.c | 6 ++++++
2 files changed, 18 insertions(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index c9a865e..e04a328 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -9434,6 +9434,12 @@ qemuDomainBlockStats(virDomainPtr dom,
virDomainDiskDefPtr disk = NULL;
qemuDomainObjPrivatePtr priv;
+ if (!*path) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+ _("summary statistics are not supported yet"));
+ return ret;
+ }
+
if (!(vm = qemuDomObjFromDomain(dom)))
goto cleanup;
@@ -9507,6 +9513,12 @@ qemuDomainBlockStatsFlags(virDomainPtr dom,
virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1);
+ if (!*path) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+ _("summary statistics are not supported yet"));
+ return ret;
+ }
+
/* We don't return strings, and thus trivially support this flag. */
flags &= ~VIR_TYPED_PARAM_STRING_OKAY;
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index b724f82..6806ffd 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -3362,6 +3362,12 @@ static int testDomainBlockStats(virDomainPtr domain,
unsigned long long statbase;
int ret = -1;
+ if (!*path) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+ _("summary statistics are not supported yet"));
+ return ret;
+ }
+
testDriverLock(privconn);
privdom = virDomainObjListFindByName(privconn->domains,
domain->name);
--
1.9.0
10 years, 8 months
[libvirt] [PATCH] virDomainGetCPUStats: fix boundary value problem of start_cpu
by Jincheng Miao
This API has boundary value problem, if start_cpu is equal to
the number of cpus, no error infomation will be reported.
This is because the confused meaning of variable max_id,
so change the comparision and rename the variable max_id to total_num.
Signed-off-by: Jincheng Miao <jmiao(a)redhat.com>
---
src/qemu/qemu_driver.c | 18 +++++++++---------
src/util/vircgroup.c | 18 +++++++++---------
tools/virsh-domain.c | 12 ++++++------
3 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index c9a865e..54b8e5b 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15983,7 +15983,7 @@ qemuDomainGetPercpuStats(virDomainObjPtr vm,
{
int rv = -1;
size_t i;
- int id, max_id;
+ int id, total_num;
char *pos;
char *buf = NULL;
unsigned long long *sum_cpu_time = NULL;
@@ -15999,19 +15999,19 @@ qemuDomainGetPercpuStats(virDomainObjPtr vm,
return QEMU_NB_PER_CPU_STAT_PARAM;
/* To parse account file, we need to know how many cpus are present. */
- max_id = nodeGetCPUCount();
- if (max_id < 0)
+ total_num = nodeGetCPUCount();
+ if (total_num < 0)
return rv;
- if (ncpus == 0) { /* returns max cpu ID */
- rv = max_id;
+ if (ncpus == 0) { /* returns total number of cpu */
+ rv = total_num;
goto cleanup;
}
- if (start_cpu > max_id) {
+ if (start_cpu > total_num - 1) {
virReportError(VIR_ERR_INVALID_ARG,
_("start_cpu %d larger than maximum of %d"),
- start_cpu, max_id);
+ start_cpu, total_num - 1);
goto cleanup;
}
@@ -16024,8 +16024,8 @@ qemuDomainGetPercpuStats(virDomainObjPtr vm,
param_idx = 0;
/* number of cpus to compute */
- if (start_cpu >= max_id - ncpus)
- id = max_id - 1;
+ if (start_cpu + ncpus >= total_num)
+ id = total_num - 1;
else
id = start_cpu + ncpus - 1;
diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
index 0f04b4d..2af06af 100644
--- a/src/util/vircgroup.c
+++ b/src/util/vircgroup.c
@@ -2836,7 +2836,7 @@ virCgroupGetPercpuStats(virCgroupPtr group,
{
int rv = -1;
size_t i;
- int id, max_id;
+ int id, total_num;
char *pos;
char *buf = NULL;
virTypedParameterPtr ent;
@@ -2848,19 +2848,19 @@ virCgroupGetPercpuStats(virCgroupPtr group,
return CGROUP_NB_PER_CPU_STAT_PARAM;
/* To parse account file, we need to know how many cpus are present. */
- max_id = nodeGetCPUCount();
- if (max_id < 0)
+ total_num = nodeGetCPUCount();
+ if (total_num < 0)
return rv;
- if (ncpus == 0) { /* returns max cpu ID */
- rv = max_id;
+ if (ncpus == 0) { /* returns total number of cpu */
+ rv = total_num;
goto cleanup;
}
- if (start_cpu > max_id) {
+ if (start_cpu > total_num - 1) {
virReportError(VIR_ERR_INVALID_ARG,
_("start_cpu %d larger than maximum of %d"),
- start_cpu, max_id);
+ start_cpu, total_num - 1);
goto cleanup;
}
@@ -2873,8 +2873,8 @@ virCgroupGetPercpuStats(virCgroupPtr group,
param_idx = 0;
/* number of cpus to compute */
- if (start_cpu >= max_id - ncpus)
- id = max_id - 1;
+ if (start_cpu + ncpus >= total_num)
+ id = total_num - 1;
else
id = start_cpu + ncpus - 1;
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 3e73340..0ead80f 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -6331,7 +6331,7 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
{
virDomainPtr dom;
virTypedParameterPtr params = NULL;
- int pos, max_id, cpu = 0, show_count = -1, nparams = 0;
+ int pos, total_num, cpu = 0, show_count = -1, nparams = 0;
size_t i, j;
bool show_total = false, show_per_cpu = false;
unsigned int flags = 0;
@@ -6376,12 +6376,12 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
goto do_show_total;
/* get number of cpus on the node */
- if ((max_id = virDomainGetCPUStats(dom, NULL, 0, 0, 0, flags)) < 0)
+ if ((total_num = virDomainGetCPUStats(dom, NULL, 0, 0, 0, flags)) < 0)
goto failed_stats;
- if (show_count < 0 || show_count > max_id) {
- if (show_count > max_id)
- vshPrint(ctl, _("Only %d CPUs available to show\n"), max_id);
- show_count = max_id;
+ if (show_count < 0 || show_count > total_num) {
+ if (show_count > total_num)
+ vshPrint(ctl, _("Only %d CPUs available to show\n"), total_num);
+ show_count = total_num;
}
/* get percpu information */
--
1.8.5.3
10 years, 8 months
[libvirt] [PATCH] tests: avoid littering /tmp
by Eric Blake
Running 'make -C tests check TESTS=qemuagenttest' left a directory
/tmp/libvirt_XXXXXX/ behind. The culprit was failure to cleanup
when short-circuiting an expensive test.
* tests/qemuagenttest.c (testQemuAgentTimeout): Free resources
when skipping expensive test.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
Pushing under the trivial rule.
tests/qemuagenttest.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/tests/qemuagenttest.c b/tests/qemuagenttest.c
index 7a49b0b..b5bcbe3 100644
--- a/tests/qemuagenttest.c
+++ b/tests/qemuagenttest.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013 Red Hat, Inc.
+ * Copyright (C) 2013, 2014 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -538,8 +538,10 @@ testQemuAgentTimeout(const void *data)
if (!test)
return -1;
- if (virTestGetExpensive() == 0)
- return EXIT_AM_SKIP;
+ if (virTestGetExpensive() == 0) {
+ ret = EXIT_AM_SKIP;
+ goto cleanup;
+ }
if (qemuMonitorTestAddHandler(test, qemuAgentTimeoutTestMonitorHandler,
NULL, NULL) < 0)
--
1.8.5.3
10 years, 8 months
[libvirt] [PATCH 0/4] qemu: export disk snapshot capability
by Francesco Romani
This patch series extend the QEMU capabilities XML to report
if the underlying QEMU binary supports, or not, the live
disk snapshotting.
Without this patch series, the only way to know if QEMU
has this support is to actually request a disk snapshot and
to see what happens.
The change is split in four patches:
* patch #1
actually adds the new element in the QEMU capabilities XML.
formatcaps.html.in wasn't very detailed about the actual XML format,
so I've not updated it.
Anyone feel free to point out what should be added, and I'll comply.
The new element has the form
<disksnapshot default='value' toggle='off'>
because I'd like to convey two informations:
- disk snapshot is supposed to be here, and it is (default='on')
- disk snapshot is supposed to be here, and is NOT (default='off')
Put in a different way, I tried to help the client as much as
possible.
I'm not particolary fond of this format, and I'm really open to
alternatives here. Perhaps a simpler <disksnapshot/> element can
convey the same meaning? Suggestions welcome.
* patches #2, #3
Are trivial and they provide the ground for the last patch which
add a new unit tests. They are just dependencies for it.
I tried to make them less invasive as possible.
* patch #4
add a new unit test, aiming to test not only this new feature
but also the whole XML capabilities test.
I was under the impression that this kind of test do not really
fit into existing one, so I added a new one.
Suggestions about possible improvements for this test are welcome
Francesco Romani (4):
qemu: export disk snapshot support in capabilities
qemu: add function to fill capabilities cache
qemu: export the virQEMUCapsInitGuest function.
qemu: add unit tests for the capabilities xml
.gitignore | 1 +
docs/schemas/capability.rng | 6 +
src/qemu/qemu_capabilities.c | 40 +++-
src/qemu/qemu_capabilities.h | 4 +
tests/Makefile.am | 10 +-
tests/qemucaps2xmldata/all_1.6.0-1.caps | 142 ++++++++++++++
tests/qemucaps2xmldata/all_1.6.0-1.xml | 51 +++++
tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.caps | 141 +++++++++++++
tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.xml | 51 +++++
tests/qemucaps2xmltest.c | 217 +++++++++++++++++++++
10 files changed, 655 insertions(+), 8 deletions(-)
create mode 100644 tests/qemucaps2xmldata/all_1.6.0-1.caps
create mode 100644 tests/qemucaps2xmldata/all_1.6.0-1.xml
create mode 100644 tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.caps
create mode 100644 tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.xml
create mode 100644 tests/qemucaps2xmltest.c
--
1.8.4.2
10 years, 8 months
[libvirt] [PATCH v3 0/4] support dumping guest memory in compressed format
by qiaonuohan
dumping guest's memroy is introduced without compression supported, and this is
a freature regression of 'virsh dump --memory-only'. This patchset is used to
add support in libvirt side to make qemu dump guest's memory in kdump-compressed
format and please refer the following address to see implementation of the qemu
side, the lastest version of qemu side is v9(ready for being queued).
http://lists.nongnu.org/archive/html/qemu-devel/2014-02/msg03016.html
ChangLog:
Changes from v2 to v3:
1. address Jiri Denemark's comment about adding a new public API instead of
changing an old one.
Changes from v1 to v2:
1. address Daniel P. Berrange's comment about using a new parameter to replace
flags like VIR_DUMP_COMPRESS_ZLIB.
qiaonuohan (4):
add new virDomainMemoryDump API
wire up qemu agent to virDomainMemoryDump API
allow "virsh dump --memory-only" specify dump format
add dump_memory_format in qemu.conf
include/libvirt/libvirt.h.in | 21 +++++++++
src/access/viraccessperm.c | 2 +-
src/access/viraccessperm.h | 6 +++
src/driver.h | 7 +++
src/libvirt.c | 95 ++++++++++++++++++++++++++++++++++++++
src/libvirt_public.syms | 5 ++
src/qemu/libvirtd_qemu.aug | 1 +
src/qemu/qemu.conf | 13 +++++-
src/qemu/qemu_conf.c | 3 ++
src/qemu/qemu_conf.h | 2 +
src/qemu/qemu_driver.c | 73 +++++++++++++++++++++++++----
src/qemu/qemu_monitor.c | 7 +--
src/qemu/qemu_monitor.h | 3 +-
src/qemu/qemu_monitor_json.c | 4 +-
src/qemu/qemu_monitor_json.h | 3 +-
src/qemu/test_libvirtd_qemu.aug.in | 1 +
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 15 +++++-
src/remote_protocol-structs | 7 +++
src/test/test_driver.c | 17 ++++++-
tests/qemumonitorjsontest.c | 2 +-
tools/virsh-domain.c | 55 +++++++++++++++++++++-
22 files changed, 319 insertions(+), 24 deletions(-)
--
1.8.5.3
10 years, 9 months
[libvirt] [PATCH 0/2] Add virusbtest
by Ján Tomko
Test src/util/virusb.c.
Ján Tomko (2):
Add tests for virUSBDeviceFind functions
Add a test for virUSBDeviceList functions
.gitignore | 1 +
cfg.mk | 3 +-
tests/Makefile.am | 12 +
tests/virusbtest.c | 343 +++++++++++++++++++++
.../sys_bus_usb/devices/1-1.5.3.1/devnum | 1 +
.../sys_bus_usb/devices/1-1.5.3.1/idProduct | 1 +
.../sys_bus_usb/devices/1-1.5.3.1/idVendor | 1 +
.../sys_bus_usb/devices/1-1.5.3.1/serial | 1 +
.../sys_bus_usb/devices/1-1.5.3.3/devnum | 1 +
.../sys_bus_usb/devices/1-1.5.3.3/idProduct | 1 +
.../sys_bus_usb/devices/1-1.5.3.3/idVendor | 1 +
.../sys_bus_usb/devices/1-1.5.3.3/serial | 1 +
.../sys_bus_usb/devices/1-1.5.3/devnum | 1 +
.../sys_bus_usb/devices/1-1.5.3/idProduct | 1 +
.../sys_bus_usb/devices/1-1.5.3/idVendor | 1 +
.../sys_bus_usb/devices/1-1.5.3/serial | 1 +
.../sys_bus_usb/devices/1-1.5.4/devnum | 1 +
.../sys_bus_usb/devices/1-1.5.4/idProduct | 1 +
.../sys_bus_usb/devices/1-1.5.4/idVendor | 1 +
.../sys_bus_usb/devices/1-1.5.4/serial | 1 +
.../sys_bus_usb/devices/1-1.5.5/devnum | 1 +
.../sys_bus_usb/devices/1-1.5.5/idProduct | 1 +
.../sys_bus_usb/devices/1-1.5.5/idVendor | 1 +
.../sys_bus_usb/devices/1-1.5.5/serial | 1 +
.../sys_bus_usb/devices/1-1.5.6/devnum | 1 +
.../sys_bus_usb/devices/1-1.5.6/idProduct | 1 +
.../sys_bus_usb/devices/1-1.5.6/idVendor | 1 +
.../sys_bus_usb/devices/1-1.5.6/serial | 1 +
.../sys_bus_usb/devices/1-1.5/devnum | 1 +
.../sys_bus_usb/devices/1-1.5/idProduct | 1 +
.../sys_bus_usb/devices/1-1.5/idVendor | 1 +
.../sys_bus_usb/devices/1-1.5/serial | 1 +
.../sys_bus_usb/devices/1-1.6/devnum | 1 +
.../sys_bus_usb/devices/1-1.6/idProduct | 1 +
.../sys_bus_usb/devices/1-1.6/idVendor | 1 +
.../sys_bus_usb/devices/1-1.6/serial | 1 +
.../virusbtestdata/sys_bus_usb/devices/1-1/devnum | 1 +
.../sys_bus_usb/devices/1-1/idProduct | 1 +
.../sys_bus_usb/devices/1-1/idVendor | 1 +
.../virusbtestdata/sys_bus_usb/devices/1-1/serial | 1 +
.../sys_bus_usb/devices/2-1.2/devnum | 1 +
.../sys_bus_usb/devices/2-1.2/idProduct | 1 +
.../sys_bus_usb/devices/2-1.2/idVendor | 1 +
.../sys_bus_usb/devices/2-1.2/serial | 1 +
.../virusbtestdata/sys_bus_usb/devices/2-1/devnum | 1 +
.../sys_bus_usb/devices/2-1/idProduct | 1 +
.../sys_bus_usb/devices/2-1/idVendor | 1 +
.../virusbtestdata/sys_bus_usb/devices/2-1/serial | 1 +
.../virusbtestdata/sys_bus_usb/devices/usb1/devnum | 1 +
.../sys_bus_usb/devices/usb1/idProduct | 1 +
.../sys_bus_usb/devices/usb1/idVendor | 1 +
.../virusbtestdata/sys_bus_usb/devices/usb1/serial | 1 +
.../virusbtestdata/sys_bus_usb/devices/usb2/devnum | 1 +
.../sys_bus_usb/devices/usb2/idProduct | 1 +
.../sys_bus_usb/devices/usb2/idVendor | 1 +
.../virusbtestdata/sys_bus_usb/devices/usb2/serial | 1 +
.../virusbtestdata/sys_bus_usb/devices/usb3/devnum | 1 +
.../sys_bus_usb/devices/usb3/idProduct | 1 +
.../sys_bus_usb/devices/usb3/idVendor | 1 +
.../virusbtestdata/sys_bus_usb/devices/usb3/serial | 1 +
.../virusbtestdata/sys_bus_usb/devices/usb4/devnum | 1 +
.../sys_bus_usb/devices/usb4/idProduct | 1 +
.../sys_bus_usb/devices/usb4/idVendor | 1 +
.../virusbtestdata/sys_bus_usb/devices/usb4/serial | 1 +
64 files changed, 418 insertions(+), 1 deletion(-)
create mode 100644 tests/virusbtest.c
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/serial
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/devnum
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/idProduct
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/idVendor
create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/serial
--
1.8.3.2
10 years, 9 months