History log of /openbmc/libpldm/bindings/ (Results 1 – 3 of 3)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
9131a3e022-Feb-2026 Alexander Hansen <alexander.hansen@9elements.com>

meson: Add packageconfig for libpldm++

libpldm++ needs a packageconfig (.pc) file for yocto recipes to find
it as a dependency.

Add one here similar to how it's done for libpldm.

Also adjust the p

meson: Add packageconfig for libpldm++

libpldm++ needs a packageconfig (.pc) file for yocto recipes to find
it as a dependency.

Add one here similar to how it's done for libpldm.

Also adjust the packageconfig description for libpldm to reflect the
current scope of the library.

Tested: yocto image build succeeds when libpldm++ is configured as a
dependency for phosphor-software-manager.

Fixes: d6a957481638 ("bindings: C++ binding for parsing PLDM fw package")
Change-Id: I3c3ebbdb57d68b81c0fbd55ff110768f50a94446
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...

3283ad1419-Feb-2026 Andrew Jeffery <andrew@codeconstruct.com.au>

OWNERS: Tidy up throughout the tree

Two things are only really needed to be stored once:

- The blurb about how the OWNERS file is structured
- List items under the 'openbmc' key

Rework the subtree

OWNERS: Tidy up throughout the tree

Two things are only really needed to be stored once:

- The blurb about how the OWNERS file is structured
- List items under the 'openbmc' key

Rework the subtree OWNERS files to eliminate the redundancies

Change-Id: I385e0c1e57fd1ab59bb3367d9751ff05a38e6aab
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>

show more ...

d6a9574806-Jan-2025 Alexander Hansen <alexander.hansen@9elements.com>

bindings: C++ binding for parsing PLDM fw package

This binding enables convenient parsing of the PLDM fw update package in
C++ code. The entire package header is parsed and can be queried.

It has s

bindings: C++ binding for parsing PLDM fw package

This binding enables convenient parsing of the PLDM fw update package in
C++ code. The entire package header is parsed and can be queried.

It has since been modified to remove exceptions and rely less on mutable
instance variables.

The ABI compatibility of the C++ bindings is controlled in the same way
as the C code, with the LIBPLDM_ABI_* annotations on all public
functions.

The ABI stability is provided by using growable structs. See [2] for an
explanation.

When DMTF adds new data members to the firmware update package, these
can simply be appended to the end of the growable struct.

How can applications safely handle those structs?

Consider Application A1, compiled against libpldm++ version N-1
and linked against libpldm++ version N.

Assume libpldm++ version N has a new field as part of a given struct.

A1 will then receive a structure larger than what it expects and only
access a subset of the fields within.

Consider Application A1, compiled against libpldm++ version N and
linked against libpldm++ version N-1.

A1 will receive a structure smaller than what it expects. A1 must always
check for existence of any struct member which was introduced later than
DSP0267 version 1.0.0 [3].

Applications should never by themselves create instances of the structs
provided by this API since the version of libpldm++ they are linked
against may be lower and may not have a constructor for the version of
that struct the application is compiled against.

References:
[1] https://github.com/openbmc/pldm/blob/a1871174860e8927d19a0d57ac4cf9d55b0514ca/fw-update/package_parser.cpp
[2] https://github.com/lotem/mighty_struct/blob/master/mighty_struct_explained.md
[3] https://www.dmtf.org/dsp/DSP0267

Change-Id: Ib6cbff302be0e52d30125bcf08687ba42f7fc93f
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>

show more ...


/openbmc/libpldm/.clang-format
/openbmc/libpldm/.clang-tidy
/openbmc/libpldm/CHANGELOG.md
/openbmc/libpldm/CONTRIBUTING.md
/openbmc/libpldm/Doxyfile.in
/openbmc/libpldm/LICENSE
/openbmc/libpldm/OWNERS
/openbmc/libpldm/README.md
/openbmc/libpldm/abi/x86_64/gcc.dump
/openbmc/libpldm/abi/x86_64/libpldm++/OWNERS
/openbmc/libpldm/abi/x86_64/libpldm++/gcc.dump
cpp/OWNERS
cpp/firmware_update.cpp
cpp/meson.build
cpp/types.cpp
cpp/utils.cpp
cpp/utils.hpp
/openbmc/libpldm/docs/checklists/changes.md
/openbmc/libpldm/docs/checklists/releases.md
/openbmc/libpldm/docs/fuzzing.md
/openbmc/libpldm/docs/oem/meta/file-io.md
/openbmc/libpldm/evolutions/v0.13.0/crc32.yaml
/openbmc/libpldm/evolutions/v0.13.0/crc8.yaml
/openbmc/libpldm/evolutions/v0.15.0/bcd2dec16.yaml
/openbmc/libpldm/evolutions/v0.15.0/bcd2dec32.yaml
/openbmc/libpldm/evolutions/v0.15.0/bcd2dec8.yaml
/openbmc/libpldm/evolutions/v0.15.0/dec2bcd16.yaml
/openbmc/libpldm/evolutions/v0.15.0/dec2bcd32.yaml
/openbmc/libpldm/evolutions/v0.15.0/dec2bcd8.yaml
/openbmc/libpldm/evolutions/v0.15.0/ver2str.yaml
/openbmc/libpldm/evolutions/v0.9.1/get_fru_record_by_option_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/oem-ibm-header-compat.cocci
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_append_pad_checksum_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_entry_enum_decode_def_num_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_entry_enum_decode_pv_hdls_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_entry_enum_decode_pv_num_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_entry_enum_encode_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_entry_integer_encode_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_entry_string_decode_def_string_length_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_entry_string_encode_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_value_entry_encode_enum_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_value_entry_encode_integer_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_attr_value_entry_encode_string_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_string_entry_decode_string_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_bios_table_string_entry_encode_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_entity_association_pdr_add_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_entity_association_pdr_add_from_node_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_pdr_add_check.yaml
/openbmc/libpldm/evolutions/v0.9.1/pldm_pdr_add_fru_record_set_check.yaml
/openbmc/libpldm/include/libpldm++/OWNERS
/openbmc/libpldm/include/libpldm++/firmware_update.hpp
/openbmc/libpldm/include/libpldm++/meson.build
/openbmc/libpldm/include/libpldm++/types.hpp
/openbmc/libpldm/include/libpldm/api.h
/openbmc/libpldm/include/libpldm/base.h
/openbmc/libpldm/include/libpldm/bcd.h
/openbmc/libpldm/include/libpldm/bios.h
/openbmc/libpldm/include/libpldm/bios_table.h
/openbmc/libpldm/include/libpldm/compiler.h
/openbmc/libpldm/include/libpldm/control.h
/openbmc/libpldm/include/libpldm/edac.h
/openbmc/libpldm/include/libpldm/entity.h
/openbmc/libpldm/include/libpldm/file.h
/openbmc/libpldm/include/libpldm/firmware_fd.h
/openbmc/libpldm/include/libpldm/firmware_update.h
/openbmc/libpldm/include/libpldm/fru.h
/openbmc/libpldm/include/libpldm/instance-id.h
/openbmc/libpldm/include/libpldm/meson.build
/openbmc/libpldm/include/libpldm/oem/ibm/entity.h
/openbmc/libpldm/include/libpldm/oem/ibm/file_io.h
/openbmc/libpldm/include/libpldm/oem/ibm/fru.h
/openbmc/libpldm/include/libpldm/oem/ibm/host.h
/openbmc/libpldm/include/libpldm/oem/ibm/platform.h
/openbmc/libpldm/include/libpldm/oem/ibm/state_set.h
/openbmc/libpldm/include/libpldm/oem/meta/file_io.h
/openbmc/libpldm/include/libpldm/pdr.h
/openbmc/libpldm/include/libpldm/platform.h
/openbmc/libpldm/include/libpldm/pldm.h
/openbmc/libpldm/include/libpldm/pldm_types.h
/openbmc/libpldm/include/libpldm/rde.h
/openbmc/libpldm/include/libpldm/sizes.h.in
/openbmc/libpldm/include/libpldm/smbios.h
/openbmc/libpldm/include/libpldm/state_set.h
/openbmc/libpldm/include/libpldm/states.h
/openbmc/libpldm/include/libpldm/transport.h
/openbmc/libpldm/include/libpldm/transport/af-mctp.h
/openbmc/libpldm/include/libpldm/transport/mctp-demux.h
/openbmc/libpldm/include/meson.build
/openbmc/libpldm/instance-db/default
/openbmc/libpldm/meson.build
/openbmc/libpldm/meson.options
/openbmc/libpldm/scripts/abi-dump-formatter
/openbmc/libpldm/scripts/abi-dump-updater
/openbmc/libpldm/scripts/apply-renames
/openbmc/libpldm/scripts/changelog.awk
/openbmc/libpldm/scripts/pre-submit
/openbmc/libpldm/scripts/run-ci
/openbmc/libpldm/src/api.h
/openbmc/libpldm/src/array.h
/openbmc/libpldm/src/bcd.c
/openbmc/libpldm/src/compiler.h
/openbmc/libpldm/src/control-internal.h
/openbmc/libpldm/src/control.c
/openbmc/libpldm/src/dsp/base.c
/openbmc/libpldm/src/dsp/base.h
/openbmc/libpldm/src/dsp/bios.c
/openbmc/libpldm/src/dsp/bios_table.c
/openbmc/libpldm/src/dsp/file.c
/openbmc/libpldm/src/dsp/firmware_update.c
/openbmc/libpldm/src/dsp/fru.c
/openbmc/libpldm/src/dsp/meson.build
/openbmc/libpldm/src/dsp/pdr.c
/openbmc/libpldm/src/dsp/platform.c
/openbmc/libpldm/src/edac.c
/openbmc/libpldm/src/environ/meson.build
/openbmc/libpldm/src/environ/time.c
/openbmc/libpldm/src/environ/time.h
/openbmc/libpldm/src/firmware_device/fd-internal.h
/openbmc/libpldm/src/firmware_device/fd.c
/openbmc/libpldm/src/firmware_device/meson.build
/openbmc/libpldm/src/mctp-defines.h
/openbmc/libpldm/src/meson.build
/openbmc/libpldm/src/msgbuf.h
/openbmc/libpldm/src/msgbuf/core.h
/openbmc/libpldm/src/msgbuf/platform.h
/openbmc/libpldm/src/oem/ibm/file_io.c
/openbmc/libpldm/src/oem/ibm/host.c
/openbmc/libpldm/src/oem/ibm/meson.build
/openbmc/libpldm/src/oem/ibm/platform.c
/openbmc/libpldm/src/oem/meta/file_io.c
/openbmc/libpldm/src/oem/meta/meson.build
/openbmc/libpldm/src/requester/instance-id.c
/openbmc/libpldm/src/requester/meson.build
/openbmc/libpldm/src/responder.c
/openbmc/libpldm/src/responder.h
/openbmc/libpldm/src/transport/af-mctp.c
/openbmc/libpldm/src/transport/container-of.h
/openbmc/libpldm/src/transport/mctp-demux.c
/openbmc/libpldm/src/transport/meson.build
/openbmc/libpldm/src/transport/socket.c
/openbmc/libpldm/src/transport/socket.h
/openbmc/libpldm/src/transport/test.c
/openbmc/libpldm/src/transport/test.h
/openbmc/libpldm/src/transport/transport.c
/openbmc/libpldm/src/transport/transport.h
/openbmc/libpldm/src/utils.c
/openbmc/libpldm/src/utils.h
/openbmc/libpldm/subprojects/googletest.wrap
/openbmc/libpldm/tests/.clang-format
/openbmc/libpldm/tests/bcd.cpp
/openbmc/libpldm/tests/bindings/cpp/OWNERS
/openbmc/libpldm/tests/bindings/cpp/firmware_update_test.cpp
/openbmc/libpldm/tests/bindings/cpp/meson.build
/openbmc/libpldm/tests/data/test.hex
/openbmc/libpldm/tests/dsp/base.cpp
/openbmc/libpldm/tests/dsp/bios.cpp
/openbmc/libpldm/tests/dsp/bios_table.cpp
/openbmc/libpldm/tests/dsp/bios_table_iter.c
/openbmc/libpldm/tests/dsp/file.cpp
/openbmc/libpldm/tests/dsp/firmware_update.cpp
/openbmc/libpldm/tests/dsp/fru.cpp
/openbmc/libpldm/tests/dsp/meson.build
/openbmc/libpldm/tests/dsp/pdr.cpp
/openbmc/libpldm/tests/dsp/platform.cpp
/openbmc/libpldm/tests/edac.cpp
/openbmc/libpldm/tests/fuzz/fd-fuzz-input1.dat
/openbmc/libpldm/tests/fuzz/fd-fuzz.cpp
/openbmc/libpldm/tests/fuzz/fd.dict
/openbmc/libpldm/tests/fuzz/fuzz-build.py
/openbmc/libpldm/tests/fuzz/fuzz-coverage.py
/openbmc/libpldm/tests/fuzz/meson.build
/openbmc/libpldm/tests/instance-id.cpp
/openbmc/libpldm/tests/meson.build
/openbmc/libpldm/tests/msgbuf.cpp
/openbmc/libpldm/tests/msgbuf.hpp
/openbmc/libpldm/tests/msgbuf_generic.c
/openbmc/libpldm/tests/oem/ibm/fileio.cpp
/openbmc/libpldm/tests/oem/ibm/host.cpp
/openbmc/libpldm/tests/oem/ibm/meson.build
/openbmc/libpldm/tests/oem/meta/fileio.cpp
/openbmc/libpldm/tests/oem/meta/meson.build
/openbmc/libpldm/tests/responder.cpp
/openbmc/libpldm/tests/transport/meson.build
/openbmc/libpldm/tests/transport/send_recv_one.cpp
/openbmc/libpldm/tests/transport/send_recv_timeout.cpp
/openbmc/libpldm/tests/transport/send_recv_unwanted.cpp
/openbmc/libpldm/tests/transport/send_recv_wrong_command_code.cpp
/openbmc/libpldm/tests/transport/send_recv_wrong_pldm_type.cpp
/openbmc/libpldm/tests/transport/transport.cpp
/openbmc/libpldm/tests/utils.cpp
/openbmc/libpldm/tools/meson.build
/openbmc/libpldm/tools/pd.c