skip book previous and next navigation links
go up to top of book: HP OpenVMS Alpha Partitioning and Galaxy Guide HP OpenVMS Alpha Partitioning and Galaxy Guide
go to beginning of chapter: OpenVMS Galaxy Device Drivers OpenVMS Galaxy Device Drivers
go to previous page: Direct-Mapped DMA Window Changes Direct-Mapped DMA Window Changes
go to next page: How PCI Direct-Mapped DMA Works in Current Versions of OpenVMSHow PCI Direct-Mapped DMA Works in Current Versions of OpenVMS
end of book navigation links

How PCI Direct-Mapped DMA Works Prior to OpenVMS Version 7.2  



On all PCI-based machines, the direct-mapped DMA window begins at (usually) 1 GB in PCI space and covers physical memory beginning at 0 for 1 GB as shown in PCI-Based DMA.  

Figure 1  PCI-Based DMA  
test

Typically, drivers compare their buffer addresses against the length of the window returned by calling IOC$NODE_DATA with the IOC$K_DIRECT_DMA_SIZE function code. This assumes that the window on the memory side starts at zero. Another popular method for determining whether map registers are necessary involves looking at MMG$GL_MAXPFN. This is also not likely to work correctly in OpenVMS Version 7.3.

For a much better picture and explanation, see the Writing OpenVMS Alpha Device Drivers in C book.


go to previous page: Direct-Mapped DMA Window Changes Direct-Mapped DMA Window Changes
go to next page: How PCI Direct-Mapped DMA Works in Current Versions of OpenVMSHow PCI Direct-Mapped DMA Works in Current Versions of OpenVMS