History log of /openbmc/libpldm/tests/ (Results 151 – 169 of 169)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
b27cebfd23-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 ...

155317e513-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

platform: pldm_msgbuf for decode_numeric_sensor_data()

In the process, remove a test for short buffer handling as this triggers
an assert in pldm_msgbuf.

Signed-off-by: Andrew Jeffery <andrew@aj.id

platform: pldm_msgbuf for decode_numeric_sensor_data()

In the process, remove a test for short buffer handling as this triggers
an assert in pldm_msgbuf.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I66c510568934e5cdd8b1aeb9ab5d2e65a196f93c

show more ...

db7b832412-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

msgbuf: Add pldm_msgbuf_consumed()

pldm_msgbuf_consumed() only returns PLDM_SUCCESS if a message buffer has
been exactly exhausted - all bytes read and no overflow has occurred.

The decode_* functi

msgbuf: Add pldm_msgbuf_consumed()

pldm_msgbuf_consumed() only returns PLDM_SUCCESS if a message buffer has
been exactly exhausted - all bytes read and no overflow has occurred.

The decode_* functions have a mix of behaviour, some lenient like the
behaviour provided by pldm_msgbuf_validate() and others strict like
pldm_msgbuf_consumed().

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: If058ed3748dcc7cb366f4c31344c9bbfba1c5939

show more ...

4e5e8a2103-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

platform: pldm_msgbuf for decode_get_pdr_resp()

The rework in this patch is the first use pldm_msgbuf on a message type
with variable-length data. The length of the data is embedded in the
message a

platform: pldm_msgbuf for decode_get_pdr_resp()

The rework in this patch is the first use pldm_msgbuf on a message type
with variable-length data. The length of the data is embedded in the
message and is one of the elements that we must extract. As we need to
use the extracted length value we must first ensure that the value has
been successfully extracted. This requires we test against the return
value of `pldm_msgbuf_extract()` and _not_ batch the evaluation of
success like we have elsewhere.

Another side-effect is the rework affects mechanics of the "bad" test.
To accommodate that, the change to `recordDataLength` sets the message
up such that the length of the variable data embedded in the message is
1 byte longer than the supplied buffer into which the data should be
extracted. This arrangement upholds the test expectation that
decode_get_pdr_resp() returns PLDM_ERROR_INVALID_LENGTH for the provided
message buffer.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I6916d28cdd1e27f180fb52725a836a365299ee9a

show more ...

369b121a20-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

msgbuf: Add pldm_msgbuf_extract_array() for uint8

This is required for converting the
decode_get_pdr_repository_info_resp() function to pldm_msgbuf.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>

msgbuf: Add pldm_msgbuf_extract_array() for uint8

This is required for converting the
decode_get_pdr_repository_info_resp() function to pldm_msgbuf.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: If9afcaa83872969bcf8e4d0ecdeae2971e12248b

show more ...

92f6c3ca13-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

platform: Fix LE encoding of present_reading

The following portion of the test implementation demonstrates
significant confusion in the handling of endiannes:

```
uint32_t presentReading = 3054

platform: Fix LE encoding of present_reading

The following portion of the test implementation demonstrates
significant confusion in the handling of endiannes:

```
uint32_t presentReading = 305441741;
...
sensorData->present_reading[3] =
static_cast<uint8_t>(htole32(presentReading) & (0x000000ff));
sensorData->present_reading[2] =
static_cast<uint8_t>((htole32(presentReading) & (0x0000ff00)) >> 8);
sensorData->present_reading[1] =
static_cast<uint8_t>((htole32(presentReading) & (0x00ff0000)) >> 16);
sensorData->present_reading[0] =
static_cast<uint8_t>((htole32(presentReading) & (0xff000000)) >> 24);
```

First up, plugging 305441741 into a calculator an converting it to
hexadecimal representation reveals the the value 0x1234ABCD. So let's
just state that directly, as it's an easily recognisable pattern.

From there the test implementation tried to encode the value 0x1234ABCD
in little-endian format into the present_reading byte buffer. `struct
pldm_sensor_event_numeric_sensor_state` is allocated as if the
present_reading member was a flexible array member, extending its range
to 4 bytes, taking care of the space allocation concerns (modulo
undefined behaviour).

Analysing the implementation we have to start with the following
concerns:

1. The host representation of the value 0x1234ABCD
2. The architectural representation of the value 0x1234ABCD
3. The behaviour of htole32()

On point 1, value constants defined in the source are represented in the
usual positional notation convention: Most-Significant (MS) digit on the
left, Least-Significant (LS) digit on the right. This source
representation is independent of any architectural representation in the
storage for the value. As a forward reference, any operations on values
in the source are in accordance with the value's type, and do not
concern endianness, only the positional notation.

The architectural representation is required because we have a
byte-addressable memory system and a multi-byte object. As above, when
dealt with as coherent type the object's value behaves as if it has the
properties of positional notation. The ordering of the byte quantities
composing the value only become visible when viewing the storage of the
object as byte sequence:

```
Big Endian MS Little Endian
+-------------- 12 --------------+
| +----------- 34 -----------+ |
| | +-------- AB --------+ | |
| | | +----- CD -----+ | | |
| | | | LS | | | |
v v v v || v v v v
| MS | 12 34 AB CD | LS || LS | CD AB 34 12 | MS | Byte Value
| | 0 1 2 3 | || | 0 1 2 3 | | Byte Address
```

On point 3, the post-condition of htole32() is that if the storage of
the 32-bit unsigned integer result is viewed as a byte array then the
value represented in the array is encoded as little-endian. Whether any
re-arrangement of the argument's representation is required is a
function of the architecture of the host. If the host is big-endian, a
byte-swap will occur, and inspecting the value as its canonical type
will yield a value significantly different from that which was provided
as an argument. On the other hand, if the host is little-endian, then no
byte-swap will occur, as the value is already encoded in the required
fashion. The value of the result when used as its canonical type is the
same as the input value.

Concretely:

+-----------------------+-----------------------------------+
| | Result |
| Source |------------------+----------------|
| Operation | BE Architecture | LE Achitecture |
|-----------------------|------------------+----------------|
| `htole32(0x1234ABCD)` | 0xCDAB3412 | 0x1234ABCD |
| `htobe32(0x1234ABCD)` | 0x1234ABCD | 0xCDAB3412 |
+-----------------------+------------------+----------------+

As a result, any operations on values, aside from endian conversion,
must always be done in terms of the host endianness. Failing that the
behaviour is beyond the semantics of the C specification as there are
multiple possible results.

The test implementation in question violates this requirement. The
following sub-expression (and others) is an operation whose operands
include a value of specific endianness and a value of host endianness:

```
htole32(presentReading) & (0x000000ff)
```

Having covered the problematic sub-expression we need to expand our view
to the assignment into the `present_reading` member of `struct
pldm_sensor_event_numeric_sensor_state`:

```
sensorData->present_reading[3] =
static_cast<uint8_t>(htole32(presentReading) & (0x000000ff));
...
```

We find that the values selected by the sub-expression are then encoded
into an array that is later interpreted to contain a 32-bit
little-endian value. Under the assumption that we're running on a
little-endian host, htole32() becomes an identity function, yielding
presentReading. Rewriting:

```
sensorData->present_reading[3] =
static_cast<uint8_t>(presentReading & (0x000000ff));
...
```

The mask thus selects the Least-Sigificant-Byte (LSB) of
`presentReading`, however this LSB value is inserted into the
present_reading array at the index of the Most-Significant-Byte (MSB) of
the little-endian encoded value (index 3).

Throw away all the trickery and just encode the value into the
`present_reading` member directly, in the correct fashion.

Also fix the implementation of decode_numeric_sensor_data() which
demonstrated similar confusion.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I71990aa594da054bdef0ce42b137bfe44502831b

show more ...

6ad4dc0f12-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

tests: platform: Fix TEST(GetStateSensorReadings, testBadDecodeResponse)

Fix up an off-by-one error in the test suite. I modified the test to
instead report more sensors than were present in the mes

tests: platform: Fix TEST(GetStateSensorReadings, testBadDecodeResponse)

Fix up an off-by-one error in the test suite. I modified the test to
instead report more sensors than were present in the message buffer and
received the following from ASAN:

```
=================================================================
==297936==ERROR: AddressSanitizer: stack-buffer-overflow on address 0xffffc18300b9 at pc 0xffffa04cae2c bp 0xffffc182fe40 sp 0xffffc182fe58
READ of size 1 at 0xffffc18300b9 thread T0
#0 0xffffa04cae28 in pldm_msgbuf_extract_uint8 ../src/msgbuf/../msgbuf.h:129
#1 0xffffa04cae28 in decode_get_state_sensor_readings_resp ../src/platform.c:804
#2 0x2c0278 in GetStateSensorReadings_testBadDecodeResponse_Test::TestBody() ../tests/libpldm_platform_test.cpp:843
#3 0xffffa03ba0f8 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (/lib64/libgtest.so.1.12.1+0x4a0f8)
#4 0xffffa03a6680 in testing::Test::Run() (/lib64/libgtest.so.1.12.1+0x36680)
#5 0xffffa03a688c in testing::TestInfo::Run() (/lib64/libgtest.so.1.12.1+0x3688c)
#6 0xffffa03a6c30 in testing::TestSuite::Run() (/lib64/libgtest.so.1.12.1+0x36c30)
#7 0xffffa03b2dd0 in testing::internal::UnitTestImpl::RunAllTests() (/lib64/libgtest.so.1.12.1+0x42dd0)
#8 0xffffa03b1998 in testing::UnitTest::Run() (/lib64/libgtest.so.1.12.1+0x41998)
#9 0xffffa0400940 in main (/lib64/libgtest_main.so.1.12.1+0x940)
#10 0xffff9f80b584 in __libc_start_call_main (/lib64/libc.so.6+0x2b584)
#11 0xffff9f80b65c in __libc_start_main@@GLIBC_2.34 (/lib64/libc.so.6+0x2b65c)
#12 0x2b2a6c in _start (/mnt/host/andrew/src/openbmc/libpldm/build/tests/libpldm_platform_test+0x2b2a6c)

Address 0xffffc18300b9 is located in stack of thread T0 at offset 297 in frame
#0 0x2bfe90 in GetStateSensorReadings_testBadDecodeResponse_Test::TestBody() ../tests/libpldm_platform_test.cpp:811

This frame has 14 object(s):
[48, 49) 'retcompletion_code' (line 831)
[64, 65) 'retcomp_sensorCnt' (line 832)
[80, 84) 'rc' (line 819)
[96, 100) '<unknown>'
[112, 116) 'stateField' (line 827)
[128, 132) 'retstateField' (line 833)
[144, 148) '<unknown>'
[160, 168) '<unknown>'
[192, 200) '<unknown>'
[224, 232) '<unknown>'
[256, 264) '<unknown>'
[288, 297) 'responseMsg' (line 815) <== Memory access at offset 297 overflows this variable
[320, 336) 'gtest_ar' (line 822)
[352, 368) 'gtest_ar' (line 847)
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow ../src/msgbuf/../msgbuf.h:129 in pldm_msgbuf_extract_uint8
Shadow bytes around the buggy address:
0x200ff8305fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x200ff8305fd0: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
0x200ff8305fe0: 00 00 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
0x200ff8305ff0: 00 00 f1 f1 f1 f1 f1 f1 01 f2 01 f2 04 f2 f8 f2
0x200ff8306000: 04 f2 04 f2 04 f2 00 f2 f2 f2 00 f2 f2 f2 00 f2
=>0x200ff8306010: f2 f2 00 f2 f2 f2 00[01]f2 f2 f8 f8 f2 f2 00 00
0x200ff8306020: f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x200ff8306030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x200ff8306040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x200ff8306050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x200ff8306060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==297936==ABORTING
```

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Ib63254bd345d28924aee47eb230bcbea0c88811a

show more ...

f990dcfe12-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

tests: platform: TEST(GetNumericEffecterValue, testGoodEncodeResponse) UB

Use memcpy() to avoid provoking alignment warnings by libubsan.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id:

tests: platform: TEST(GetNumericEffecterValue, testGoodEncodeResponse) UB

Use memcpy() to avoid provoking alignment warnings by libubsan.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I25ed47fb80bbb023a75708f54cf656c13b501e86

show more ...

7992eb8406-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

Add numeric sensor PDR and sensor aux names PDR

1. Added struct for numeric sensor PDR in DSP0248_1.2.2 table78 and
decode_numeric_sensor_pdr_data API to unpack pdr data to struct
2. Added struct fo

Add numeric sensor PDR and sensor aux names PDR

1. Added struct for numeric sensor PDR in DSP0248_1.2.2 table78 and
decode_numeric_sensor_pdr_data API to unpack pdr data to struct
2. Added struct for sensor auxiliary names PDR in DSP0248_1.2.2 table83

Signed-off-by: Gilbert Chen <gilbertc@nvidia.com>
Change-Id: I11d25ee7da8326a5f5fe2c8a237ac014882e436e

show more ...

c63f63a224-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 ...

fbe61d7705-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

clang-tidy: Fix readability-isolate-declaration diagnostics

For example:

```
/usr/bin/clang-tidy -checks=-*, readability-isolate-declaration -export-fixes /tmp/tmpcxe3bcdw/tmpedwgdqvr.yaml -p=build

clang-tidy: Fix readability-isolate-declaration diagnostics

For example:

```
/usr/bin/clang-tidy -checks=-*, readability-isolate-declaration -export-fixes /tmp/tmpcxe3bcdw/tmpedwgdqvr.yaml -p=build /mnt/host/andrew/src/openbmc/libpldm/src/bios_table.c
/mnt/host/andrew/src/openbmc/libpldm/build/../src/bios_table.c:1093:2: error: multiple declarations in a single statement reduces readability [readability-isolate-declaration,-warnings-as-errors]
const struct pldm_bios_attr_val_table_entry *tmp, *to_update = entry;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../src/bios_table.c:1094:2: error: multiple declarations in a single statement reduces readability [readability-isolate-declaration,-warnings-as-errors]
size_t buffer_length = *dest_length, copied_length = 0, length = 0;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Ib866f2b36944c77dafcfbd3484a442444466f973

show more ...

5a70607305-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

clang-tidy: Fix modernize-deprecated-headers diagnostic

For example:

```
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_bios_test.cpp:2:10: error: inclusion of deprecated C++ header 's

clang-tidy: Fix modernize-deprecated-headers diagnostic

For example:

```
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_bios_test.cpp:2:10: error: inclusion of deprecated C++ header 'stdint.h'; consider using 'cstdint' instead [modernize-deprecated-headers,-warnings-as-errors]
^~~~~~~~~~
<cstdint>
```

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Ifebba7d7c21cc60a389a8783361fc23226135ee0

show more ...

11ae709a05-Apr-2023 Andrew Jeffery <andrew@aj.id.au>

clang-tidy: Fix clang-analyzer-deadcode.DeadStores diagnostics

```
/usr/bin/clang-tidy -checks=-*, clang-analyzer-deadcode.DeadStores -export-fixes /tmp/tmpwjsgsj4m/tmpthfbx7xt.yaml -p=build /mnt/ho

clang-tidy: Fix clang-analyzer-deadcode.DeadStores diagnostics

```
/usr/bin/clang-tidy -checks=-*, clang-analyzer-deadcode.DeadStores -export-fixes /tmp/tmpwjsgsj4m/tmpthfbx7xt.yaml -p=build /mnt/host/andrew/src/openbmc/libpldm/tests/libpldm_pdr_test.cpp
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:995:5: error: Value stored to 'start' is never read [clang-analyzer-deadcode.DeadStores,-warnings-as-errors]
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:995:5: note: Value stored to 'start' is never read
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:1031:5: error: Value stored to 'start' is never read [clang-analyzer-deadcode.DeadStores,-warnings-as-errors]
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:1031:5: note: Value stored to 'start' is never read
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:1067:5: error: Value stored to 'start' is never read [clang-analyzer-deadcode.DeadStores,-warnings-as-errors]
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:1067:5: note: Value stored to 'start' is never read
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:1103:5: error: Value stored to 'start' is never read [clang-analyzer-deadcode.DeadStores,-warnings-as-errors]
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:1103:5: note: Value stored to 'start' is never read
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:1134:5: error: Value stored to 'start' is never read [clang-analyzer-deadcode.DeadStores,-warnings-as-errors]
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
/mnt/host/andrew/src/openbmc/libpldm/build/../tests/libpldm_pdr_test.cpp:1134:5: note: Value stored to 'start' is never read
start += sizeof(pldm_entity);
^ ~~~~~~~~~~~~~~~~~~~
```

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I53e2c8c647b03e0f7531f58201de50f3895c0404

show more ...

1bf8c87c28-Nov-2022 Dung Cao <dung@os.amperecomputing.com>

Add encode/decode for EventMessageSupported

Added encode API for EventMessageSupported command(0x0C) which
is defined in DSP0248 Version 1.2.2 sec:16.8.

Signed-off-by: Dung Cao <dung@os.amperecompu

Add encode/decode for EventMessageSupported

Added encode API for EventMessageSupported command(0x0C) which
is defined in DSP0248 Version 1.2.2 sec:16.8.

Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: Id19ea795d233091841b5654164b66eea59df0806

show more ...

9a8e497528-Nov-2022 Manojkiran Eda <manojkiran.eda@gmail.com>

Fix includes using iwyu tool

These changes are done by running iwyu manually under clang14.

IWYU can increase readability, make maintenance easier, and avoid errors
in some cases. See details in
``

Fix includes using iwyu tool

These changes are done by running iwyu manually under clang14.

IWYU can increase readability, make maintenance easier, and avoid errors
in some cases. See details in
```
https: //github.com/include-what-you-use/include-what-you-use/blob/master/docs/WhyIWYU.md.
```
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: Idaaeffd78c9ad7db2b41a057d40f889ade297c55

show more ...

b7c73e5009-Nov-2022 Gilbert Chen <gilbertc@nvidia.com>

Add decode GetPDRRepositoryInfo resp API

Add decode response API for GetPDRRepositoryInfo command(0x50).
DSP0248_1.2.0 Table 67

Signed-off-by: Gilbert Chen <gilbertc@nvidia.com>
Change-Id: I000be34

Add decode GetPDRRepositoryInfo resp API

Add decode response API for GetPDRRepositoryInfo command(0x50).
DSP0248_1.2.0 Table 67

Signed-off-by: Gilbert Chen <gilbertc@nvidia.com>
Change-Id: I000be34a217499340bee60dc412ccd72530a52db

show more ...

d6ae898801-Nov-2022 Dung Cao <dung@os.amperecomputing.com>

Add encode/decode for EventMessageBufferSize

Added encode API for EventMessageBufferSize command(0x0D) which
is defined in DSP02408 Version 1.2.1 sec:16.9.

Signed-off-by: Dung Cao <dung@os.ampereco

Add encode/decode for EventMessageBufferSize

Added encode API for EventMessageBufferSize command(0x0D) which
is defined in DSP02408 Version 1.2.1 sec:16.9.

Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
Change-Id: Id3f00706b3d3a1871aa6491cc0ffe2ee42597258

show more ...

6c9c917218-Oct-2022 Gilbert Chen <gilbertc@nvidia.com>

Added encode API for SetTID cmd

Added encode API for SetTID command(0x01) which is defined in
DSP0240 Version 1.1.0 sec:8.1.1.

Signed-off-by: Gilbert Chen <gilbertc@nvidia.com>
Change-Id: Ia2d5c76e

Added encode API for SetTID cmd

Added encode API for SetTID command(0x01) which is defined in
DSP0240 Version 1.1.0 sec:8.1.1.

Signed-off-by: Gilbert Chen <gilbertc@nvidia.com>
Change-Id: Ia2d5c76e8ad545e794c72f5963556f1f0e6357fc

show more ...

9c76679210-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 ...


/openbmc/libpldm/.clang-format
/openbmc/libpldm/LICENSE
/openbmc/libpldm/include/libpldm/base.h
/openbmc/libpldm/include/libpldm/bios.h
/openbmc/libpldm/include/libpldm/bios_table.h
/openbmc/libpldm/include/libpldm/entity.h
/openbmc/libpldm/include/libpldm/firmware_update.h
/openbmc/libpldm/include/libpldm/fru.h
/openbmc/libpldm/include/libpldm/meson.build
/openbmc/libpldm/include/libpldm/oem/ibm/libpldm/entity_oem_ibm.h
/openbmc/libpldm/include/libpldm/oem/ibm/libpldm/file_io.h
/openbmc/libpldm/include/libpldm/oem/ibm/libpldm/fru_oem_ibm.h
/openbmc/libpldm/include/libpldm/oem/ibm/libpldm/host.h
/openbmc/libpldm/include/libpldm/oem/ibm/libpldm/platform_oem_ibm.h
/openbmc/libpldm/include/libpldm/oem/ibm/libpldm/state_set_oem_ibm.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/requester/pldm.h
/openbmc/libpldm/include/libpldm/state_set.h
/openbmc/libpldm/include/libpldm/states.h
/openbmc/libpldm/include/libpldm/utils.h
/openbmc/libpldm/libpldm.pc.in
/openbmc/libpldm/meson.build
/openbmc/libpldm/meson_options.txt
/openbmc/libpldm/src/base.c
/openbmc/libpldm/src/bios.c
/openbmc/libpldm/src/bios_table.c
/openbmc/libpldm/src/firmware_update.c
/openbmc/libpldm/src/fru.c
/openbmc/libpldm/src/meson.build
/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/pdr.c
/openbmc/libpldm/src/platform.c
/openbmc/libpldm/src/requester/meson.build
/openbmc/libpldm/src/requester/pldm.c
/openbmc/libpldm/src/utils.c
/openbmc/libpldm/subprojects/googletest.wrap
.clang-format
libpldm_base_test.cpp
libpldm_bios_table_test.cpp
libpldm_bios_test.cpp
libpldm_firmware_update_test.cpp
libpldm_fru_test.cpp
libpldm_pdr_test.cpp
libpldm_platform_test.cpp
libpldm_utils_test.cpp
meson.build
oem/ibm/libpldm_fileio_test.cpp
oem/ibm/libpldm_host_test.cpp

1234567