Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

svatophys(9r) [osf1 man page]

svatophys(9r)															     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
Specifies the kernel virtual address. 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: 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. svatophys(9r)

Check Out this Related Man Page

mem(7D) 							      Devices								   mem(7D)

NAME
mem, kmem, allkmem - physical or virtual memory access SYNOPSIS
/dev/mem /dev/kmem /dev/allkmem DESCRIPTION
The file /dev/mem is a special file that provides access to the physical memory of the computer. The file /dev/kmem is a special file that provides access to the virtual address space of the operating system kernel, excluding memory that is associated with an I/O device. The file /dev/allkmem is a special file that provides access to the virtual address space of the operating system kernel, including memory that is associated with an I/O device. You can use any of these devices to examine and modify the system. Byte addresses in /dev/mem are interpreted as physical memory addresses. Byte addresses in /dev/kmem and /dev/allkmem are interpreted as kernel virtual memory addresses. A reference to a non-existent location returns an error. See ERRORS for more information. The file /dev/mem accesses physical memory; the size of the file is equal to the amount of physical memory in the computer. This size may be larger than 4GB on a system running the 32-bit operating environment. In this case, you can access memory beyond 4GB using a series of read(2) and write(2) calls, a pread64() or pwrite64() call, or a combination of llseek(2) and read(2) or write(2). ERRORS
EFAULT Occurs when trying to write(2) a read-only location (allkmem), read(2) a write-only location (allkmem), or read(2) or write(2) a non-existent or unimplemented location (mem, kmem, allkmem). EIO Occurs when trying to read(2) or write(2) a memory location that is associated with an I/O device using the /dev/kmem special file. ENXIO Results from attempting to mmap(2) a non-existent physical (mem) or virtual (kmem, allkmem) memory address. FILES
/dev/mem Provides access to the computer's physical memory. /dev/kmem Provides access to the virtual address space of the operating system kernel, excluding memory that is associated with an I/O device. /dev/allkmem Provides access to the virtual address space of the operating system kernel, including memory that is associated with an I/O device. SEE ALSO
llseek(2), mmap(2), read(2), write(2) WARNINGS
Using these devices to modify (that is, write to) the address space of a live running operating system or to modify the state of a hardware device is extremely dangerous and may result in a system panic if kernel data structures are damaged or if device state is changed. SunOS 5.11 18 Feb 2002 mem(7D)
Man Page