IS_KSEG_VA(9r)IS_KSEG_VA(9r)NAME
IS_KSEG_VA, IS_SEG0_VA, IS_SEG1_VA - General: Determine if the speci‐
fied address is located in the kernel-unmapped address space, the user-
mapped address space, and the kernel-mapped address space.
SYNOPSIS
void IS_KSEG_VA(
unsigned long addr ); void IS_SEG0_VA(
unsigned long addr ); void IS_SEG1_VA(
unsigned long addr );
ARGUMENTS
Specifies the virtual address.
DESCRIPTION
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.
RETURN VALUES
None
EXAMPLE
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 deter‐
mine 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.
SEE ALSO
Routines: KSEG_TO_PHYS(9r), PHYS_TO_KSEG(9r)IS_KSEG_VA(9r)