# posix_typed_mem_get_info

## 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_get_info — query typed memory information
           (**ADVANCED REALTIME**)
    


## SYNOPSIS



           #include <sys/mman.h>
    
           int posix_typed_mem_get_info(int _fildes_ ,
               struct posix_typed_mem_info *_info_);
    


## DESCRIPTION



           The _posix_typed_mem_get_info_() function shall return, in the
           _posix_tmi_length_ field of the **posix_typed_mem_info** structure
           pointed to by _info_ , the maximum length which may be successfully
           allocated by the typed memory object designated by _fildes_.  This
           maximum length shall take into account the flag
           POSIX_TYPED_MEM_ALLOCATE or POSIX_TYPED_MEM_ALLOCATE_CONTIG
           specified when the typed memory object represented by _fildes_ was
           opened. The maximum length is dynamic; therefore, the value
           returned is valid only while the current mapping of the
           corresponding typed memory pool remains unchanged.
    
           If _fildes_ represents a typed memory object opened with neither the
           POSIX_TYPED_MEM_ALLOCATE flag nor the
           POSIX_TYPED_MEM_ALLOCATE_CONTIG flag specified, the returned value
           of _info_ ->_posix_tmi_length_ is unspecified.
    
           The _posix_typed_mem_get_info_() function may return additional
           implementation-defined information in other fields of the
           **posix_typed_mem_info** structure pointed to by _info_.
    
           If the memory object specified by _fildes_ is not a typed memory
           object, then the behavior of this function is undefined.
    


## RETURN VALUE



           Upon successful completion, the _posix_typed_mem_get_info_()
           function shall return zero; otherwise, the corresponding error
           status value shall be returned.
    


## ERRORS



           The _posix_typed_mem_get_info_() function shall fail if:
    
           **EBADF** The _fildes_ argument is not a valid open file descriptor.
    
           **ENODEV** The _fildes_ argument is not connected to a memory object
                  supported by this function.
    
           This function shall not return an error code of **[EINTR]**.
    
           _The following sections are informative._
    


## EXAMPLES



           None.
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           An application that needs to allocate a block of typed memory with
           length dependent upon the amount of memory currently available
           must either query the typed memory object to obtain the amount
           available, or repeatedly invoke _mmap_() attempting to guess an
           appropriate length. While the latter method is existing practice
           with _malloc_(), it is awkward and imprecise. The
           _posix_typed_mem_get_info_() function allows an application to
           immediately determine available memory. This is particularly
           important for typed memory objects that may in some cases be
           scarce resources. Note that when a typed memory pool is a shared
           resource, some form of mutual-exclusion or synchronization may be
           required while typed memory is being queried and allocated to
           prevent race conditions.
    
           The existing _fstat_() function is not suitable for this purpose. We
           realize that implementations may wish to provide other attributes
           of typed memory objects (for example, alignment requirements, page
           size, and so on).  The _fstat_() function returns a structure which
           is not extensible and, furthermore, contains substantial
           information that is inappropriate for typed memory objects.
    


## FUTURE DIRECTIONS



           None.
    


* * *