![]() |
![]() |
![]() |
![]() |
![]() |
||||||||||||||||||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
![]() |
osVirtualToPhysical osPhysicalToVirtualFormat#include <ultra64.h> u32 osVirtualToPhysical(void *vaddr); void *osPhysicalToVirtual(void *paddr); What These Functions Do The osVirtualToPhysical and osPhysicalToVirtual functions translate a CPU virtual address to a physical memory address and vice versa. The osVirtualToPhysical routine translates an arbitrary CPU virtual address to its physical address, if such a translation exists. If the address is a KSEG0 or a KSEG1 address, the returned result is equivalent to that of OS_K0_TO_PHYSICAL or OS_K1_TO_PHYSICAL, respectively. Otherwise the address is part of a translation lookaside buffer (TLB) mapped address space (KUSEG, KSSEG, or KSEG3), and the TLB is probed to determine if a mapping exists for the given address. If so, the corresponding physical address is returned; otherwise, -1 is returned. The osPhysicalToVirtual routine is a function version of OS_PHYSICAL_TO_K0, and thus returns the direct mapped, cached (KSEG0) address corresponding to the address pointed to by the paddr argument. See Also osMapTLB OS_K0_TO_PHYSICAL OS_K1_TO_PHYSICAL OS_PHYSICAL_TO_K0 OS_PHYSICAL_TO_K1
|