diff options
Diffstat (limited to 'man-pages-posix-2017/man3p/posix_typed_mem_open.3p')
-rw-r--r-- | man-pages-posix-2017/man3p/posix_typed_mem_open.3p | 279 |
1 files changed, 279 insertions, 0 deletions
diff --git a/man-pages-posix-2017/man3p/posix_typed_mem_open.3p b/man-pages-posix-2017/man3p/posix_typed_mem_open.3p new file mode 100644 index 0000000..114ec66 --- /dev/null +++ b/man-pages-posix-2017/man3p/posix_typed_mem_open.3p @@ -0,0 +1,279 @@ +'\" et +.TH POSIX_TYPED_MEM_OPEN "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" +.SH 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. +.\" +.SH NAME +posix_typed_mem_open +\(em open a typed memory object +(\fBADVANCED REALTIME\fP) +.SH SYNOPSIS +.LP +.nf +#include <sys/mman.h> +.P +int posix_typed_mem_open(const char *\fIname\fP, int \fIoflag\fP, int \fItflag\fP); +.fi +.SH DESCRIPTION +The +\fIposix_typed_mem_open\fR() +function shall establish a connection between the typed memory object +specified by the string pointed to by +.IR 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 shall be allocated as +described in +.IR "Section 2.14" ", " "File Descriptor Allocation" +and can be 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 +.IR name +argument conforms to the construction rules for a pathname, except that +the interpretation of +<slash> +characters other than the leading +<slash> +character in +.IR name +is implementation-defined, and that the length limits for the +.IR name +argument are implementation-defined and need not be the same as the +pathname limits +{PATH_MAX} +and +{NAME_MAX}. +If +.IR name +begins with the +<slash> +character, then processes calling +\fIposix_typed_mem_open\fR() +with the same value of +.IR name +shall refer to the same typed memory object. If +.IR name +does not begin with the +<slash> +character, the effect is implementation-defined. +.P +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 POSIX.1\(hy2008 for a program to create a +typed memory object. +.P +The value of +.IR tflag +shall determine how the typed memory object behaves when subsequently +mapped by calls to +\fImmap\fR(). +At most, one of the following flags defined in +.IR <sys/mman.h> +may be specified: +.IP POSIX_TYPED_MEM_ALLOCATE 6 +.br +Allocate on +\fImmap\fR(). +.IP POSIX_TYPED_MEM_ALLOCATE_CONTIG 6 +.br +Allocate contiguously on +\fImmap\fR(). +.IP POSIX_TYPED_MEM_MAP_ALLOCATABLE 6 +.br +Map on +\fImmap\fR(), +without affecting allocatability. +.P +If +.IR tflag +has the flag POSIX_TYPED_MEM_ALLOCATE specified, any subsequent call to +\fImmap\fR() +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 +.IR tflag +has the flag POSIX_TYPED_MEM_ALLOCATE_CONTIG specified, any subsequent +call to +\fImmap\fR() +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 +.IR tflag +has none of the flags POSIX_TYPED_MEM_ALLOCATE or +POSIX_TYPED_MEM_ALLOCATE_CONTIG specified, any subsequent call to +\fImmap\fR() +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 +.IR tflag +has the flag POSIX_TYPED_MEM_MAP_ALLOCATABLE specified, any subsequent +call to +\fImmap\fR() +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. Appropriate privileges to specify the +POSIX_TYPED_MEM_MAP_ALLOCATABLE flag are implementation-defined. +.P +If successful, +\fIposix_typed_mem_open\fR() +shall return a file descriptor for the typed memory object. +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. +.P +The behavior of +\fImsync\fR(), +\fIftruncate\fR(), +and all file operations other than +\fImmap\fR(), +\fIposix_mem_offset\fR(), +\fIposix_typed_mem_get_info\fR(), +\fIfstat\fR(), +\fIdup\fR(), +\fIdup2\fR(), +and +\fIclose\fR(), +is unspecified when passed a file descriptor connected to a typed +memory object by this function. +.P +The file status flags of the open file description shall be set +according to the value of +.IR oflag . +Applications shall specify exactly one of the three access mode values +described below and defined in the +.IR <fcntl.h> +header, as the value of +.IR oflag . +.IP O_RDONLY 12 +Open for read access only. +.IP O_WRONLY 12 +Open for write access only. +.IP O_RDWR 12 +Open for read or write access. +.SH "RETURN VALUE" +Upon successful completion, the +\fIposix_typed_mem_open\fR() +function shall return a non-negative integer representing the +file descriptor. Otherwise, it shall return \-1 and set +.IR errno +to indicate the error. +.SH ERRORS +The +\fIposix_typed_mem_open\fR() +function shall fail if: +.TP +.BR EACCES +The typed memory object exists and the permissions specified by +.IR oflag +are denied. +.TP +.BR EINTR +The +\fIposix_typed_mem_open\fR() +operation was interrupted by a signal. +.TP +.BR EINVAL +.ad l +The flags specified in +.IR tflag +are invalid (more than one of POSIX_TYPED_MEM_ALLOCATE, +POSIX_TYPED_MEM_ALLOCATE_CONTIG, or POSIX_TYPED_MEM_MAP_ALLOCATABLE is +specified). +.ad b +.TP +.BR EMFILE +All file descriptors available to the process are currently open. +.TP +.BR ENFILE +Too many file descriptors are currently open in the system. +.TP +.BR ENOENT +The named typed memory object does not exist. +.TP +.BR EPERM +The caller lacks appropriate privileges to specify the +POSIX_TYPED_MEM_MAP_ALLOCATABLE flag in the +.IR tflag +argument. +.P +The +\fIposix_typed_mem_open\fR() +function may fail if: +.TP +.BR ENAMETOOLONG +.br +The length of the +.IR name +argument exceeds +{_POSIX_PATH_MAX} +on systems that do not support the XSI option +or exceeds +{_XOPEN_PATH_MAX} +on XSI systems, +or has a pathname component that is longer than +{_POSIX_NAME_MAX} +on systems that do not support the XSI option +or longer than +{_XOPEN_NAME_MAX} +on XSI systems. +.LP +.IR "The following sections are informative." +.SH EXAMPLES +None. +.SH "APPLICATION USAGE" +None. +.SH RATIONALE +None. +.SH "FUTURE DIRECTIONS" +None. +.SH "SEE ALSO" +.IR "Section 2.14" ", " "File Descriptor Allocation", +.IR "\fIclose\fR\^(\|)", +.IR "\fIdup\fR\^(\|)", +.IR "\fIexec\fR\^", +.IR "\fIfcntl\fR\^(\|)", +.IR "\fIfstat\fR\^(\|)", +.IR "\fIftruncate\fR\^(\|)", +.IR "\fImmap\fR\^(\|)", +.IR "\fImsync\fR\^(\|)", +.IR "\fIposix_mem_offset\fR\^(\|)", +.IR "\fIposix_typed_mem_get_info\fR\^(\|)", +.IR "\fIumask\fR\^(\|)" +.P +The Base Definitions volume of POSIX.1\(hy2017, +.IR "\fB<fcntl.h>\fP", +.IR "\fB<sys_mman.h>\fP" +.\" +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1-2017, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 7, 2018 Edition, +Copyright (C) 2018 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 . +.PP +Any typographical or formatting errors that appear +in this page are most likely +to have been introduced during the conversion of the source files to +man page format. To report such errors, see +https://www.kernel.org/doc/man-pages/reporting_bugs.html . |