IS_KSEG_VA, IS_SEG0_VA, IS_SEG1_VA - General: Determine if
the specified address is located in the kernel-unmapped
address space, the user-mapped address space, and the kernel-mapped
address space.
void IS_KSEG_VA(
unsigned long addr ); void IS_SEG0_VA(
unsigned long addr ); void IS_SEG1_VA(
unsigned long addr );
Specifies the virtual address.
The IS_KSEG_VA routine determines if the specified address
is located in the kernel-unmapped address space. The
IS_SEG0_VA routine determines if the specified address is
located in the user-mapped address space. The IS_SEG1_VA
routine determines if the specified address is located in
the kernel-mapped address space.
None
The following code fragment shows a call to IS_KSEG_VA:
. . .
caddr_t virt_addr; [1] unsigned phys_addr; [2]
. . .
if(IS_KSEG_VA(virt_addr)) { [3]
phys_addr = KSEG_TO_PHYS(virt_addr); [4]
. . .
Declares a variable to store the user buffer's virtual
address. Declares a variable to store the physical
address returned by KSEG_TO_PHYS. Before calling
KSEG_TO_PHYS, calls IS_KSEG_VA to determine if the virtual
address is from the kernel-unmapped address space. If the
virtual address is from the kernel-unmapped address space,
then calls KSEG_TO_PHYS to convert the address to a corresponding
physical address.
Routines: KSEG_TO_PHYS(9r), PHYS_TO_KSEG(9r)
IS_KSEG_VA(9r)
[ Back ] |