|
| 以 PDF 格式下載這本書
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 corresponding 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.
EXAMPLE
- This example finds the size (in bytes) of one page:
-
pagesize = ddi_ptob(dip, 1L);
SEE ALSO
-
btop(9F), btopr (9F),ptob(9F)
-
Writing Device Drivers
|
|