DDI_BTOP(9F)            Kernel Functions for Drivers            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
       illumos DDI specific (illumos DDI).
DESCRIPTION
       This set of routines use the parent nexus driver to perform
       conversions in page size units.
       The 
ddi_btop() function 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.
       The 
ddi_btopr() function 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.
       The 
ddi_ptob() function 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
       The 
ddi_btop() and 
ddi_btopr() functions return the number of
       corresponding pages. 
ddi_ptob() returns the corresponding number of
       bytes. There are no error return values.
CONTEXT
       This function can be called from user, interrupt, or kernel 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                              January 16, 2006                  DDI_BTOP(9F)