A method and system for allocating pre-selected physical memory locations to
an
application executing on a data processing system. Memory allocation subroutines,
interacting with the programming interfaces of the operating system (OS), allocates
and looks down blocks of memory. The memory allocation subroutines then de-allocates
the memory blocks based on whether or not the memory blocks fall within the pre-selected
range of physical memory locations. The physical memory locations of the blocks
locked down are discovered using the driver. The driver takes the virtual address
of the specified memory locations and returns with a corresponding physical address.
The memory allocation subroutines provide functions that allow the program developer
to specify the number of physical pages to allocate and a range of physical addresses
and comprises algorithm(s) that allocates the physical memory within the selected range.