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 ...
|
155317e5 | 13-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 ...
|
db7b8324 | 12-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 ...
|
4e5e8a21 | 03-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 ...
|
369b121a | 20-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 ...
|
92f6c3ca | 13-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 ...
|
6ad4dc0f | 12-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 ...
|
f990dcfe | 12-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 ...
|
7992eb84 | 06-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 ...
|
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 ...
|
fbe61d77 | 05-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 ...
|
5a706073 | 05-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 ...
|
11ae709a | 05-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 ...
|
1bf8c87c | 28-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 ...
|
9a8e4975 | 28-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 ...
|
b7c73e50 | 09-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 ...
|
d6ae8988 | 01-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 ...
|
6c9c9172 | 18-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 ...
|
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 ...
|