Kernel Functions for Drivers ddibtop(9F)
NAME
ddibtop, ddibtopr, ddiptob - page size conversions
SYNOPSIS
#include
#include
unsigned long ddibtop(devinfot *dip, unsigned long bytes);
unsigned long ddibtopr(devinfot *dip, unsigned long bytes);
unsigned long ddiptob(devinfot *dip, unsigned long pages);
INTERFACE LEVEL
Solaris DI specific (Solaris DI).
DESCRIPTION
This set of routines use the parent nexus driver to perform
conversions in page size units.
The ddibtop() function converts the given number of bytes
to the number of memory pages that it corresponds to, round-
ing down in the case that the byte count is not a page mul-
tiple.
The ddibtopr() function converts the given number of bytes
to the number of memory pages that it corresponds to, round-
ing up in the case that the byte count is not a page multi-
ple.
The ddiptob() 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 DI/DKI routines btop(9F),
btopr(9F), and ptob(9F), which only deal in terms of the
pagesize of the main system MU.
RETURN VALUES
The ddibtop() and ddibtopr() functions return the number
of corresponding pages. ddiptob() returns the corresponding
number of bytes. There are no error return values.
SunOS 5.11 Last change: 16 Jan 2006 1
Kernel Functions for Drivers ddibtop(9F)
CONTEXT
This function can be called from user, interrupt, or kernel
context.
EXAMPLES
Example 1 Find the size (in bytes) of one page
pagesize = ddiptob(dip, 1L);
SEE ALSO
btop(9F), btopr(9F), ptob(9F)
Writing Device Drivers
SunOS 5.11 Last change: 16 Jan 2006 2
|