hat_getkpfnum(9F)




NAME

     hat_getkpfnum - get page frame number for kernel address


SYNOPSIS

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

     pfn_t hat_getkpfnum(caddr_t addr);


INTERFACE LEVEL

     This interface is obsolete. A driver devmap(9E) entry  point
     should be provided instead.


PARAMETERS

     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,  device-
     mapped  virtual  address addr. Otherwise the return value is
     undefined.


CONTEXT

     hat_getkpfnum() can be called only from user or kernel  con-
     text.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Interface stability         | Obsolete                    |
    |_____________________________|_____________________________|


SEE ALSO

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

     Writing Device Drivers


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.


Man(1) output converted with man2html