Switch to a thread safe single ton

In the current state the single ton pattern used in the
repository is not thread safe.

Switching the pattern to Meyer's single ton over the trusty
leaky single ton.

Ref : https://jinyu.li/notes/meyers-singleton/

Tested By :
1. Patched post-code-manager deamon & was able to get the post
   codes with the GetPostCodesWithTimeStamp method.

Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: I0ee5c21f15fc93e1d8c5e62a0fed33622a33c894
3 files changed
tree: c669769a9e6a77a778070aab42533fa3e163dfab
  1. inc/
  2. service_files/
  3. src/
  4. subprojects/
  5. .clang-format
  6. LICENSE
  7. MAINTAINERS
  8. meson.build
  9. meson_options.txt
  10. OWNERS
  11. README.md
README.md

phosphor-post-code-manager

This phosphor-post-code-manager repository provides an infrastructure to persist the POST codes in BMC filesystem & it also owns the systemd services that are responsible for exposing the BIOS Post Codes to rest of the world via redfish.

To Build

To build phosphor-post-code-manager package , do the following steps:

meson <build directory>
ninja -C <build directory>

Hosted Services

This repository ships xyz.openbmc_project.State.Boot.PostCode.service systemd service along with its template version and a tiny binary that exposes the necessary dbus interfaces & methods to extract the POST codes per boot cycle.

Architecture

This repository is tightly coupled with phosphor-host-postd OpenBMC respository which is responsible for emitting the dbus signals for every new POST Code.

phosphor-post-code-manager is architected to look for the property changed signals which are being emitted from the service that hosts Value property on xyz.openbmc_project.State.Boot.Raw interface & archive them per boot on the filesystem, so that those can be exposed over redfish