Skip to content
/ pmix-abi Public

PMIx Headers for ABI Compatibility

License

Notifications You must be signed in to change notification settings

pmix/pmix-abi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

84b073c · Sep 13, 2023

History

22 Commits
Jun 7, 2022
Jun 7, 2022
Apr 4, 2022
Jul 11, 2022
Dec 12, 2022
Apr 5, 2022
Apr 4, 2022
Sep 8, 2023
Apr 4, 2022
Apr 4, 2022

Repository files navigation

PMIx Standard ABI Headers

PMIx Standard Version Compliance

PMIx Standard PMIX_QUERY_STABLE_ABI_VERSION PMIX_QUERY_PROVISIONAL_ABI_VERSION
pre-v5.0 No ABI defined No ABI defined
v5.0 v1.0 v1.0

Layout of the headers

  • pmix_types.h : PMIx Standard types, constants, and callback functions
  • pmix_macros.h : PMIx Standard macros
    • pmix_abi_support.h : Non-standard support functions (prefixed with pmixabi_) to support the macro definitions
    • pmix_abi_support_bottom.h : Non-standard support functions (prefixed with pmixabi_) to support the macro definitions. These few functions also use the macros. As such, they need to be included at the bottom of pmix_macros.h
  • pmix_fns.h : PMIx Standard API function pointer declarations for PMIx Standard APIs
    • The goal of this header to ease the incorporation of PMIx routines for applications and tools that wish to dlopen() a PMIx Standard compliant library and then dlsym() the various functions.
Loading
flowchart TB
    subgraph macros["pmix_macros.h"]
    direction TB
    s1["pmix_abi_support.h (Non-Standard)"] --- mid["PMIx Standard Macros"]
    mid --- s2["pmix_abi_support_bottom.h (Non-Standard)"]
    end
    pmix_types.h == Included by ==> macros
    macros == Included by ==> pmix_fns.h
    macros == Included by ==> pmix.h

Using dlopen/dlsym

If your application intends to use the headers with dlopen() and dlsym() then the pmix_fns.h header is all that you need to include to use the PMIx Standard interface. The function pointer signatures are defined in pmix_fns.h in a form approprate for dlsym()