VREMAP(9)(AUGUST 1995)

NAME
vremap - remap an arbitrary physical address space into the kernel virtual address space.

SYNOPSIS
void * vremap(unsigned long offset, unsigned long size);

DESCRIPTION
vremap() remaps size bytes from the physical memory starting at offset to the kernel space. offset has to be page aligned and size becomes page aligned. Needed when the kernel wants to access high addresses directly. The physical memory is 1:1 mapped to the kernel space. Some IO cards use memory frames with addresses behind the physical memory or even use addresses higher than the size of the kernel space ( 1GB on i386 ). In this case vremap() can be used.

RETURN VALUE
vremap() returns a void pointer to the virtual address of the mapped memory, and NULL on failure. vremap() will fail if no area is available in the virtual address space of the kernel, if the address wraps around the end of the physical address space, if offset is not page_aligned, and if offset is lower than the end of physical RAM , because this is already mapped to kernel space.

SOURCES
linux/mm/vmalloc.c

BUGS/LIMITAIONS
vremap() is only available in kernel 1.3.10 or newer. There is no include file with a declaration of this function, and it is not exported for use in modules.

AUTHOR
Linus Torvalds