|MQUERY(2)||System Calls Manual||MQUERY(2)|
*addr, size_t len,
mquery() system call checks the existing memory mappings of a process and returns hints to the caller about where to put a memory mapping. This hint can be later used when performing memory mappings with the mmap(2) system call with
MAP_FIXEDin the flags. The addr argument should be a memory location that which the caller specifies the preferred address. The size argument specifies the requested size of the memory area the caller is looking for. The fd and off arguments specify the file that will be mapped and the offset in it, this is the same as the corresponding arguments to mmap(2).
The behavior of the function depends on the
flags argument. If set to
MAP_FIXED the pointer addr is
used as a fixed hint and
mquery() will return
MAP_FAILED and set errno to
ENOMEM if there is not size
bytes free after that address. Otherwise it will return the hint addr. If no
flags are set
mquery() will use
addr as a starting point in memory and will search
forward to find a memory area with size bytes free and
that will be suitable for creating a mapping for the file and offset
specified in the fd and off
arguments. When no such area can be found
will return and set errno to indicate the error.
mquery() returns the available address. Otherwise,
MAP_FAILEDis returned and errno is set to indicate the error.
mquery() will fail if:
mquery() function should not be used in portable applications.
mquery() function first appeared in OpenBSD 3.4.
|July 2, 2014||OpenBSD-current|