d72ea4b8 | 24-Jun-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
dsp: pdr: Rename pldm_entity_association_pdr_add_check()
Introduce pldm_entity_association_pdr_add(), deprecate pldm_entity_association_pdr_add_check(), add the rename configuration and then apply i
dsp: pdr: Rename pldm_entity_association_pdr_add_check()
Introduce pldm_entity_association_pdr_add(), deprecate pldm_entity_association_pdr_add_check(), add the rename configuration and then apply it.
One quirk this time around is that we had forgotten to remove the declaration of pldm_entity_association_pdr_add() from the header when we removed its implementation. Clean this issue up as well, as it's necessary to avoid the type conflict.
Change-Id: Id8e61c817017dd7caefa9fd7b2bc59ee0f1f6721 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
e7f55113 | 20-Jun-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
dsp: pdr: Rename pldm_pdr_add_fru_record_set_check()
Drop the `_check` suffix so it is now `pldm_pdr_add_fru_record_set()`, and run `apply-renames` to update any internal references.
Change-Id: Iaa
dsp: pdr: Rename pldm_pdr_add_fru_record_set_check()
Drop the `_check` suffix so it is now `pldm_pdr_add_fru_record_set()`, and run `apply-renames` to update any internal references.
Change-Id: Iaaa452269caa47369c80b43bf65f30d2a004ec66 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
fae3641d | 20-Jun-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
dsp: pdr: Rename pldm_pdr_add_check()
Drop the `_check` suffix so it is now `pldm_pdr_add()`.
Change-Id: I9b32317f99a89acbe1cc0510380cd26badd145d6 Signed-off-by: Andrew Jeffery <andrew@codeconstruc
dsp: pdr: Rename pldm_pdr_add_check()
Drop the `_check` suffix so it is now `pldm_pdr_add()`.
Change-Id: I9b32317f99a89acbe1cc0510380cd26badd145d6 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
f874b383 | 24-Jul-2024 |
Thu Nguyen <thu@os.amperecomputing.com> |
platform: Stabilise decode_pldm_message_poll_event_data() APIs
See usage example at: [1] https://gerrit.openbmc.org/c/openbmc/pldm/+/73033/1/platform-mc/event_manager.cpp#126
Change-Id: Ic680a514b2
platform: Stabilise decode_pldm_message_poll_event_data() APIs
See usage example at: [1] https://gerrit.openbmc.org/c/openbmc/pldm/+/73033/1/platform-mc/event_manager.cpp#126
Change-Id: Ic680a514b224d366cc00fa291f2da45dde77950a Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
show more ...
|
43cb4b5f | 16-Jul-2024 |
Thu Nguyen <thu@os.amperecomputing.com> |
platform: Stabilise related decode_entity_auxiliary_names_pdr*() APIs
See usage example at: https://gerrit.openbmc.org/c/openbmc/pldm/+/72610
Change-Id: I16c6d42ad11afa59b04676fa187f5ea0764d1880 Si
platform: Stabilise related decode_entity_auxiliary_names_pdr*() APIs
See usage example at: https://gerrit.openbmc.org/c/openbmc/pldm/+/72610
Change-Id: I16c6d42ad11afa59b04676fa187f5ea0764d1880 Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
show more ...
|
5befd128 | 17-Jul-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
abi: x86_64: Capture rename of get_fru_record_by_option()
This was not addressed in the change renaming the function. I've updated the changes checklist to reflect the need.
Change-Id: Iea55421e9b3
abi: x86_64: Capture rename of get_fru_record_by_option()
This was not addressed in the change renaming the function. I've updated the changes checklist to reflect the need.
Change-Id: Iea55421e9b3dd6f060ebd9f615093ec2a8a8a432 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
de67ab62 | 30-May-2024 |
Tal Yacobi <talycb8@gmail.com> |
platform: Stabilise GetStateEffecterStates functions
See usage example at: https://gerrit.openbmc.org/c/openbmc/pldm/+/71657
Change-Id: I8ef0961dbc8e87fb4ca8533142104b852a7fb0a4 Signed-off-by: Tal
platform: Stabilise GetStateEffecterStates functions
See usage example at: https://gerrit.openbmc.org/c/openbmc/pldm/+/71657
Change-Id: I8ef0961dbc8e87fb4ca8533142104b852a7fb0a4 Signed-off-by: Tal Yacobi <talycb8@gmail.com> Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
48761c62 | 03-Jun-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
libpldm: Reorganize source and test files
Primarily this is about moving specification-specific files into 'dsp/' (in the "DMTF Standard Publication" sense[1]) subdirectories of both src/ and tests/
libpldm: Reorganize source and test files
Primarily this is about moving specification-specific files into 'dsp/' (in the "DMTF Standard Publication" sense[1]) subdirectories of both src/ and tests/.
[1]: https://www.dmtf.org/sites/default/files/standards/documents/DSP4014_2.14.0.pdf
libpldm is a concrete C implementation of the PLDM family of specifications. This invokes some accidental complexity[2] such as the msgbuf APIs and other concerns.
[2]: https://en.wikipedia.org/wiki/No_Silver_Bullet
Separate the essential complexity (everything under the dsp/ subdirectories) from the accidental complexity (almost everything else).
While doing so, I took the opportunity to drop the 'libpldm_' prefix and '_test' suffix from a variety of tests. The 'libpldm_' prefix is a hangover from the days when libpldm was a subproject of OpenBMC's pldm repo. The '_test' suffix feels redundant given the parent directory path.
Note that we maintain separation of the src/ and tests/. The test suite is implemented in C++ while libpldm's APIs are declared and defined in C. The ability to chop all the tests and C++ out of the implementation by ignoring a subtree seems like a desirable property when vendoring the library into other projects.
Finally, update the x86_64 GCC ABI dump, as rearranging the source causes a lot of churn in its definitions.
Change-Id: Icffcc6cf48b3101ecd38168827c0a81cffb8f083 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
c8df31c1 | 21-May-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
msgbuf: Add error code personalities
libpldm is in a bit of a transitional period with respect to returned error codes. A historical choice was to return PLDM completion codes from the library API t
msgbuf: Add error code personalities
libpldm is in a bit of a transitional period with respect to returned error codes. A historical choice was to return PLDM completion codes from the library API to indicate errors. This is unfortunate because we're now constrained to errors that are specified by the PLDM protocol, which is much less expressive than the set of errors that might be produced by a run-time environment for the library.
The choice going forward is to return C's errno codes. However at this point we step on another rake in the libpldm design, which is that some internal data structures are very much the wire format of corresponding PLDM messages (such as the PDR repository implementation). Working with wire-format buffers is most safely done via the msgbuf APIs, however we then hit the conflict of different error code styles in various parts of the API surface.
Do a bit of surgery to provide different error code personalities for msgbuf, such that the caller can pick the style of error code they need it to return to maintain consistency.
Note that like the previous patch marking all msgbuf APIs as __attribute__((always_inline)), the rework here makes another small impact on the argument register allocation of several stable APIs. The ABI dump is updated accordingly.
Change-Id: Id59c39c5c822f514f546dab88575317071a97c96 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
76712f69 | 22-May-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
msgbuf: Always inline all functions
The intent of the msgbuf APIs is that they are glorified wrappers around singular load/store sequences. Given this, mark all of them as `__attribute__((always_inl
msgbuf: Always inline all functions
The intent of the msgbuf APIs is that they are glorified wrappers around singular load/store sequences. Given this, mark all of them as `__attribute__((always_inline))`.
Note that this apparently impacts the library ABI of the following functions:
- `decode_get_state_sensor_readings_resp` - `decode_platform_event_message_req` - `decode_pldm_pdr_repository_change_record_data` - `decode_pldm_pdr_repository_chg_event_data` - `decode_sensor_op_data` - `decode_set_event_receiver_resp` - `decode_state_sensor_data`
On x86_64 the argument register selection is rearranged, for example:
```diff 'Reg' => { - '2' => 'rbx' + '0' => 'rdi', + '1' => 'rsi', + '2' => 'rdx' }, 'Return' => '100', 'ShortName' => 'decode_set_event_receiver_resp' ```
I'm yet to understand how we ended up with argument 2 being passed in `rbx`, as the psABI[1][2] v1.0 does not define `rbx` as an argument-passing register (see Figure 3.4 on page 26). Possibly because it's callee-saved it can be exploited this way. The previously recorded registers of other functions appear to have the same concern. By contrast, `rdi`, `rsi` and `rdx` are defined as the 1st, 2nd and 3rd argument-passing registers respectively, which with respect to the function at hand seems reasonable.
[1]: https://gitlab.com/x86-psABIs/x86-64-ABI/-/jobs/artifacts/master/raw/x86-64-ABI/abi.pdf?job=build [2]: https://gitlab.com/x86-psABIs/x86-64-ABI
Change-Id: I38c2d36d254bbd54012848b2b5c5ab52c0f04003 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
c166dd5f | 22-May-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
libpldm: Release v0.8.0
Change-Id: I5950344f0f35609cd178c4505dc662f1ddbc5e78 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> |
615a1f1c | 23-May-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
abi: Run the captured dump through the dump formatter
The change entirely consists of whitespace, and can be verified with:
``` $ git diff --stat=1 ...cc.dump | 25122 +++--- 1 file changed, 12561
abi: Run the captured dump through the dump formatter
The change entirely consists of whitespace, and can be verified with:
``` $ git diff --stat=1 ...cc.dump | 25122 +++--- 1 file changed, 12561 insertions(+), 12561 deletions(-) $ git diff --stat=1 --ignore-all-space $ ```
Change-Id: Ibc0ad3a1de618353557b3c94d6debb5c99d290fd Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
a98814fc | 29-Nov-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
oem: meta: stabilise decode_oem_meta_file_io_req()
Use of decode_oem_meta_file_io_req() is demonstrated in:
67050: Support OEM-META write file request for post code history https://gerrit.openbmc.o
oem: meta: stabilise decode_oem_meta_file_io_req()
Use of decode_oem_meta_file_io_req() is demonstrated in:
67050: Support OEM-META write file request for post code history https://gerrit.openbmc.org/c/openbmc/pldm/+/67050
Change-Id: I03cfd68f279f9bfdf515ca4302561ca0464c75cc Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
3a267059 | 13-Nov-2023 |
Pavithra Barithaya <pavithra.b@ibm.com> |
pdr: Stabilise pldm_entity_association_pdr_add_from_node_with_record_handle()
The usage of pldm_entity_association_pdr_add_from_node_with_record_handle() is demonstrated here:
https://gerrit.openbm
pdr: Stabilise pldm_entity_association_pdr_add_from_node_with_record_handle()
The usage of pldm_entity_association_pdr_add_from_node_with_record_handle() is demonstrated here:
https://gerrit.openbmc.org/c/openbmc/pldm/+/63125
Change-Id: I564d2253402b22af561ebf710f33c142b70b2e16 Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com> Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
4a307bca | 13-Nov-2023 |
Pavithra Barithaya <pavithra.b@ibm.com> |
pdr: Stabilise pldm_pdr_find_last_in_range() API
Use of pldm_pdr_find_last_in_range() API is demonstarted here: https://gerrit.openbmc.org/c/openbmc/pldm/+/63125
Change-Id: Idf51abc591fd2e2ab31f3b7
pdr: Stabilise pldm_pdr_find_last_in_range() API
Use of pldm_pdr_find_last_in_range() API is demonstarted here: https://gerrit.openbmc.org/c/openbmc/pldm/+/63125
Change-Id: Idf51abc591fd2e2ab31f3b7e1d2957d1345702e7 Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>
show more ...
|
1077d2d1 | 27-Nov-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
meson: Configure abi-dumper for mixed headers
We split the headers between include/ and src/ dependening on their purpose and use different include strategies to differentiate. There's no restrictio
meson: Configure abi-dumper for mixed headers
We split the headers between include/ and src/ dependening on their purpose and use different include strategies to differentiate. There's no restriction on the header names, so make sure abi-dumper is aware.
Change-Id: I21a6da776ce8bbf5d5d1e328f44e9cd650406dea Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
75eea49e | 27-Nov-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
meson: Sort abi-dumper output
It turns out that it helps to read the man-page! Hopefully this makes the show a whole lot more manageable.
Change-Id: I2b44a457702f1792617c0d76a443bd27b85c1515 Signed
meson: Sort abi-dumper output
It turns out that it helps to read the man-page! Hopefully this makes the show a whole lot more manageable.
Change-Id: I2b44a457702f1792617c0d76a443bd27b85c1515 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
7dc429da | 15-Oct-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
transport: af-mctp: Stabilise pldm_transport_af_mctp_bind()
Use of pldm_transport_af_mctp_bind() is demonstrated in the following patch to pldmd:
https://gerrit.openbmc.org/c/openbmc/pldm/+/63652
transport: af-mctp: Stabilise pldm_transport_af_mctp_bind()
Use of pldm_transport_af_mctp_bind() is demonstrated in the following patch to pldmd:
https://gerrit.openbmc.org/c/openbmc/pldm/+/63652
Change-Id: I9c902d94c13bceb611606e7439964d9485ebec07 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
5239d9a6 | 15-Oct-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
base: Stabilise pldm_msg_hdr_correlate_response()
Use of pldm_msg_hdr_correlate_response() is demonstrated in the following patch to pldmd:
https://gerrit.openbmc.org/c/openbmc/pldm/+/66819
Change
base: Stabilise pldm_msg_hdr_correlate_response()
Use of pldm_msg_hdr_correlate_response() is demonstrated in the following patch to pldmd:
https://gerrit.openbmc.org/c/openbmc/pldm/+/66819
Change-Id: I875b2dee5247c986a36ccd456956fb7e2a18d11a Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
d555a39c | 15-Oct-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
abi: Update x86_64 dump in accordance with the CI output
Maintain the x86_64 ABI dump as generated by the OpenBMC CI container. This is a sensible reference point that should give us consistent dump
abi: Update x86_64 dump in accordance with the CI output
Maintain the x86_64 ABI dump as generated by the OpenBMC CI container. This is a sensible reference point that should give us consistent dump output.
Change-Id: I2f573a159cfa5564d952d62a882ef06a27041e91 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
34cfad96 | 15-Oct-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
abi: Drop aarch64 ABI reference
Maintaining the ABI dump across multiple distros let alone across multiple architectures is too much of a headache. Let's maintain one dump for the architecture that'
abi: Drop aarch64 ABI reference
Maintaining the ABI dump across multiple distros let alone across multiple architectures is too much of a headache. Let's maintain one dump for the architecture that's used by CI (x86_64).
Change-Id: I648ad930c55d1c3929a377932dd6c4f29e0df0c6 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
3f39f963 | 29-Aug-2023 |
Andrew Jeffery <andrew@aj.id.au> |
libpldm: Release v0.7.0
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I7bd69123b2939eef20ed1fe946cbf2adf78ad5be |
34ac891f | 29-Aug-2023 |
Andrew Jeffery <andrew@aj.id.au> |
abi: Capture deprecation of pldm_close()
The deprecation of pldm_close() got missed in the ABI dump updates for 0a6d6821bd74 ("transport: Stabilise core transport and implementation APIs")
Fixes: 0
abi: Capture deprecation of pldm_close()
The deprecation of pldm_close() got missed in the ABI dump updates for 0a6d6821bd74 ("transport: Stabilise core transport and implementation APIs")
Fixes: 0a6d6821bd74 ("transport: Stabilise core transport and implementation APIs") Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I5abfb67296140303e69c289a7067898aeaccdc18
show more ...
|
0a6d6821 | 22-Aug-2023 |
Andrew Jeffery <andrew@aj.id.au> |
transport: Stabilise core transport and implementation APIs
The following two patches demonstrate their use in pldmd:
1. https://gerrit.openbmc.org/c/openbmc/pldm/+/63652 2. https://gerrit.openbmc.
transport: Stabilise core transport and implementation APIs
The following two patches demonstrate their use in pldmd:
1. https://gerrit.openbmc.org/c/openbmc/pldm/+/63652 2. https://gerrit.openbmc.org/c/openbmc/pldm/+/65676
In the process, deprecate the old requester APIs. These are unsuitable for OpenBMC going forward, which will rely on AF_MCTP sockets for the MCTP transport implementation.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I94a9d9ff5fc67d5d6cf9a2393ebef12fa7b277d7
show more ...
|
d2a36a16 | 21-Aug-2023 |
Andrew Jeffery <andrew@aj.id.au> |
libpldm: Release v0.6.0
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: Ifb48f45630ee5d0701e2fa138004103190db1809 |