 |
Index for Section 9r |
|
 |
Alphabetical listing for S |
|
 |
Bottom of page |
|
svatophys(9r)
NAME
svatophys - General: Converts a system virtual address to a physical
address
SYNOPSIS
kern_return_t svatophys(
vm_offset_t kern_addr,
vm_offset_t *phys_addr );
ARGUMENTS
kern_addr
Specifies the kernel virtual address.
phys_addr
Specifies a pointer to the physical address to be filled in.
DESCRIPTION
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.
RETURN VALUES
The svatophys routine returns the following:
KERN_SUCCESS
The address translation has been completed successfully.
KERN_INVALID_ADDRESS
Unable to perform address translation. This value indicates that the
address specified by the kern_addr argument is not a valid kernel or
system virtual address.
 |
Index for Section 9r |
|
 |
Alphabetical listing for S |
|
 |
Top of page |
|