On 04/05/16 20:20, Jordan Justen wrote:
> On 2016-04-05 11:06:39, Laszlo Ersek wrote:
>> On 04/05/16 19:26, Jordan Justen wrote:
>>> On 2016-04-05 09:46:33, Laszlo Ersek wrote:
>>>> (I've snipped liberally below, but I've been careful to follow up on all
>>>> of your comments.)
>>>>
>>>> On 04/05/16 18:08, Jordan Justen wrote:
>>>>> On 2016-04-05 01:31:27, Laszlo Ersek wrote:
>>>>>> On 04/05/16 09:03, Jordan Justen wrote:
>>>>>>> On 2016-03-14 05:53:23, Laszlo Ersek wrote:
>>>>>>>> These header files are intentionally minimal, and intentionally kept 
>>>>>>>> apart
>>>>>>>> from the VirtIo 0.9.5 headers.
>>>>>>>>
>>>>>>>> Cc: Ard Biesheuvel <[email protected]>
>>>>>>>> Cc: Jordan Justen <[email protected]>
>>>>>>>> Contributed-under: TianoCore Contribution Agreement 1.0
>>>>>>>> Signed-off-by: Laszlo Ersek <[email protected]>
>>>>>>>> ---
>>>>>>>>  OvmfPkg/Include/IndustryStandard/Virtio10.h    | 81 
>>>>>>>> ++++++++++++++++++++
>>>>>>>>  OvmfPkg/Include/IndustryStandard/Virtio10Net.h | 31 ++++++++
>>>>>>>>  2 files changed, 112 insertions(+)
>>>>>>>>
>>>>>>>> diff --git a/OvmfPkg/Include/IndustryStandard/Virtio10.h 
>>>>>>>> b/OvmfPkg/Include/IndustryStandard/Virtio10.h
>>>>>>>> new file mode 100644
>>>>>>>> index 000000000000..722475c4ea55
>>>>>>>> --- /dev/null
>>>>>>>> +++ b/OvmfPkg/Include/IndustryStandard/Virtio10.h
>>>>>
>>>>> How about including Virtio10.h from Virtio.h?
>>>>
>>>> Okay... What for? Definitions exposed by either header do not depend on
>>>> definitions from the other header.
>>>>
>>>
>>> Once again, because this follows the example of Acpi.h and Pci.h...
>>
>> Wait a minute, that's not a good analogy.
>>
>> (a) Looking at Acpi.h and Pci.h, those are "catch-all" headers. They
>> say, "if you include me, I'll give you everything ACPI (or everything
>> PCI), across all versions of the relevant standards".
>>
>> (b) Furthermore, regarding any such header file there that concerns
>> itself with a specific version of the PCI or ACPI specs, the header with
>> the higher version number includes the header with the lower version number.
>>
>> Specifics:
>> - Acpi.h -> Acpi61.h -> Acpi60.h -> Acpi51.h -> Acpi50.h -> ...
>> - Pci.h -> Pci30.h        -> Pci23.h -> Pci22.h
>>         -> PciExpress21.h
>>         -> PciExpress30.h -> PciExpress21.h (strange...)
>>
>> As I said, this is not a good analogy. Because: Virtio.h never wanted to
>> be a catch-all header. To closely imitate the Acpi.h and Pci.h situation
>> above, I would have to rename Virtio.h to Virtio095.h first, then
>> include it in Virtio10.h, then introduce a *new* file called Virtio.h,
>> which should include Virtio10.h.
>>
>> At the moment, Virtio.h is not the catch-all header, it is actually the
>> base (= lowest version number) header.
> 
> Yes, it currently is a catch-all header. It just happens that there is
> only 1 version of the spec in the tree at the moment. :)

Good point.

> 
>> So your suggestion would
>> establish the inverse direction, compared to Acpi.h and Pci.h.
>>
>> Now, if you indeed proposed
>>
>>   Virtio.h [new] -> Virtio10.h -> Virtio095.h [to be renamed from
>>                                                the current Virtio.h]
>>
>> then I would say, "a lot of churn for nothing".
>>
> 
> I think we should include 1.0 from Virtio.h, and determine if we want
> to break out the Virtio095.h file at a later point.

Works for me.

> 
> Does it actually cause problems if we include Virtio10.h from
> Virtio.h?

No, it shouldn't; they are independent of each other.

Note however that the same will not work for VirtioNet.h <->
Virtio10Net.h, because Virtio10Net.h already depends on (and includes)
VirtioNet.h. Including Virtio10Net.h from VirtioNet.h would lead to a
cycle. (The inclusion guards would prevent an actual inclusion loop, but
the definition of VIRTIO_1_0_NET_REQ would not compile.)

Thanks
Laszlo

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to