History log of /openbmc/libpldm/tests/bindings/cpp/ (Results 1 – 3 of 3)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
696da55019-Feb-2026 Andrew Jeffery <andrew@codeconstruct.com.au>

meson: Migrate to boolean HAVE_LIBPLDM_API_* macros

This frees up the LIBPLDM_API_* macros for applying attributes to
structs, struct members, and functions.

Change-Id: I7c12b634ee78c2246fa0070a213

meson: Migrate to boolean HAVE_LIBPLDM_API_* macros

This frees up the LIBPLDM_API_* macros for applying attributes to
structs, struct members, and functions.

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

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
/openbmc/libpldm/bindings/cpp/OWNERS
/openbmc/libpldm/bindings/cpp/firmware_update.cpp
/openbmc/libpldm/bindings/cpp/meson.build
/openbmc/libpldm/bindings/cpp/types.cpp
/openbmc/libpldm/bindings/cpp/utils.cpp
/openbmc/libpldm/bindings/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
OWNERS
firmware_update_test.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