POSIX_TYPED_MEM_OPEN(P) POSIX_TYPED_MEM_OPEN(P)
NAME
posix_typed_mem_open - open a typed memory object (ADVANCED REALTIME)
SYNOPSIS
#include <sys/mman.h>
int posix_typed_mem_open(const char *name, int oflag, int tflag);
DESCRIPTION
The posix_typed_mem_open() function shall establish a connection between the typed
memory object specified by the string pointed to by name and a file descriptor. It
shall create an open file description that refers to the typed memory object and a
file descriptor that refers to that open file description. The file descriptor is
used by other functions to refer to that typed memory object. It is unspecified
whether the name appears in the file system and is visible to other functions that
take pathnames as arguments. The name argument shall conform to the construction
rules for a pathname. If name begins with the slash character, then processes call-
ing posix_typed_mem_open() with the same value of name shall refer to the same
typed memory object. If name does not begin with the slash character, the effect is
implementation-defined. The interpretation of slash characters other than the lead-
ing slash character in name is implementation-defined.
Each typed memory object supported in a system shall be identified by a name which
specifies not only its associated typed memory pool, but also the path or port by
which it is accessed. That is, the same typed memory pool accessed via several dif-
ferent ports shall have several different corresponding names. The binding between
names and typed memory objects is established in an implementation-defined manner.
Unlike shared memory objects, there is no way within IEEE Std 1003.1-2001 for a
program to create a typed memory object.
The value of tflag shall determine how the typed memory object behaves when subse-
quently mapped by calls to mmap(). At most, one of the following flags defined in
<sys/mman.h> may be specified:
POSIX_TYPED_MEM_ALLOCATE
Allocate on mmap().
POSIX_TYPED_MEM_ALLOCATE_CONTIG
Allocate contiguously on mmap().
POSIX_TYPED_MEM_MAP_ALLOCATABLE
Map on mmap(), without affecting allocatability.
If tflag has the flag POSIX_TYPED_MEM_ALLOCATE specified, any subsequent call to
mmap() using the returned file descriptor shall result in allocation and mapping of
typed memory from the specified typed memory pool. The allocated memory may be a
contiguous previously unallocated area of the typed memory pool or several non-con-
tiguous previously unallocated areas (mapped to a contiguous portion of the process
address space). If tflag has the flag POSIX_TYPED_MEM_ALLOCATE_CONTIG specified,
any subsequent call to mmap() using the returned file descriptor shall result in
allocation and mapping of a single contiguous previously unallocated area of the
typed memory pool (also mapped to a contiguous portion of the process address
space). If tflag has none of the flags POSIX_TYPED_MEM_ALLOCATE or
POSIX_TYPED_MEM_ALLOCATE_CONTIG specified, any subsequent call to mmap() using the
returned file descriptor shall map an application-chosen area from the specified
typed memory pool such that this mapped area becomes unavailable for allocation
until unmapped by all processes. If tflag has the flag POSIX_TYPED_MEM_MAP_ALLOCAT-
ABLE specified, any subsequent call to mmap() using the returned file descriptor
shall map an application-chosen area from the specified typed memory pool without
an effect on the availability of that area for allocation; that is, mapping such an
object leaves each byte of the mapped area unallocated if it was unallocated prior
to the mapping or allocated if it was allocated prior to the mapping. The appropri-
ate privilege to specify the POSIX_TYPED_MEM_MAP_ALLOCATABLE flag is implementa-
tion-defined.
If successful, posix_typed_mem_open() shall return a file descriptor for the typed
memory object that is the lowest numbered file descriptor not currently open for
that process. The open file description is new, and therefore the file descriptor
shall not share it with any other processes. It is unspecified whether the file
offset is set. The FD_CLOEXEC file descriptor flag associated with the new file
descriptor shall be cleared.
The behavior of msync(), ftruncate(), and all file operations other than mmap(),
posix_mem_offset(), posix_typed_mem_get_info(), fstat(), dup(), dup2(), and
close(), is unspecified when passed a file descriptor connected to a typed memory
object by this function.
The file status flags of the open file description shall be set according to the
value of oflag. Applications shall specify exactly one of the three access mode
values described below and defined in the <fcntl.h> header, as the value of oflag.
O_RDONLY
Open for read access only.
O_WRONLY
Open for write access only.
O_RDWR Open for read or write access.
RETURN VALUE
Upon successful completion, the posix_typed_mem_open() function shall return a non-
negative integer representing the lowest numbered unused file descriptor. Other-
wise, it shall return -1 and set errno to indicate the error.
ERRORS
The posix_typed_mem_open() function shall fail if:
EACCES The typed memory object exists and the permissions specified by oflag are
denied.
EINTR The posix_typed_mem_open() operation was interrupted by a signal.
EINVAL The flags specified in tflag are invalid (more than one of
POSIX_TYPED_MEM_ALLOCATE, POSIX_TYPED_MEM_ALLOCATE_CONTIG, or
POSIX_TYPED_MEM_MAP_ALLOCATABLE is specified).
EMFILE Too many file descriptors are currently in use by this process.
ENAMETOOLONG
The length of the name argument exceeds {PATH_MAX} or a pathname component
is longer than {NAME_MAX}.
ENFILE Too many file descriptors are currently open in the system.
ENOENT The named typed memory object does not exist.
EPERM The caller lacks the appropriate privilege to specify the flag
POSIX_TYPED_MEM_MAP_ALLOCATABLE in argument tflag.
The following sections are informative.
EXAMPLES
None.
APPLICATION USAGE
None.
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
close() , dup() , exec() , fcntl() , fstat() , ftruncate() , mmap() , msync() ,
posix_mem_offset() , posix_typed_mem_get_info() , umask() , the Base Definitions
volume of IEEE Std 1003.1-2001, <fcntl.h>, <sys/mman.h>
COPYRIGHT
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 .
POSIX 2003 POSIX_TYPED_MEM_OPEN(P)
Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache/1.3.41 (Unix) PHP/5.2.5 mod_perl/1.30 mod_gzip/1.3.26.1a
Under GNU General Public License
2009-01-10 09:28 @38.103.63.58 CrawledBy CCBot/1.0 (+http://www.commoncrawl.org/bot.html)