[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    hat_getkpfnum(9F) manual page Table of Contents

Name

hat_getkpfnum - get page frame number for kernel address

Synopsis


#include <sys/types.h>#include <sys/ddi.h>#include <sys/sunddi.h>

u_int hat_getkpfnum(caddr_t addr);

Interface Level

Architecture independent level 2 (DKI only).

Arguments

addr
The kernel virtual address for which the page frame number is to be returned.

Description

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.

Return Values

The page frame number corresponding to the valid virtual address addr. Otherwise the return value is undefined.

Context

hat_getkpfnum() can be called only from user or kernel context.

See Also

attach(9E) , detach(9E) , mmap(9E) , ddi_map_regs(9F) , ddi_soft_state(9F) , ddi_unmap_regs(9F)

Notes

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.


Table of Contents