Revision tags: v0.11.0 |
|
#
fef24ed6 |
| 28-Nov-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
meson: Specify OEM extensions in an array
Prevent a proliferation of options by exploiting choice-constrained arrays.
Change-Id: I5bb5c9bfd41d2854fafee189734abcf58b058d82 Signed-off-by: Andrew Jeff
meson: Specify OEM extensions in an array
Prevent a proliferation of options by exploiting choice-constrained arrays.
Change-Id: I5bb5c9bfd41d2854fafee189734abcf58b058d82 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
Revision tags: v0.10.0, v0.9.1 |
|
#
e984a461 |
| 07-Sep-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
meson: Format build files with `meson format`
Additionally, add the formatting command to `scripts/pre-submit` so it's run by OpenBMC's CI (via `scripts/run-ci`).
Change-Id: Ifb8fc06106b8cfa9155e98
meson: Format build files with `meson format`
Additionally, add the formatting command to `scripts/pre-submit` so it's run by OpenBMC's CI (via `scripts/run-ci`).
Change-Id: Ifb8fc06106b8cfa9155e986528b769a5ca450b4c Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
Revision tags: v0.9.0 |
|
#
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 ...
|
#
d480b704 |
| 03-Jun-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
tests: meson: Push build configuration down to leaf directories
I feel this keeps things a bit more self-contained.
Change-Id: I68de6e4b0269d64b620b6c339825113e31074b4c Signed-off-by: Andrew Jeffer
tests: meson: Push build configuration down to leaf directories
I feel this keeps things a bit more self-contained.
Change-Id: I68de6e4b0269d64b620b6c339825113e31074b4c Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
#
9ca76701 |
| 02-Jun-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
tests: meson: Add note about guarding the transport tests
The transport tests rely on a 'test' transport implementation that will never be marked as stable.
Change-Id: Ib7766c25a435d1bd27f13d45a500
tests: meson: Add note about guarding the transport tests
The transport tests rely on a 'test' transport implementation that will never be marked as stable.
Change-Id: Ib7766c25a435d1bd27f13d45a50018806b225cae Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
#
44925df8 |
| 02-Jun-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
tests: meson: Sort tests alphabetically
Try to maintain some sense of coherence.
Change-Id: I14b7d8a07a65670e632c03f8532ec48229806a45 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
|
Revision tags: v0.8.0 |
|
#
22fad395 |
| 26-Oct-2023 |
Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com> |
oem: meta: Add decode_oem_meta_file_io_req()
Support decode_oem_meta_file_io_req() cmd to decode the incoming post code.
PLDM OEM Meta Write File IO cmd: Example: Request: Byte 0: 0x3F (OEM c
oem: meta: Add decode_oem_meta_file_io_req()
Support decode_oem_meta_file_io_req() cmd to decode the incoming post code.
PLDM OEM Meta Write File IO cmd: Example: Request: Byte 0: 0x3F (OEM cmd) Byte 1: 0x02 (FILE IO) Byte 2: 0x00 (File io type : POST CODE) Byte 3-6: 0x04 (Data length) Byte 7-10: 0x93 0xE0 0x00 0xEA (post code)
Response: Byte 0: 0x00 (success)
Tested: - Unit Tests passed.
Change-Id: I85437698642dd3cbe6084acf1feada842d206eac Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
show more ...
|
#
b0c1d20a |
| 07-Nov-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
libpldm: Fix header use
The headers need to work whether we're building libpldm in the repo or we're building another project depending on the headers in the system include directory.
Tidy up the p
libpldm: Fix header use
The headers need to work whether we're building libpldm in the repo or we're building another project depending on the headers in the system include directory.
Tidy up the paths involved and switch to defining the public headers as system headers for the purpose of the build.
Change-Id: I49413988c94d393ea5761bc4684edcd2c2482a98 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
#
cc45aed7 |
| 10-Sep-2023 |
Andrew Jeffery <andrew@aj.id.au> |
transport: af-mctp: Add pldm_transport_af_mctp_bind()
The af-mctp transport needs specific setup before it can receive requests[1]. Futher, we must track the MCTP metadata on each request message an
transport: af-mctp: Add pldm_transport_af_mctp_bind()
The af-mctp transport needs specific setup before it can receive requests[1]. Futher, we must track the MCTP metadata on each request message and apply it to the response for correlation at the requester. This behaviour is addressed in the Message Tag and Tag Owner fields outlined by Table 1 of DSP0236 v1.3.1.
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/networking/mctp.rst?h=v6.5#n73
Change-Id: I3fbd84a4174b56d618a42ca58c9881ea5a80f060 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au> Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
#
2aa237d6 |
| 22-Sep-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
tests: Deserialise transport tests that exercise timeouts
Allow tests that wait to execute in parallel. This reduces the test suite run time from ~20 seconds to ~5 seconds.
Change-Id: I9acb86a0ce91
tests: Deserialise transport tests that exercise timeouts
Allow tests that wait to execute in parallel. This reduces the test suite run time from ~20 seconds to ~5 seconds.
Change-Id: I9acb86a0ce919b90cc7f923b1e1c922d5614d37d Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
Revision tags: v0.7.0 |
|
#
ba05dba7 |
| 29-Aug-2023 |
Andrew Jeffery <andrew@aj.id.au> |
tests: Exclude transport tests when build excludes testing ABIs
The test transport will never be marked stable as we never want to publicly expose it in a production build. Therefore isolate the tra
tests: Exclude transport tests when build excludes testing ABIs
The test transport will never be marked stable as we never want to publicly expose it in a production build. Therefore isolate the transport tests to builds that enable the testing ABI, allowing the transport tests to link.
Fixes: 0a6d6821bd74 ("transport: Stabilise core transport and implementation APIs") Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: If1b252d8df0eeef9fb535824536436344d8c00ec
show more ...
|
Revision tags: v0.6.0, v0.5.0 |
|
#
9a6ba89c |
| 18-Jul-2023 |
Andrew Jeffery <andrew@aj.id.au> |
transport: Introduce a transport for testing purposes
I've put the test transport header along side the source file as its presence and implementation is an internal detail to support the test suite
transport: Introduce a transport for testing purposes
I've put the test transport header along side the source file as its presence and implementation is an internal detail to support the test suite. No consumers of libpldm outside its test suite should have any need for the test transport. We can always choose to make the header public if for some reason someone does eventually want to use it.
In addition, add a new test suite exercising the transport interfaces.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: Ie9906bdc6a397436b91198196de04ffd6c93fc46
show more ...
|
Revision tags: v0.4.0 |
|
#
73d9176a |
| 27-Jun-2023 |
Andrew Jeffery <andrew@aj.id.au> |
bios_table: pldm_bios_table_iter_next(): Invalid entry halts iteration
The attribute iterator machinary prevented misbehaviour through use of assert(). The attribute list is maintained as a linear s
bios_table: pldm_bios_table_iter_next(): Invalid entry halts iteration
The attribute iterator machinary prevented misbehaviour through use of assert(). The attribute list is maintained as a linear sequence of variably sized data structures that are packed against each other in the address space. The iterator is implemented by assigning a callback that can determine the length of each entry as appropriate for the entry's type, and then moving the iterator's cursor between elements.
The length derivation for some elements was protected by assert(). To avoid the asserts we rework the length callback prototype to return a signed size value and indicate an error state with a negative size.
pldm_bios_table_iter_next() is reworked to detect the error case on deriving the element size (negative size) and behave as if the iterator has terminated.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I80db3fe179201b169acc68c68633d8dd3f3a6334
show more ...
|
Revision tags: v0.3.0 |
|
#
8de8e1ec |
| 09-Jun-2023 |
Andrew Jeffery <andrew@aj.id.au> |
meson: Reduce strength of oem-ibm requirements from enabled to allowed
If it's not expressly disabled, do what's necessary to build the oem-ibm pieces of the code-base. Capture the newly-enabled API
meson: Reduce strength of oem-ibm requirements from enabled to allowed
If it's not expressly disabled, do what's necessary to build the oem-ibm pieces of the code-base. Capture the newly-enabled APIs in the ABI dumps.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I50168309432620e03f00a4620b6bfc38f2e575c8
show more ...
|
#
b27cebfd |
| 23-Apr-2023 |
Andrew Jeffery <andrew@aj.id.au> |
tests: Add instance-id tests
They weren't included on the patch introducing the API. Better late than never!
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I36b38959f427f4abf9fb3308d6e3
tests: Add instance-id tests
They weren't included on the patch introducing the API. Better late than never!
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I36b38959f427f4abf9fb3308d6e301a2a692170f
show more ...
|
#
c63f63a2 |
| 24-Feb-2023 |
Andrew Jeffery <andrew@aj.id.au> |
Introduce a small msgbuf abstraction
Tidy up how we extract data from wire-format buffers.
The API achieves the following:
1. Abstracts the buffer tracking to improve clarity in the calling code
Introduce a small msgbuf abstraction
Tidy up how we extract data from wire-format buffers.
The API achieves the following:
1. Abstracts the buffer tracking to improve clarity in the calling code
2. Prevents buffer overflows during data extraction
3. Handles type conversions while avoiding undefined behaviour
4. Handles alignment concerns with packed data and removes the need for `__attribute__((packed))` structs in the public ABI
5. Handles the endianness conversions required by the PLDM specification(s)
6. Batches error checks such that you mostly only have to do `return pldm_msgbuf_destroy();` at the end of the decode_* function for error handling, no error handling required on every `pldm_msgbuf_extract()` call
7. pldm_msgbuf_extract() is generic over the type of the data pointer (automatically calls the correct extractor for the type of the pointer)
8. Generates optimal code (where the optimiser can prove the accesses are in-bounds we generate straight-line load/store pairs and no function calls)
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I7e727cbd26c43aae2815ababe0e6ca4c8e629766 Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
Revision tags: v0.2.0 |
|
#
49fb9c42 |
| 10-Oct-2022 |
Andrew Jeffery <andrew@aj.id.au> |
Merge commit '9c76679224cf4b1655323a1e5e561ad2cb493ba2'
Change-Id: Ie53250468b641716e6c995f2eb16f1fa89f4bf91
|
#
9c766792 |
| 10-Aug-2022 |
Andrew Jeffery <andrew@aj.id.au> |
libpldm: Migrate to subproject
Organize files in libpldm to make it a subproject
In the current state, libpldm is not readily consumable as a subproject.This commit does all the necessary re-organi
libpldm: Migrate to subproject
Organize files in libpldm to make it a subproject
In the current state, libpldm is not readily consumable as a subproject.This commit does all the necessary re-organisation of the source code to make it work as a subproject.
There are no .c/.h files changes in this commit, only meson changes and re-organising the code structure.
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com> Change-Id: I20a71c0c972b1fd81fb359d604433618799102c6
show more ...
|