Originální popis anglicky:
posix_mem_offset - find offset and length of a mapped typed memory block (
ADVANCED REALTIME)
Návod, kniha: POSIX Programmer's Manual
#include <sys/mman.h>
int posix_mem_offset(const void *restrict
addr,
size_t len,
off_t *restrict
off , size_t *restrict
contig_len ,
int *restrict
fildes );
The
posix_mem_offset() function shall return in the variable pointed to
by
off a value that identifies the offset (or location), within a
memory object, of the memory block currently mapped at
addr. The
function shall return in the variable pointed to by
fildes, the
descriptor used (via
mmap()) to establish the mapping which contains
addr. If that descriptor was closed since the mapping was established,
the returned value of
fildes shall be -1. The
len argument
specifies the length of the block of the memory object the user wishes the
offset for; upon return, the value pointed to by
contig_len shall equal
either
len, or the length of the largest contiguous block of the memory
object that is currently mapped to the calling process starting at
addr, whichever is smaller.
If the memory object mapped at
addr is a typed memory object, then if the
off and
contig_len values obtained by calling
posix_mem_offset() are used in a call to
mmap() with a file
descriptor that refers to the same memory pool as
fildes (either
through the same port or through a different port), and that was opened with
neither the POSIX_TYPED_MEM_ALLOCATE nor the POSIX_TYPED_MEM_ALLOCATE_CONTIG
flag, the typed memory area that is mapped shall be exactly the same area that
was mapped at
addr in the address space of the process that called
posix_mem_offset().
If the memory object specified by
fildes is not a typed memory object,
then the behavior of this function is implementation-defined.
Upon successful completion, the
posix_mem_offset() function shall return
zero; otherwise, the corresponding error status value shall be returned.
The
posix_mem_offset() function shall fail if:
- EACCES
- The process has not mapped a memory object supported by
this function at the given address addr.
This function shall not return an error code of [EINTR].
The following sections are informative.
None.
None.
None.
None.
mmap() ,
posix_typed_mem_open() , the Base Definitions volume of
IEEE Std 1003.1-2001,
<sys/mman.h>
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html
.