Sun Microsystems, Inc.
spacerspacer
spacer   www.sun.com docs.sun.com | | |  
spacer
black dot
   
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z
    
 
Kernel Functions for Drivershat_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>
 
uint_t hat_getkpfnum(caddr_t addr);

INTERFACE LEVEL

 

Architecture independent level 2 (DKI only).

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

CONTEXT

 

hat_getkpfnum() can be called only from user or kernel context.

SEE ALSO

 

attach(9E), detach(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.


SunOS 5.9Go To TopLast Changed 02 Sep 1994

 
      
      
Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.