ddi_btop(9F)




NAME

     ddi_btop, ddi_btopr, ddi_ptob - page size conversions


SYNOPSIS

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

     unsigned  long  ddi_btop(dev_info_t  *dip,   unsigned   long
     bytes);

     unsigned  long  ddi_btopr(dev_info_t  *dip,  unsigned   long
     bytes);

     unsigned  long  ddi_ptob(dev_info_t  *dip,   unsigned   long
     pages);


INTERFACE LEVEL

     Solaris DDI specific (Solaris DDI).


DESCRIPTION

     This set of routines use the parent nexus driver to  perform
     conversions in page size units.

     ddi_btop() converts the given number of bytes to the  number
     of memory pages that it corresponds to, rounding down in the
     case that the byte count is not a page multiple.

     ddi_btopr() converts the given number of bytes to the number
     of  memory  pages that it corresponds to, rounding up in the
     case that the byte count is not a page multiple.

     ddi_ptob() converts the given number of pages to the  number
     of bytes that it corresponds to.

     Because bus nexus may possess  their  own  hardware  address
     translation  facilities,  these  routines  should be used in
     preference to the corresponding DDI/DKI  routines  btop(9F),
     btopr(9F),  and  ptob(9F),  which  only deal in terms of the
     pagesize of the main system MMU.


RETURN VALUES

     ddi_btop() and ddi_btopr() return the number of  correspond-
     ing  pages.  ddi_ptob()  returns the corresponding number of
     bytes. There are no error return values.


CONTEXT

     This function can be called from user or interrupt context.


EXAMPLES

     Example 1: Find the size (in bytes) of one page

     pagesize = ddi_ptob(dip, 1L);


SEE ALSO

     btop(9F), btopr(9F), ptob(9F)

     Writing Device Drivers


Man(1) output converted with man2html