|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH] plat/common/pci: register more then one pci per file
Hi,
> do we expect multiple drivers within the library.
no, this should not normally happen. But what was in the code before is
a bit confusing. If we would want to enforce one-driver-per-library rule
at the code level, we would need to do it in a bit more explicit way,
rather then having totally misleading compilation error.
However, I don't think we should do it. I would rather keep flexibility
and leave this to be a design option.
The reason I touched this at all, is that I've been toying with the idea
of the module self-test. And I needed to fill the list of available
drivers with dummies. Creating a separate file for every dummy-driver is
a bit annoying. In other words, testing code might be a case for having
multiple drivers within the library.
> Do we also intend to change the ukbus library and virtio library which
> have a similar macro?
That is a valid note. Yes we do. And it will be in v2 :)
- Yuri.
Sharan Santhanam <sharan.santhanam@xxxxxxxxx> writes:
> Hello Yuri,
>
> This patch looks fine.
>
> I like the idea of making the driver unique but since we decompose every
> components into smaller libraries do we expect multiple drivers within
> the library.
>
> Do we also intend to change the ukbus library and virtio library which
> have a similar macro?
>
> Thanks & Regards
> Sharan
>
>
> On 12/05/2018 05:42 PM, Yuri Volchkov wrote:
>> So far it was possible to use PCI_REGISTER_DRIVER only once in one
>> file. Add a counter to the generated function name, to avoid the name
>> conflict.
>>
>> Signed-off-by: Yuri Volchkov <yuri.volchkov@xxxxxxxxx>
>> ---
>> plat/common/include/pci/pci_bus.h | 10 +++++-----
>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/plat/common/include/pci/pci_bus.h
>> b/plat/common/include/pci/pci_bus.h
>> index 4e02282..be2ee1f 100644
>> --- a/plat/common/include/pci/pci_bus.h
>> +++ b/plat/common/include/pci/pci_bus.h
>> @@ -156,14 +156,14 @@ struct pci_device {
>> UK_TAILQ_HEAD(pci_device_list, struct pci_device);
>>
>>
>> -#define PCI_REGISTER_DRIVER(b) \
>> - _PCI_REGISTER_DRIVER(__LIBNAME__, b)
>> +#define PCI_REGISTER_DRIVER(b) \
>> + _PCI_REGISTER_DRIVER(__LIBNAME__, __COUNTER__, b)
>>
>> -#define _PCI_REGFNNAME(x, y) x##y
>> +#define _PCI_REGFNNAME(x, y, z) x##y##z
>>
>> -#define _PCI_REGISTER_DRIVER(libname, b) \
>> +#define _PCI_REGISTER_DRIVER(libname, id, b)
>> \
>> static void __constructor_prio(103) \
>> - _PCI_REGFNNAME(libname, _pci_register_driver)(void) \
>> + _PCI_REGFNNAME(libname, id, _pci_register_driver)(void) \
>> { \
>> _pci_register_driver((b)); \
>> }
>>
--
Yuri Volchkov
Software Specialist
NEC Europe Ltd
Kurfürsten-Anlage 36
D-69115 Heidelberg
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |