#include <sys/types.h> #include <sys/ddi.h> #include <sys/sunddi.h>pfnt_t hat_getkpfnum(caddr_t addr);
Architecture independent level 2 (DKI only).
hat_getkpfnum() returns the page frame number corresponding to the kernel virtual address, addr.
addr must be a kernel virtual address which maps to device memory. ddi_map_regs(9F) can be used to obtain this address. For example, ddi_map_regs(9F) can be called in the driver's attach(9E) routine. The resulting kernel virtual address can be saved by the driver (see ddi_soft_state(9F)) and used in mmap(9E). The corresponding ddi_unmap_regs(9F) call can be made in the driver's detach(9E) routine. Refer to mmap(9E) for more information.
The page frame number corresponding to the valid virtual address addr. Otherwise the return value is undefined.
hat_getkpfnum() can be called only from user or kernel context.
For some devices, mapping device memory in the driver's attach(9E) routine and unmapping device memory in the driver's detach(9E) routine is a sizeable drain on system resources. This is especially true for devices with a large amount of physical address space. Refer to mmap(9E) for alternative methods.