On 23/11/2020 16.59, Cornelia Huck wrote:
> On Mon, 23 Nov 2020 11:47:25 +0100
> Markus Armbruster <arm...@redhat.com> wrote:
> 
>> Thomas Huth <th...@redhat.com> writes:
>>
>>> On 18/11/2020 15.30, Peter Maydell wrote:  
>>>> On Wed, 18 Nov 2020 at 14:24, Markus Armbruster <arm...@redhat.com> wrote: 
>>>>  
>>>>>
>>>>> Philippe Mathieu-Daudé <phi...@redhat.com> writes:
>>>>>  
>>>>>> On 11/18/20 10:03 AM, Thomas Huth wrote:  
>>>>>>> Both headers, sysbus.h and module.h, are not required to compile this 
>>>>>>> file.  
>>>>>
>>>>> module.h is: it defines type_init().  
>>>>   
>>>>>>>  #include "qemu/timer.h"
>>>>>>>  #include "hw/watchdog/wdt_diag288.h"
>>>>>>>  #include "migration/vmstate.h"
>>>>>>>  #include "qemu/log.h"
>>>>>>> -#include "qemu/module.h"  
>>>>>>
>>>>>> Cc'ing Markus because of:  
>>>>   
>>>>>>     Include qemu/module.h where needed, drop it from qemu-common.h  
>>>>>
>>>>> If it still compiles and links, it must get it via some other header.  
>>>>
>>>> Yes: wdt_diag288.c -> include/hw/watchdog/wdt_diag288.h ->
>>>>  include/qom/object.h -> include/qemu/module.h  
>>>
>>> So what's now our expectation here? Should every file that uses type_init()
>>> also include module.h ? That's IMHO not very intuitive...
>>> Or are we fine that type_init() is provided by qom/object.h which needs to
>>> be pulled in by every device sooner or later anyway?  
>>
>> I think it's okay to rely on indirect inclusion.
> 
> So, what's the final verdict? Maybe just tweak the description?
> 
> "Neither sysbus.h nor module.h are required to compile this file.
> diag288 is not a sysbus device, and module.h (for type_init) is
> included eventually through qom/object.h."

Yes, I think that's the way to go. Could you update the description when
picking up the patch, or shall I send a v2?

 Thomas



Reply via email to