commit | 6f96e056d9cde20f07b8f38bd6f0b6111c967fa0 | [log] [tgz] |
---|---|---|
author | Patrick Williams <patrick@stwcx.xyz> | Mon Jan 15 14:57:14 2024 -0600 |
committer | Patrick Williams <patrick@stwcx.xyz> | Mon Jan 15 15:24:57 2024 -0600 |
tree | 0a3b9ae75938c10a55a18e88556c285f7d927716 | |
parent | 0aadbe41aadd155d91e2bda1c471ac85a7dffee9 [diff] |
ObjectMapper: match interfaces with reality The documented ObjectMapper interfaces do not match the reference implementation in phosphor-objmgr. Lots of code currently uses hand-written dbus calls to the ObjectMapper, using the real interfaces and not the documented ones. Refactoring all of these implementations is quite a bit of effort, which could be staged at a later time (or leverage a versioned interface). Update the interface to match reality so that generated bindings could be leveraged. Tested: Ran the reference implementation and compared the signatures with the YAML and updated as necessary. ``` $ busctl --user introspect xyz.openbmc_project.ObjectMapper /xyz/openbmc_project/object_mapper xyz.openbmc_project.ObjectMapper NAME TYPE SIGNATURE RESULT/VALUE FLAGS .GetAncestors method sas a{sa{sas}} - .GetAssociatedSubTree method ooias a{sa{sas}} - .GetAssociatedSubTreePaths method ooias as - .GetObject method sas a{sas} - .GetSubTree method sias a{sa{sas}} - .GetSubTreePaths method sias as - ``` Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: If6fc6a403d602d6c18c6e30dc1a216a47d059860
YAML descriptors of standard D-Bus interfaces. The format is described by the sdbusplus binding generation tool sdbus++.
Before defining a new D-Bus interface or modifying an existing one, please read through the documented set of the common requirements and expectations.
This project can be built with meson
. The typical meson
workflow is: meson builddir && ninja -C builddir
.
The meson files used to handle the YAML files are automatically generated and found under the gen
subdirectory. When adding or removing YAML files, this must be regenerated. This can be done with the helper script found in the gen
subdirectory: cd gen && ./regenerate-meson
.
Only the xyz/openbmc_project and org/freedesktop interfaces are built by default. Other interfaces can be enabled by meson options:
-Ddata_com_ibm=true
-Ddata_org_open_power=true
Example: meson builddir -Ddata_com_ibm=true && ninja -C builddir