VIRT_TO_PHYS(9) Public Functions Provided VIRT_TO_PHYS(9)NAME
virt_to_phys - map virtual addresses to physical
phys_addr_t virt_to_phys(volatile void * address);
address to remap
The returned physical address is the physical (CPU) mapping for the memory address given. It is only valid to use this function on
addresses directly mapped or allocated via kmalloc.
This function does not give bus mappings for DMA transfers. In almost all conceivable cases a device driver should not be using this
Matthew Wilcox <firstname.lastname@example.org>
Alan Cox <email@example.com>
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 VIRT_TO_PHYS(9)
Check Out this Related Man Page
svatophys - General: Converts a system virtual address to a physical address
vm_offset_t *phys_addr );
Specifies the kernel virtual address. Specifies a pointer to the physical address to be filled in.
The svatophys routine converts a system virtual address to the corresponding physical address. All address and data structure manipulation
done within the kernel is performed using system virtual addresses. Typically, system virtual addresses are a means of mapping physical
memory and I/O space, which often consists of device registers and DMA buffers. In contrast to this, devices are usually unaware of any
virtual addressing and for this reason use physical addresses. You use the svatophys routine to perform this address translation.
As an example of where you can use this address translation, a disk device driver can use DMA buffers to transfer blocks of data to the
disk (for the case of a write operation). The data to be written to disk is present in system memory at a system virtual address known to
the driver. To initiate the DMA operation, the disk driver can set up a command packet to specify a write operation to the underlying disk
controller hardware. This write command packet contains (among other things) the location of the DMA buffer as a physical address and the
length of the buffer. Here, the driver calls the svatophys routine to translate the system virtual address of the DMA buffer to a physical
address in the command packet issued to the disk driver.
The svatophys routine returns the following: The address translation has been completed successfully. Unable to perform address transla-
tion. This value indicates that the address specified by the kern_addr argument is not a valid kernel or system virtual address.