41 #include <ti/drivers/net/wifi/simplelink.h> 42 #include <ti/drivers/net/wifi/source/protocol.h> 43 #include <ti/drivers/net/wifi/source/driver.h> 44 #include <ti/drivers/net/wifi/source/flowcont.h> 65 #if _SL_INCLUDE_FUNC(sl_NetUtilGet) 69 SL_OPCODE_NETUTIL_GET,
74 _i16
sl_NetUtilGet(
const _u16 Option,
const _u32 ObjID, _u8 *pValues, _u16 *pValueLen)
76 SlNetUtilMsgGet_u Msg;
79 _SlDrvResetCmdExt(&CmdExt);
80 CmdExt.RxPayloadLen = *pValueLen;
81 CmdExt.pRxPayload = (_u8 *)pValues;
83 Msg.Cmd.Option = Option;
84 Msg.Cmd.ObjId = ObjID;
85 Msg.Cmd.ValueLen = *pValueLen;
87 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlNetUtilGetCmdCtrl, &Msg, &CmdExt));
89 if(CmdExt.RxPayloadLen < CmdExt.ActualRxPayloadLen)
91 *pValueLen = CmdExt.RxPayloadLen;
96 *pValueLen = CmdExt.ActualRxPayloadLen;
99 return (_i16)Msg.Rsp.Status;
108 void _SlNetUtilHandleAsync_Cmd(
void *pVoidBuf)
113 SL_DRV_PROTECTION_OBJ_LOCK_FOREVER();
115 VERIFY_SOCKET_CB(NULL != g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs);
117 pOutData = (
_SlNetUtilCmdData_t*)g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs;
119 pOutData->Status = pMsgArgs->Status;
121 if(SL_RET_CODE_OK == pMsgArgs->Status)
123 if (*(pOutData->pOutputLen) < pMsgArgs->OutputLen)
125 pOutData->Status = SL_ESMALLBUF;
129 *(pOutData->pOutputLen) = pMsgArgs->OutputLen;
131 if(*(pOutData->pOutputLen) > 0)
134 sl_Memcpy(pOutData->pOutputValues, (
char*)pMsgArgs +
sizeof(
SlNetUtilCmdRsp_t), *(pOutData->pOutputLen));
139 _SlDrvSyncObjSignal(&g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].SyncObj);
140 _SlDrvProtectionObjUnLock();
154 #if _SL_INCLUDE_FUNC(sl_NetUtilCmd) 157 SL_OPCODE_NETUTIL_COMMAND,
162 _i16
sl_NetUtilCmd(
const _u16 Cmd,
const _u8 *pAttrib,
const _u16 AttribLen,
163 const _u8 *pInputValues,
const _u16 InputLen,
164 _u8 *pOutputValues, _u16 *pOutputLen)
167 SlNetUtilCmdMsg_u Msg;
168 _i16 ObjIdx = MAX_CONCURRENT_ACTIONS;
174 Msg.Cmd.AttribLen = AttribLen;
175 Msg.Cmd.InputLen = InputLen;
176 Msg.Cmd.OutputLen = *pOutputLen;
178 _SlDrvResetCmdExt(&CmdExt);
183 CmdExt.pTxPayload1 = (_u8*)pAttrib;
184 CmdExt.TxPayload1Len = AttribLen;
189 CmdExt.pTxPayload2 = (_u8*)pInputValues;
190 CmdExt.TxPayload2Len = InputLen;
194 OutData.pOutputValues = pOutputValues;
195 OutData.pOutputLen = pOutputLen;
197 ObjIdx = _SlDrvProtectAsyncRespSetting((_u8*)&OutData, NETUTIL_CMD_ID, SL_MAX_SOCKETS);
198 if (MAX_CONCURRENT_ACTIONS == ObjIdx)
200 return SL_POOL_IS_EMPTY;
204 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlNetUtilCmdCtrl, &Msg, &CmdExt));
206 if(SL_OS_RET_CODE_OK == (_i16)Msg.Rsp.status)
209 RetVal = _SlDrvWaitForInternalAsyncEvent(ObjIdx, 0, 0);
214 RetVal = OutData.Status;
219 RetVal = Msg.Rsp.status;
222 _SlDrvReleasePoolObj((_u8)ObjIdx);
_i16 sl_NetUtilGet(const _u16 Option, const _u32 ObjID, _u8 *pValues, _u16 *pValueLen)
Function for getting configurations of utilities.
_i16 sl_NetUtilCmd(const _u16 Cmd, const _u8 *pAttrib, const _u16 AttribLen, const _u8 *pInputValues, const _u16 InputLen, _u8 *pOutputValues, _u16 *pOutputLen)
Function for performing utilities-related commands.