20 #include <ti/drivers/net/wifi/simplelink.h>
21 #include <ti/drivers/net/wifi/source/protocol.h>
22 #include <ti/drivers/net/wifi/source/driver.h>
23 #include <ti/drivers/net/wifi/source/flowcont.h>
52 #if _SL_INCLUDE_FUNC(sl_NetUtilGet)
56 SL_OPCODE_NETUTIL_GET,
61 _i16
sl_NetUtilGet(
const _u16 Option,
const _u32 ObjID, _u8 *pValues, _u16 *pValueLen)
63 SlNetUtilMsgGet_u Msg;
66 _SlDrvResetCmdExt(&CmdExt);
67 CmdExt.RxPayloadLen = *pValueLen;
68 CmdExt.pRxPayload = (_u8 *)pValues;
70 Msg.Cmd.Option = Option;
71 Msg.Cmd.ObjId = ObjID;
72 Msg.Cmd.ValueLen = *pValueLen;
74 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlNetUtilGetCmdCtrl, &Msg, &CmdExt));
76 if(CmdExt.RxPayloadLen < CmdExt.ActualRxPayloadLen)
78 *pValueLen = CmdExt.RxPayloadLen;
83 *pValueLen = CmdExt.ActualRxPayloadLen;
86 return (_i16)Msg.Rsp.Status;
96 void _SlNetUtilHandleAsync_Cmd(
void *pVoidBuf)
98 _SlNetUtilCmdData_t *pOutData;
101 SL_DRV_PROTECTION_OBJ_LOCK_FOREVER();
103 VERIFY_SOCKET_CB(NULL != g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs);
105 pOutData = (_SlNetUtilCmdData_t*)g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].pRespArgs;
107 pOutData->Status = pMsgArgs->Status;
109 if(SL_RET_CODE_OK == pMsgArgs->Status)
111 if (*(pOutData->pOutputLen) < pMsgArgs->OutputLen)
113 pOutData->Status = SL_ESMALLBUF;
117 *(pOutData->pOutputLen) = pMsgArgs->OutputLen;
119 if(*(pOutData->pOutputLen) > 0)
122 sl_Memcpy(pOutData->pOutputValues, (
char*)pMsgArgs +
sizeof(
SlNetUtilCmdRsp_t), *(pOutData->pOutputLen));
127 _SlDrvSyncObjSignal(&g_pCB->ObjPool[g_pCB->FunctionParams.AsyncExt.ActionIndex].SyncObj);
128 _SlDrvProtectionObjUnLock();
142 #if _SL_INCLUDE_FUNC(sl_NetUtilCmd)
145 SL_OPCODE_NETUTIL_COMMAND,
151 _i16
sl_NetUtilCmd(
const _u16 Cmd,
const _u8 *pAttrib,
const _u16 AttribLen,
152 const _u8 *pInputValues,
const _u16 InputLen,
153 _u8 *pOutputValues, _u16 *pOutputLen)
156 SlNetUtilCmdMsg_u Msg;
157 _i16 ObjIdx = MAX_CONCURRENT_ACTIONS;
159 _SlNetUtilCmdData_t OutData;
164 Msg.Cmd.AttribLen = AttribLen;
165 Msg.Cmd.InputLen = InputLen;
166 Msg.Cmd.OutputLen = *pOutputLen;
168 _SlDrvResetCmdExt(&CmdExt);
172 CmdExt.pTxPayload1 = (_u8*)pAttrib;
173 CmdExt.TxPayload1Len = AttribLen;
178 CmdExt.pTxPayload2 = (_u8*)pInputValues;
179 CmdExt.TxPayload2Len = InputLen;
183 OutData.pOutputValues = pOutputValues;
184 OutData.pOutputLen = pOutputLen;
186 ObjIdx = _SlDrvProtectAsyncRespSetting((_u8*)&OutData, NETUTIL_CMD_ID, SL_MAX_SOCKETS);
187 if (MAX_CONCURRENT_ACTIONS == ObjIdx)
189 return SL_POOL_IS_EMPTY;
193 VERIFY_RET_OK(_SlDrvCmdOp((
_SlCmdCtrl_t *)&_SlNetUtilCmdCtrl, &Msg, &CmdExt));
195 if(SL_OS_RET_CODE_OK == (_i16)Msg.Rsp.status)
198 SL_DRV_SYNC_OBJ_WAIT_FOREVER(&g_pCB->ObjPool[ObjIdx].SyncObj);
201 RetVal = OutData.Status;
206 RetVal = Msg.Rsp.status;
208 _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.