Emit signal and remove sensors from dbus

When a sensor is configured to be removed upon certain return codes
being returned when read, that sensor object should emit the proper
signals and be removed from dbus. This may have previously been
occurring but recently it was noticed that is not the case, so emit an
object removed signal so the sensor object is removed from dbus and any
applications subscribed to that sensor will be notified.

Tested:
    For a sensor configured to be removed upon a rc, triggered that bad
sensor read rc and used `busctl monitor` to see signals.

Change-Id: Ia9557ea548bd5a00a9bd6fdf91d4aa91d8458225
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
1 file changed
tree: 368809b0d3c5cdad3a4da9c191036795815f0ff0
  1. msl/
  2. test/
  3. tools/
  4. .clang-format
  5. .gitignore
  6. .lcovrc
  7. bootstrap.sh
  8. configure.ac
  9. env.cpp
  10. env.hpp
  11. fan_pwm.cpp
  12. fan_pwm.hpp
  13. fan_speed.cpp
  14. fan_speed.hpp
  15. gpio_handle.cpp
  16. gpio_handle.hpp
  17. hwmon.cpp
  18. hwmon.hpp
  19. hwmonio.cpp
  20. hwmonio.hpp
  21. interface.hpp
  22. LICENSE
  23. mainloop.cpp
  24. mainloop.hpp
  25. MAINTAINERS
  26. Makefile.am
  27. readd.cpp
  28. README.iio.md
  29. README.md
  30. sensor.cpp
  31. sensor.hpp
  32. sensorset.cpp
  33. sensorset.hpp
  34. sysfs.cpp
  35. sysfs.hpp
  36. targets.hpp
  37. thresholds.hpp
  38. types.hpp
  39. util.hpp
README.md

Exposes generic hwmon entries as DBus objects. More information can be found at Sensor Architecture

To Build

To build this package, do the following steps:

    1. ./bootstrap.sh
    2. ./configure ${CONFIGURE_FLAGS}
    3. make

To clean the repository run `./bootstrap.sh clean`.

D-Bus bus names

To enable the use of Linux features like cgroups prioritization and
udev/systemd control, one instance of phosphor-hwmon is intended to
be run per hwmon sysfs class instance.

This requires an algorithm for selecting a stable, well-known D-Bus busname.

The algorithm is <PREFIX>-<ID>.Hwmon<N> where PREFIX is an autoconf
configurable prefix (BUSNAME_PREFIX, xyz.openbmc_project by default),
ID is a std::hash of the /sys/devices path backing the hwmon class
instance, and N is the implemented phosphor-hwmon D-Bus API version.