57 #include <ti/control/mmwavelink/include/rl_datatypes.h> 58 #include <ti/control/mmwavelink/include/rl_controller.h> 59 #include <ti/control/mmwavelink/include/rl_driver.h> 60 #include <ti/control/mmwavelink/include/rl_trace.h> 87 rlReturnVal_t rlAppendSubBlock(rlUInt8_t rhcpPayload[],
88 rlUInt16_t sblkId, rlUInt16_t sbLen, rlUInt8_t* sbData)
92 if ((RL_NULL_PTR == rhcpPayload) || (sbLen > RL_CMD_PL_LEN_MAX))
95 retVal = RL_RET_CODE_FATAL_ERROR;
106 *((rlUInt16_t*)(rhcpPayload + RL_SBC_ID_INDEX)) = sblkId;
115 *((rlUInt16_t*)(rhcpPayload + RL_SBC_LEN_INDEX)) = sbLen + \
116 RL_SBC_ID_SIZE + RL_SBC_LEN_SIZE;
119 if ((sbLen > 0U) && (RL_NULL_PTR != sbData))
121 (void)memcpy(&rhcpPayload[RL_SBC_PL_INDEX], sbData, sbLen);
122 retVal = RL_RET_CODE_OK;
127 if ((sbLen == 0U) && (RL_NULL_PTR == sbData))
129 retVal = RL_RET_CODE_OK;
133 retVal = RL_RET_CODE_INVALID_INPUT;
152 rlReturnVal_t rlAppendDummy(rlUInt8_t rhcpPayload[], rlUInt8_t dummyLen)
156 RL_LOGV_ARG0(
"rlAppendDummy starts...\n");
159 for (indx = 0U; indx < dummyLen; indx++)
162 rhcpPayload[indx] = RL_PROTOCOL_DUMMY_BYTE;
164 RL_LOGV_ARG0(
"rlAppendDummy ends...\n");
166 return RL_RET_CODE_OK;
184 rlReturnVal_t rlGetSubBlock(rlUInt8_t rhcpPayload[],
185 rlUInt16_t* sbcId, rlUInt16_t* sbLen, rlUInt8_t* sbData)
187 rlReturnVal_t retVal;
189 RL_LOGV_ARG0(
"rlGetSubBlock starts...\n");
192 if ((RL_NULL_PTR == rhcpPayload) || (RL_NULL_PTR == sbcId) ||\
193 (RL_NULL_PTR == sbLen) || (RL_NULL_PTR == sbData))
196 retVal = RL_RET_CODE_FATAL_ERROR;
207 *sbcId = *((rlUInt16_t*)(rhcpPayload + RL_SBC_ID_INDEX));
216 *sbLen = *((rlUInt16_t*)(rhcpPayload + RL_SBC_LEN_INDEX));
218 if ((*sbLen > RL_CMD_PL_LEN_MAX))
221 retVal = RL_RET_CODE_FATAL_ERROR;
226 if ((*sbLen > 0U) && (RL_NULL_PTR != sbData))
229 (void)memcpy(sbData, &rhcpPayload[RL_SBC_PL_INDEX], (*sbLen -
230 (RL_SBC_ID_SIZE + RL_SBC_LEN_SIZE)));
231 RL_LOGD_ARG0(
"rhcpPayload is copied\n");
233 retVal = RL_RET_CODE_OK;
236 RL_LOGV_ARG0(
"rlGetSubBlock ends...\n");
252 void rlGetSubBlockId(
const rlUInt8_t rhcpPayload[], rlUInt16_t* sbcId)
261 *sbcId = *((rlUInt16_t*)(rhcpPayload + RL_SBC_ID_INDEX));
262 RL_LOGD_ARG0(
"DEBUG: Parsed sub block ID\n");
277 void rlGetSubBlockLen(
const rlUInt8_t rhcpPayload[], rlUInt16_t* sbcLen)
286 *sbcLen = *((rlUInt16_t*)(rhcpPayload + RL_SBC_LEN_INDEX));
287 RL_LOGD_ARG0(
"DEBUG: Parsed sub block len\n");