Direct Access to Memory Mapped Device

Memory mapped devices sometimes have memory mapped
at physical addresses that lie outside of the normal 1Mb
of memory that is addressable in real mode.

Under many implementations of DPMI, all addresses are linear addresses since
they use the paging mechanism of the 80386.

The service (e.g. INT 31h, Function 800h) can be used by
device drivers to convert a physical address into a linear address.
The linear address can then be used to access the device memory.

If I would like to convert a physical address into a linear address
but avoid performing any int386x interrupts, (DPMI Function calls)
is it still possible under QNX 4.25? What is the algorithm?

TIA

-GF

Gordon Freeman <spamsucks@bigfoot.com> wrote in message
news:bh8lf9$e9p$1@inn.qnx.com

If I would like to convert a physical address into a linear address
but avoid performing any int386x interrupts, (DPMI Function calls)
is it still possible under QNX 4.25? What is the algorithm?

Linear addresses (see Intel docs on segmentation) don’t mean much in QNX4 -
virtual addresses do, and given a physical address you cannot determine the
(one of) virtual addresses mapping to it.

What you can do is, when you map the device/memory, you can save the
pid/vaddr/paddr tupple in shared memory. Then you can reference that at a
later time.

-Adam