On Sun, 2010-08-01 at 19:31 +0800, Rudi wrote:
is that still in the agenda ? Also, what is the reason why the last
parameter of AcpiOsDerivePciId() is "ACPI_PCI_ID **" and not just
"ACPI_PCI_ID *" ? Are there any situations, where AcpiOsDerivePciId
would want to reallocate PciId ?
Yes, this is in agenda.
Currently, AcpiOsDerivePciId is implemented by OS, but actually this
function can be OS independent. So we are implementing it in ACPICA,
once for every OS.
Any yes, the last parameter should be better to be "ACPI_PCI_ID *".
Thanks for the catch.
Lin Ming wrote:
> 2010/4/22 Grégoire Sutre <gregoire.sutre(a)gmail.com>:
>> Hi Lin,
>> Many thanks for your explanantion, I understand now why the second
>> argument passed to AcpiOsDerivePciId is a handle to the (PCI_Config)
>> operation region.
>> But regarding the first argument of AcpiOsDerivePciId: the ACPICA
>> programmer reference says that: it is a handle to _the PCI device_.
>> My question is: which PCI device?
>> In my (possibly wrong) interpretation of the documentation, _the PCI
>> device_ is the device for which AcpiOsDerivePciId shall return an
>> updated Pci id.
>> However, as far as I understand the code of AcpiEvPciConfigRegionSetup
>> (in file evrgnini.c), _the PCI device_ turns out to be an ancestor of
>> the device for which AcpiOsDerivePciId shall return an updated Pci id.
>> This ancestor being the upstream PCI root bridge (or the ACPI root node
>> if none was found). This interpretation of _the PCI device_ is also
>> consistent with my understanding of the Linux implementation of
>> AcpiOsDerivePciId, which finds the updated PCI id by ``traversing'' the
>> PCI-to-PCI bridges that are on the branch from AcpiOsDerivePciId's first
>> argument to its second argument.
> You are right, the first argument is the PCI root node.
> We may need to update the doc to figure out this.
> Lin Ming
> Devel mailing list
> To: gregoire.sutre(a)gmail.com
> Cc: devel(a)acpica.org