.. _man5-pmix_fabric_t: pmix_fabric_t ============= .. include_body `pmix_fabric_t` |mdash| Describes a fabric for use with PMIx fabric interfaces SYNTAX ------ C Syntax ^^^^^^^^ .. code-block:: c #include typedef struct pmix_fabric_s { char *name; size_t index; pmix_info_t *info; size_t ninfo; void *module; } pmix_fabric_t; DESCRIPTION ----------- The `pmix_fabric_t` structure is used by a Workload Manager (WLM) to interact with fabric-related PMIx interfaces, and to provide information about the fabric for use in scheduling algorithms or other purposes. The fields of the structure are: * ``name`` |mdash| an optional user-supplied string name identifying the fabric referenced by this structure. If provided, the field must be a ``NULL``-terminated string composed of standard alphanumeric values supported by common utilities such as ``strcmp``. * ``index`` |mdash| a PMIx-provided number identifying this registration object. * ``info`` |mdash| an array of :ref:`pmix_info_t(5) ` structures containing information (provided by the PMIx library) about the fabric. * ``ninfo`` |mdash| the number of elements in the ``info`` array. * ``module`` |mdash| an opaque object pointer reserved for use by the PMIx server library. Only the ``name`` field is provided by the user |mdash| all other fields are provided by the PMIx library and must not be modified by the user. The ``info`` array contains a varying amount of information depending upon both the PMIx implementation and the information available from the fabric vendor. For performance reasons, the PMIx library does not provide thread protection for accessing the information in the `pmix_fabric_t` structure. Callers must therefore coordinate their access to the structure with any updates driven by the PMIx library. STATIC INITIALIZER ------------------ A statically declared ``pmix_fabric_t`` may be initialized with the ``PMIX_FABRIC_STATIC_INIT`` macro, which sets ``name``, ``info``, and ``module`` to ``NULL``, ``index`` to ``SIZE_MAX`` (the "unset" sentinel), and ``ninfo`` to ``0``: .. code-block:: c pmix_fabric_t fabric = PMIX_FABRIC_STATIC_INIT; .. seealso:: :ref:`PMIx_Fabric_register(3) `, :ref:`PMIx_Fabric_update(3) `, :ref:`PMIx_Fabric_deregister(3) `, :ref:`pmix_info_t(5) `, :ref:`pmix_endpoint_t(5) `