*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> mquery (2)              



NAME    [Toc]    [Back]

     mquery - provide mapping hints to applications

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>
     #include <sys/mman.h>

     void *
     mquery(void *addr, size_t len, int prot, int flags, int fd,
             off_t offset);

DESCRIPTION    [Toc]    [Back]

     The mquery system call checks the existing  memory  mappings
of a process
     and  returns hints to the caller about where to put a memory
     This hint can be later used when performing memory  mappings
with the
     mmap()  system  call  with MAP_FIXED in 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().

     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
mquery() will
     return and set errno to indicate the error.

RETURN VALUES    [Toc]    [Back]

     When a memory range satisfying the request is found mquery()
returns the
     available  address.   Otherwise,  MAP_FAILED is returned and
errno is set to
     indicate the error.

ERRORS    [Toc]    [Back]

     mquery() will fail if:

     [EINVAL]      MAP_FIXED was specified and the requested memory area is

     [ENOMEM]       There  was  not  enough memory left after the
hint specified.

     [EBADF]       fd is not a valid open file descriptor.

SEE ALSO    [Toc]    [Back]


HISTORY    [Toc]    [Back]

     The mquery() function first appeared in OpenBSD 3.4.

OpenBSD     3.6                           April      2,      2003
[ Back ]
 Similar pages
Name OS Title
resource_string_value FreeBSD get a value from the hints mechanism
resource_long_value FreeBSD get a value from the hints mechanism
resource_int_value FreeBSD get a value from the hints mechanism
device.hints FreeBSD device resource hints
glhint IRIX specify implementation-specific hints
defoma-hints Linux generate font hints.
glHint Tru64 specify implementation-specific hints
kldxref FreeBSD generate hints for the kernel loader
openHintsShortcuts IRIX load the desktop Hints & Shortcuts into Web browser
ports FreeBSD contributed applications
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service