clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version.  The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

Change-Id: I619fdc10331708d0d65b154a6f345ab769722e8a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
10 files changed
tree: f2f8e6883c4d3ebad3980397bb0527548a4cbb5f
  1. chip_data/
  2. src/
  3. subprojects/
  4. test/
  5. .clang-format
  6. .eslintignore
  7. .gitignore
  8. .prettierignore
  9. .prettierrc.yaml
  10. buildinfo.hpp.in
  11. LICENSE
  12. meson.build
  13. meson_options.txt
  14. OWNERS
  15. README.md
README.md

openpower-libhei: Hardware Error Isolation for POWER Systems

This library is a common, portable code base for isolating errors reported by hardware registers on POWER Systems chips.

The primary consumers (and requirements drivers) will be:

Core API

See the primary API definitions for details on how to use this library.

Integration

This library can be integrated into a user application's source (either imported, or as a git subtree/submodule) or built as static library.

User Application Requirements and APIs

  • The process to access hardware register data will vary per user application. Therefore, this library will declare the hardware access user APIs, but each user application must implement the APIs for their own environment.
  • This library will not contain data regarding hardware specific information. Instead, that information will be provided by the user application in the form of the Chip Data Files.
  • Tracing, or logging, methods will vary per user application. Therefore, this library will declare the tracing/logging user APIs, but each user application must implement the APIs for their own environment.

Environment configuration

  • __HEI_ENABLE_HW_WRITE: When defined, it will allow hardware write support. Note that the Chip Data Files will contain rules for clearing and masking register bits. Both of which will require modifying hardware registers, which is not allowed by user applications like OpenBMC or FSP firmware.

Development Notes

  • The Hostboot environment only supports up to C++14. Therefore, this library cannot use anything newer at this time.
  • Hostboot has a very limited environment. It does not include libc or libstdc++. However, Hostboot has implemented select functions from those libraries as needed. For details, you can reference src/include/ in the POWER Systems Hostboot firmware.

Building

For a standard OpenBMC release build, you want something like:

meson -Dtests=disabled <build_dir>
ninja -C <build_dir>
ninja -C <build_dir> install

For a test / debug build, a typical configuration is:

meson -Dtests=enabled <build_dir>
ninja -C <build_dir> test