Skip to content

Commit

Permalink
Merge pull request #6 from jjhursey/reorg-n-doc
Browse files Browse the repository at this point in the history
Reorganize the headers to isolate the nonstandard routines
  • Loading branch information
jjhursey authored Apr 4, 2022
2 parents aa8c460 + 3d6bdf4 commit 11f4a25
Show file tree
Hide file tree
Showing 9 changed files with 3,774 additions and 2,748 deletions.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
BSD 3-Clause License

Copyright (c) 2021, PMIx
Copyright (c) 2021-2022, PMIx
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
29 changes: 27 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,27 @@
# pmix-abi
PMIx Headers for ABI Compatibility
# PMIx Standard ABI Headers

## 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.


```mermaid
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()`
681 changes: 681 additions & 0 deletions pmix.h

Large diffs are not rendered by default.

Loading

0 comments on commit 11f4a25

Please sign in to comment.