[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 02/10] parallel: make optional
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 02/10] parallel: make optional |
Date: |
Sun, 13 Feb 2011 20:39:44 +0200 |
On Sun, Feb 13, 2011 at 7:30 PM, David Ahern <address@hidden> wrote:
>
>
> On 02/12/11 15:40, Blue Swirl wrote:
>> Ignore failure with parallel device creation.
>>
>> Signed-off-by: Blue Swirl <address@hidden>
>> ---
>> hw/pc.h | 5 ++++-
>> 1 files changed, 4 insertions(+), 1 deletions(-)
>>
>> diff --git a/hw/pc.h b/hw/pc.h
>> index 443ba34..f823b7d 100644
>> --- a/hw/pc.h
>> +++ b/hw/pc.h
>> @@ -24,7 +24,10 @@ static inline bool parallel_init(int index,
>> CharDriverState *chr)
>> {
>> ISADevice *dev;
>>
>> - dev = isa_create("isa-parallel");
>> + dev = isa_try_create("isa-parallel");
>> + if (!dev) {
>> + return false;
>> + }
>> qdev_prop_set_uint32(&dev->qdev, "index", index);
>> qdev_prop_set_chr(&dev->qdev, "chardev", chr);
>> if (qdev_init(&dev->qdev) < 0) {
>
>
> How is this design supposed to be better than wrapping init functions in
> #ifdef CONFIG_XXXX ... #endif?
We avoid the #ifdeffery and the device model is not violated. Most of
the code is not affected in any way by leaving the device out.
> If a hardware model is compiled out via the CONFIG options qemu should
> fail to accept the command line parameters and not try to create the
> device. Instead with this design it tries and fails to create the device
> and yet continues on.
Maybe command line parameter handling should be pushed to the devices.
The devices should pull their parameters, removing them thus from a
parameter pool. After the machine init finishes, errors could be
reported for unhandled parameters.