~ubuntu-branches/ubuntu/precise/manpages-posix/precise

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved 
.TH "POSIX_TYPED_MEM_OPEN" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
.\" posix_typed_mem_open 
.SH NAME
posix_typed_mem_open \- open a typed memory object (\fBADVANCED REALTIME\fP)
.SH SYNOPSIS
.LP
\fB#include <sys/mman.h>
.br
.sp
int posix_typed_mem_open(const char *\fP\fIname\fP\fB, int\fP \fIoflag\fP\fB,
int\fP \fItflag\fP\fB); \fP
\fB
.br
\fP
.SH DESCRIPTION
.LP
The \fIposix_typed_mem_open\fP() function shall establish a connection
between the typed memory object specified by the string
pointed to by \fIname\fP 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 \fIname\fP argument shall conform to the
construction rules for a pathname. If \fIname\fP begins with
the slash character, then processes calling \fIposix_typed_mem_open\fP()
with the same value of \fIname\fP shall refer to the
same typed memory object. If \fIname\fP does not begin with the slash
character, the effect is implementation-defined. The
interpretation of slash characters other than the leading slash character
in \fIname\fP is implementation-defined.
.LP
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.
.LP
The value of \fItflag\fP shall determine how the typed memory object
behaves when subsequently mapped by calls to \fImmap\fP(). At most,
one of the following flags defined in \fI<sys/mman.h>\fP may be specified:
.TP 7
POSIX_TYPED_MEM_ALLOCATE
Allocate on \fImmap\fP().
.TP 7
POSIX_TYPED_MEM_ALLOCATE_CONTIG
Allocate contiguously on \fImmap\fP().
.TP 7
POSIX_TYPED_MEM_MAP_ALLOCATABLE
Map on \fImmap\fP(), without affecting allocatability.
.sp
.LP
If \fItflag\fP has the flag POSIX_TYPED_MEM_ALLOCATE specified, any
subsequent call to \fImmap\fP() 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 \fItflag\fP has the flag POSIX_TYPED_MEM_ALLOCATE_CONTIG specified,
any subsequent call to \fImmap\fP() 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 \fItflag\fP has none of the flags POSIX_TYPED_MEM_ALLOCATE or POSIX_TYPED_MEM_ALLOCATE_CONTIG
specified, any subsequent call to
\fImmap\fP() 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
\fItflag\fP has the flag POSIX_TYPED_MEM_MAP_ALLOCATABLE specified,
any subsequent call to \fImmap\fP() 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.
.LP
If successful, \fIposix_typed_mem_open\fP() 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.
.LP
The behavior of \fImsync\fP(), \fIftruncate\fP(), and all file operations
other than \fImmap\fP(), \fIposix_mem_offset\fP(), \fIposix_typed_mem_get_info\fP(),
\fIfstat\fP(), \fIdup\fP(), \fIdup2\fP(), and \fIclose\fP(), is unspecified
when passed a
file descriptor connected to a typed memory object by this function.
.LP
The file status flags of the open file description shall be set according
to the value of \fIoflag\fP. Applications shall
specify exactly one of the three access mode values described below
and defined in the \fI<fcntl.h>\fP header, as the value of \fIoflag\fP.
.TP 7
O_RDONLY
Open for read access only.
.TP 7
O_WRONLY
Open for write access only.
.TP 7
O_RDWR
Open for read or write access.
.sp
.SH RETURN VALUE
.LP
Upon successful completion, the \fIposix_typed_mem_open\fP() function
shall return a non-negative integer representing the
lowest numbered unused file descriptor. Otherwise, it shall return
-1 and set \fIerrno\fP to indicate the error.
.SH ERRORS
.LP
The \fIposix_typed_mem_open\fP() function shall fail if:
.TP 7
.B EACCES
The typed memory object exists and the permissions specified by \fIoflag\fP
are denied.
.TP 7
.B EINTR
The \fIposix_typed_mem_open\fP() operation was interrupted by a signal.
.TP 7
.B EINVAL
The flags specified in \fItflag\fP are invalid (more than one of POSIX_TYPED_MEM_ALLOCATE,
POSIX_TYPED_MEM_ALLOCATE_CONTIG, or
POSIX_TYPED_MEM_MAP_ALLOCATABLE is specified).
.TP 7
.B EMFILE
Too many file descriptors are currently in use by this process.
.TP 7
.B ENAMETOOLONG
The length of the \fIname\fP argument exceeds {PATH_MAX} or a pathname
component is longer than {NAME_MAX}.
.TP 7
.B ENFILE
Too many file descriptors are currently open in the system.
.TP 7
.B ENOENT
The named typed memory object does not exist.
.TP 7
.B EPERM
The caller lacks the appropriate privilege to specify the flag POSIX_TYPED_MEM_MAP_ALLOCATABLE
in argument \fItflag\fP.
.sp
.LP
\fIThe following sections are informative.\fP
.SH EXAMPLES
.LP
None.
.SH APPLICATION USAGE
.LP
None.
.SH RATIONALE
.LP
None.
.SH FUTURE DIRECTIONS
.LP
None.
.SH SEE ALSO
.LP
\fIclose\fP() , \fIdup\fP() , \fIexec\fP() , \fIfcntl\fP() , \fIfstat\fP()
,
\fIftruncate\fP() , \fImmap\fP() , \fImsync\fP() ,
\fIposix_mem_offset\fP() , \fIposix_typed_mem_get_info\fP() , \fIumask\fP()
, the Base
Definitions volume of IEEE\ Std\ 1003.1-2001, \fI<fcntl.h>\fP, \fI<sys/mman.h>\fP
.SH 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 .