h6. [[Hardware Abstraction Layer]] h6(. [[HAL entry points from RISC OS]] h6((. » HAL_PCIAddresses h2. HAL_PCIAddresses h5. (HAL entry #96) <pre> int HAL_PCIAddresses(pcimem *buffer, int bufsize) </pre> |_<. Entry | | |buffer |Buffer pointer | |bufsize |Size of buffer | |_<. Exit | | |- |Returns number of bytes written to _buffer_ | h4. Use This is an internal call for use by the PCI module and should not be used by user software. User software should use the [[PCI SWI Calls|PCI SWIs]] instead of talking to the HAL directly. This call reads information about the PCI address space. <pre> struct pcimem { int64_t mem_to_phys_offset; // Number to add to PCI memory address to get ARM physical address int32_t mem_lowest; // Lowest PCI memory address available for allocation int32_t mem_highest; // Highest (inclusive) PCI memory address available for allocation int64_t io_to_phys_offset; // Number to add to PCI I/O address to get ARM physical address int32_t io_lowest; // Lowest PCI memory address available for allocation int32_t io_highest; // Highest (inclusive) PCI memory address available for allocation int64_t ram_to_pci_mem_offst; // Value to add to physical RAM address to get PCI memory address } </pre> h4. Notes As shown the _pcimem_ structure totals 40 bytes. An earlier layout of 28 bytes, where the 64b address offsets used 32b values, was formerly used. New designs should use 64b values in preference. h4. See also * [[HAL PCI API]] h6. Information sources: HAL.Tungsten.s.PCIasm, HAL.Titanium.s.PCI, HWSupport.PCI.s.Module in CVS