from small one page howto to huge articles all in one place
poll results
Last additions:
May 25th. 2007:
April, 26th. 2006:
| You are here: manpages
POSIX_TYPED_MEM_OPEN
Section: POSIX Programmer's Manual (3P) Updated: 2003 Index
Return to Main Contents
PROLOG
This manual page is part of the POSIX Programmer's Manual.
The Linux implementation of this interface may differ (consult
the corresponding Linux manual page for details of Linux behavior),
or the interface may not be implemented on Linux.
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 calling 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 leading 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 different
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 subsequently 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-contiguous 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_ALLOCATABLE 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 appropriate privilege to specify the POSIX_TYPED_MEM_MAP_ALLOCATABLE
flag is implementation-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. Otherwise, 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 .
Index
- PROLOG
-
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- EXAMPLES
-
- APPLICATION USAGE
-
- RATIONALE
-
- FUTURE DIRECTIONS
-
- SEE ALSO
-
- COPYRIGHT
-
Please read "Why adblockers are badwww.cars2fast4u.de
|