diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2014-05-28 18:38:38 +0100 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2014-05-28 18:38:39 +0100 |
| commit | d7d3d6092cb7edc75dc49fb90c86dd5425ab4805 (patch) | |
| tree | ea3820e7a4e5f51bd1b7b51003546ebb70486b70 /qtest.c | |
| parent | 66226ffd056d85a6b86034dd4bbec687e66ded24 (diff) | |
| parent | de77914e50477ca4cef1e9cdd7a05b8d0c0ff1d9 (diff) | |
| download | focaccia-qemu-d7d3d6092cb7edc75dc49fb90c86dd5425ab4805.tar.gz focaccia-qemu-d7d3d6092cb7edc75dc49fb90c86dd5425ab4805.zip | |
Merge remote-tracking branch 'remotes/afaerber/tags/qom-devices-for-peter' into staging
QOM/QTest infrastructure fixes and device conversions * qom-test extension * QEMUMachineInitArgs conversion to MachineState * -machine options turned into /machine properties * Named GPIO IRQs for devices # gpg: Signature made Wed 28 May 2014 18:24:04 BST using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found * remotes/afaerber/tags/qom-devices-for-peter: ssi: Name the CS GPIO qdev: Implement named GPIOs machine: Make -machine opts properties of MachineState tests: Check empty QMP output visitor qapi: Avoid output visitor crashing if it encounters a NULL value vl.c: Do not set 'type' property in obj_set_property() machine: Conversion of QEMUMachineInitArgs to MachineState qom-test: Test qom-list on link<> properties Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qtest.c')
| -rw-r--r-- | qtest.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/qtest.c b/qtest.c index 2aba20d104..f9695a8ff6 100644 --- a/qtest.c +++ b/qtest.c @@ -233,7 +233,8 @@ static void qtest_process_command(CharDriverState *chr, gchar **words) g_assert(command); if (strcmp(words[0], "irq_intercept_out") == 0 || strcmp(words[0], "irq_intercept_in") == 0) { - DeviceState *dev; + DeviceState *dev; + NamedGPIOList *ngl; g_assert(words[1]); dev = DEVICE(object_resolve_path(words[1], NULL)); @@ -253,10 +254,18 @@ static void qtest_process_command(CharDriverState *chr, gchar **words) return; } - if (words[0][14] == 'o') { - qemu_irq_intercept_out(&dev->gpio_out, qtest_irq_handler, dev->num_gpio_out); - } else { - qemu_irq_intercept_in(dev->gpio_in, qtest_irq_handler, dev->num_gpio_in); + QLIST_FOREACH(ngl, &dev->gpios, node) { + /* We don't support intercept of named GPIOs yet */ + if (ngl->name) { + continue; + } + if (words[0][14] == 'o') { + qemu_irq_intercept_out(&ngl->out, qtest_irq_handler, + ngl->num_out); + } else { + qemu_irq_intercept_in(ngl->in, qtest_irq_handler, + ngl->num_in); + } } irq_intercept_dev = dev; qtest_send_prefix(chr); |