Merge remote-tracking branch 'origin/nullPointerArithmeticRedundantCheck_cppcheck_fix_on_w27_2023' into integration_2023_w33
This commit is contained in:
@@ -1485,17 +1485,23 @@ static int check_unpack_length(nfapi_message_id_e msgId, uint32_t unpackedBufLen
|
|||||||
|
|
||||||
int nfapi_p4_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pPackedBuf, uint32_t packedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
int nfapi_p4_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pPackedBuf, uint32_t packedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
||||||
nfapi_p4_p5_message_header_t *pMessageHeader = pMessageBuf;
|
nfapi_p4_p5_message_header_t *pMessageHeader = pMessageBuf;
|
||||||
uint8_t *end = pPackedBuf + packedBufLen;
|
|
||||||
uint8_t *pWritePackedMessage = pPackedBuf;
|
|
||||||
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
|
||||||
uint32_t packedMsgLen;
|
uint32_t packedMsgLen;
|
||||||
uint16_t packedMsgLen16;
|
uint16_t packedMsgLen16;
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pPackedBuf == NULL) {
|
if (pMessageBuf == NULL) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P4 Pack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P4 Pack supplied message buffer pointer is null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (packedBufLen == 0 || pPackedBuf == NULL) {
|
||||||
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P4 Pack supplied packed buffer pointer is null or packed buffer length is 0\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t *end = pPackedBuf + packedBufLen;
|
||||||
|
uint8_t *pWritePackedMessage = pPackedBuf;
|
||||||
|
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
||||||
|
|
||||||
// process the header
|
// process the header
|
||||||
if(!(push16(pMessageHeader->phy_id, &pWritePackedMessage, end) &&
|
if(!(push16(pMessageHeader->phy_id, &pWritePackedMessage, end) &&
|
||||||
push16(pMessageHeader->message_id, &pWritePackedMessage, end) &&
|
push16(pMessageHeader->message_id, &pWritePackedMessage, end) &&
|
||||||
@@ -1622,13 +1628,14 @@ int nfapi_p4_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pPack
|
|||||||
int nfapi_p4_message_header_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
int nfapi_p4_message_header_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
||||||
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
||||||
uint8_t *pReadPackedMessage = pMessageBuf;
|
uint8_t *pReadPackedMessage = pMessageBuf;
|
||||||
uint8_t *end = pMessageBuf + messageBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P4 header unpack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P4 header unpack supplied pointers are null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = pMessageBuf + messageBufLen;
|
||||||
|
|
||||||
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 header unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 header unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
||||||
return -1;
|
return -1;
|
||||||
@@ -1648,13 +1655,14 @@ int nfapi_p4_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUn
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
||||||
uint8_t *pReadPackedMessage = pMessageBuf;
|
uint8_t *pReadPackedMessage = pMessageBuf;
|
||||||
uint8_t *end = pMessageBuf + messageBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P4 unpack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P4 unpack supplied pointers are null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = pMessageBuf + messageBufLen;
|
||||||
|
|
||||||
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P4 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P4 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -1039,8 +1039,6 @@ static uint32_t get_packed_msg_len(uintptr_t msgHead, uintptr_t msgEnd) {
|
|||||||
int nfapi_nr_p5_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pPackedBuf, uint32_t packedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
int nfapi_nr_p5_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pPackedBuf, uint32_t packedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
||||||
nfapi_p4_p5_message_header_t *pMessageHeader = pMessageBuf;
|
nfapi_p4_p5_message_header_t *pMessageHeader = pMessageBuf;
|
||||||
uint8_t *pWritePackedMessage = pPackedBuf;
|
uint8_t *pWritePackedMessage = pPackedBuf;
|
||||||
uint8_t *pPackMessageEnd = pPackedBuf + packedBufLen;
|
|
||||||
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
|
||||||
uint32_t packedMsgLen;
|
uint32_t packedMsgLen;
|
||||||
uint16_t packedMsgLen16;
|
uint16_t packedMsgLen16;
|
||||||
|
|
||||||
@@ -1049,6 +1047,9 @@ int nfapi_nr_p5_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pP
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *pPackMessageEnd = pPackedBuf + packedBufLen;
|
||||||
|
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
||||||
|
|
||||||
// pack the message
|
// pack the message
|
||||||
if(push16(pMessageHeader->phy_id, &pWritePackedMessage, pPackMessageEnd) &&
|
if(push16(pMessageHeader->phy_id, &pWritePackedMessage, pPackMessageEnd) &&
|
||||||
push16(pMessageHeader->message_id, &pWritePackedMessage, pPackMessageEnd) &&
|
push16(pMessageHeader->message_id, &pWritePackedMessage, pPackMessageEnd) &&
|
||||||
@@ -1081,7 +1082,6 @@ int nfapi_nr_p5_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pP
|
|||||||
int nfapi_p5_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pPackedBuf, uint32_t packedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
int nfapi_p5_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pPackedBuf, uint32_t packedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
||||||
nfapi_p4_p5_message_header_t *pMessageHeader = pMessageBuf;
|
nfapi_p4_p5_message_header_t *pMessageHeader = pMessageBuf;
|
||||||
uint8_t *pWritePackedMessage = pPackedBuf;
|
uint8_t *pWritePackedMessage = pPackedBuf;
|
||||||
uint8_t *pPackMessageEnd = pPackedBuf + packedBufLen;
|
|
||||||
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
||||||
uint32_t packedMsgLen;
|
uint32_t packedMsgLen;
|
||||||
uint16_t packedMsgLen16;
|
uint16_t packedMsgLen16;
|
||||||
@@ -1091,6 +1091,8 @@ int nfapi_p5_message_pack(void *pMessageBuf, uint32_t messageBufLen, void *pPack
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *pPackMessageEnd = pPackedBuf + packedBufLen;
|
||||||
|
|
||||||
// pack the message
|
// pack the message
|
||||||
if(push16(pMessageHeader->phy_id, &pWritePackedMessage, pPackMessageEnd) &&
|
if(push16(pMessageHeader->phy_id, &pWritePackedMessage, pPackMessageEnd) &&
|
||||||
push16(pMessageHeader->message_id, &pWritePackedMessage, pPackMessageEnd) &&
|
push16(pMessageHeader->message_id, &pWritePackedMessage, pPackMessageEnd) &&
|
||||||
@@ -2105,13 +2107,14 @@ static int check_unpack_length(nfapi_message_id_e msgId, uint32_t unpackedBufLen
|
|||||||
int nfapi_p5_message_header_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
int nfapi_p5_message_header_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
||||||
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
||||||
uint8_t *pReadPackedMessage = pMessageBuf;
|
uint8_t *pReadPackedMessage = pMessageBuf;
|
||||||
uint8_t *end = pMessageBuf + messageBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 header unpack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 header unpack supplied pointers are null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = pMessageBuf + messageBufLen;
|
||||||
|
|
||||||
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 header unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 header unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
||||||
return -1;
|
return -1;
|
||||||
@@ -2127,13 +2130,14 @@ int nfapi_p5_message_header_unpack(void *pMessageBuf, uint32_t messageBufLen, vo
|
|||||||
int nfapi_nr_p5_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
int nfapi_nr_p5_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
||||||
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
||||||
uint8_t *pReadPackedMessage = pMessageBuf;
|
uint8_t *pReadPackedMessage = pMessageBuf;
|
||||||
uint8_t *end = pMessageBuf + messageBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 unpack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 unpack supplied pointers are null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = (uint8_t *)pMessageBuf + messageBufLen;
|
||||||
|
|
||||||
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
||||||
return -1;
|
return -1;
|
||||||
@@ -2262,13 +2266,14 @@ int nfapi_nr_p5_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *
|
|||||||
int nfapi_p5_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
int nfapi_p5_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p4_p5_codec_config_t *config) {
|
||||||
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
nfapi_p4_p5_message_header_t *pMessageHeader = pUnpackedBuf;
|
||||||
uint8_t *pReadPackedMessage = pMessageBuf;
|
uint8_t *pReadPackedMessage = pMessageBuf;
|
||||||
uint8_t *end = pMessageBuf + messageBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 unpack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 unpack supplied pointers are null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = (uint8_t *)pMessageBuf + messageBufLen;
|
||||||
|
|
||||||
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
if (messageBufLen < NFAPI_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p4_p5_message_header_t)) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P5 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -3437,13 +3437,15 @@ int nfapi_nr_p7_message_pack(void *pMessageBuf, void *pPackedBuf, uint32_t packe
|
|||||||
nfapi_p7_message_header_t *pMessageHeader = pMessageBuf;
|
nfapi_p7_message_header_t *pMessageHeader = pMessageBuf;
|
||||||
uint8_t *pWritePackedMessage = pPackedBuf;
|
uint8_t *pWritePackedMessage = pPackedBuf;
|
||||||
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
||||||
uint8_t *end = pPackedBuf + packedBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pPackedBuf == NULL)
|
if (pMessageBuf == NULL || pPackedBuf == NULL)
|
||||||
{
|
{
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 Pack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 Pack supplied pointers are null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = (uint8_t *)pPackedBuf + packedBufLen;
|
||||||
|
|
||||||
// process the header
|
// process the header
|
||||||
if(!(push16(pMessageHeader->phy_id, &pWritePackedMessage, end) &&
|
if(!(push16(pMessageHeader->phy_id, &pWritePackedMessage, end) &&
|
||||||
push16(pMessageHeader->message_id, &pWritePackedMessage, end) &&
|
push16(pMessageHeader->message_id, &pWritePackedMessage, end) &&
|
||||||
@@ -3587,13 +3589,14 @@ int nfapi_p7_message_pack(void *pMessageBuf, void *pPackedBuf, uint32_t packedBu
|
|||||||
nfapi_p7_message_header_t *pMessageHeader = pMessageBuf;
|
nfapi_p7_message_header_t *pMessageHeader = pMessageBuf;
|
||||||
uint8_t *pWritePackedMessage = pPackedBuf;
|
uint8_t *pWritePackedMessage = pPackedBuf;
|
||||||
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
uint8_t *pPackedLengthField = &pWritePackedMessage[4];
|
||||||
uint8_t *end = pPackedBuf + packedBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pPackedBuf == NULL) {
|
if (pMessageBuf == NULL || pPackedBuf == NULL) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 Pack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 Pack supplied pointers are null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = (uint8_t *)pPackedBuf + packedBufLen;
|
||||||
|
|
||||||
// process the header
|
// process the header
|
||||||
if(!(push16(pMessageHeader->phy_id, &pWritePackedMessage, end) &&
|
if(!(push16(pMessageHeader->phy_id, &pWritePackedMessage, end) &&
|
||||||
push16(pMessageHeader->message_id, &pWritePackedMessage, end) &&
|
push16(pMessageHeader->message_id, &pWritePackedMessage, end) &&
|
||||||
@@ -7797,13 +7800,14 @@ static int check_nr_unpack_length(nfapi_nr_phy_msg_type_e msgId, uint32_t unpack
|
|||||||
int nfapi_p7_message_header_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p7_codec_config_t *config) {
|
int nfapi_p7_message_header_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUnpackedBuf, uint32_t unpackedBufLen, nfapi_p7_codec_config_t *config) {
|
||||||
nfapi_p7_message_header_t *pMessageHeader = pUnpackedBuf;
|
nfapi_p7_message_header_t *pMessageHeader = pUnpackedBuf;
|
||||||
uint8_t *pReadPackedMessage = pMessageBuf;
|
uint8_t *pReadPackedMessage = pMessageBuf;
|
||||||
uint8_t *end = pMessageBuf + messageBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 header unpack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 header unpack supplied pointers are null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = (uint8_t *)pMessageBuf + messageBufLen;
|
||||||
|
|
||||||
if (messageBufLen < NFAPI_P7_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p7_message_header_t)) {
|
if (messageBufLen < NFAPI_P7_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p7_message_header_t)) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 header unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 header unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
||||||
return -1;
|
return -1;
|
||||||
@@ -7825,13 +7829,14 @@ int nfapi_p7_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *pUn
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
nfapi_p7_message_header_t *pMessageHeader = (nfapi_p7_message_header_t *)pUnpackedBuf;
|
nfapi_p7_message_header_t *pMessageHeader = (nfapi_p7_message_header_t *)pUnpackedBuf;
|
||||||
uint8_t *pReadPackedMessage = pMessageBuf;
|
uint8_t *pReadPackedMessage = pMessageBuf;
|
||||||
uint8_t *end = pMessageBuf + messageBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
if (pMessageBuf == NULL || pUnpackedBuf == NULL) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 unpack supplied pointers are null\n");
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 unpack supplied pointers are null\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = (uint8_t *)pMessageBuf + messageBufLen;
|
||||||
|
|
||||||
if (messageBufLen < NFAPI_P7_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p7_message_header_t)) {
|
if (messageBufLen < NFAPI_P7_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p7_message_header_t)) {
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
||||||
return -1;
|
return -1;
|
||||||
@@ -8061,7 +8066,6 @@ int nfapi_nr_p7_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
nfapi_p7_message_header_t *pMessageHeader = (nfapi_p7_message_header_t*)pUnpackedBuf;
|
nfapi_p7_message_header_t *pMessageHeader = (nfapi_p7_message_header_t*)pUnpackedBuf;
|
||||||
uint8_t *pReadPackedMessage = pMessageBuf;
|
uint8_t *pReadPackedMessage = pMessageBuf;
|
||||||
uint8_t *end = pMessageBuf + messageBufLen;
|
|
||||||
|
|
||||||
if (pMessageBuf == NULL || pUnpackedBuf == NULL)
|
if (pMessageBuf == NULL || pUnpackedBuf == NULL)
|
||||||
{
|
{
|
||||||
@@ -8069,6 +8073,8 @@ int nfapi_nr_p7_message_unpack(void *pMessageBuf, uint32_t messageBufLen, void *
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t *end = (uint8_t*)pMessageBuf + messageBufLen;
|
||||||
|
|
||||||
if (messageBufLen < NFAPI_P7_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p7_message_header_t))
|
if (messageBufLen < NFAPI_P7_HEADER_LENGTH || unpackedBufLen < sizeof(nfapi_p7_message_header_t))
|
||||||
{
|
{
|
||||||
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
NFAPI_TRACE(NFAPI_TRACE_ERROR, "P7 unpack supplied message buffer is too small %d, %d\n", messageBufLen, unpackedBufLen);
|
||||||
|
|||||||
@@ -89,8 +89,7 @@ void rotate_cpx_vector(const c16_t *const x, const c16_t *const alpha, c16_t *y,
|
|||||||
// stores result in y
|
// stores result in y
|
||||||
// N is the number of complex numbers
|
// N is the number of complex numbers
|
||||||
// output_shift reduces the result of the multiplication by this number of bits
|
// output_shift reduces the result of the multiplication by this number of bits
|
||||||
//AssertFatal(N%8==0, "To be developped");
|
if ( __builtin_cpu_supports("avx2")) {
|
||||||
if ( (intptr_t)x%32 == 0 && !(intptr_t)y%32 == 0 && __builtin_cpu_supports("avx2")) {
|
|
||||||
// output is 32 bytes aligned, but not the input
|
// output is 32 bytes aligned, but not the input
|
||||||
|
|
||||||
const c16_t for_re={alpha->r, -alpha->i};
|
const c16_t for_re={alpha->r, -alpha->i};
|
||||||
@@ -132,13 +131,14 @@ void rotate_cpx_vector(const c16_t *const x, const c16_t *const alpha, c16_t *y,
|
|||||||
__m256i* xd= (__m256i*)x;
|
__m256i* xd= (__m256i*)x;
|
||||||
const __m256i *end=xd+N/8;
|
const __m256i *end=xd+N/8;
|
||||||
for( __m256i* yd = (__m256i *)y; xd<end ; yd++, xd++) {
|
for( __m256i* yd = (__m256i *)y; xd<end ; yd++, xd++) {
|
||||||
const __m256i xre = simde_mm256_srai_epi32(simde_mm256_madd_epi16(*xd,alpha_for_real),
|
const __m256i y256= _mm256_lddqu_si256(xd);
|
||||||
|
const __m256i xre = simde_mm256_srai_epi32(simde_mm256_madd_epi16(y256,alpha_for_real),
|
||||||
output_shift);
|
output_shift);
|
||||||
const __m256i xim = simde_mm256_srai_epi32(simde_mm256_madd_epi16(*xd,alpha_for_im),
|
const __m256i xim = simde_mm256_srai_epi32(simde_mm256_madd_epi16(y256,alpha_for_im),
|
||||||
output_shift);
|
output_shift);
|
||||||
// a bit faster than unpacklo+unpackhi+packs
|
// a bit faster than unpacklo+unpackhi+packs
|
||||||
const __m256i tmp=simde_mm256_packs_epi32(xre,xim);
|
const __m256i tmp=simde_mm256_packs_epi32(xre,xim);
|
||||||
*yd=simde_mm256_shuffle_epi8(tmp,perm_mask);
|
_mm256_storeu_si256(yd,simde_mm256_shuffle_epi8(tmp,perm_mask));
|
||||||
}
|
}
|
||||||
c16_t* alpha16=(c16_t*) alpha, *yLast;
|
c16_t* alpha16=(c16_t*) alpha, *yLast;
|
||||||
yLast=((c16_t*)y)+(N/8)*8;
|
yLast=((c16_t*)y)+(N/8)*8;
|
||||||
|
|||||||
Reference in New Issue
Block a user