40 #include <ti/drivers/net/wifi/simplelink.h> 41 #include <ti/drivers/net/wifi/eventreg.h> 44 typedef void (*_pSlDeviceFatalErrorEvtHdlr_t)(
SlDeviceFatal_t *pSlFatalErrorEvent);
45 typedef void (*_pSlDeviceGeneralEvtHdlr_t)(
SlDeviceEvent_t *pSlDeviceEvent);
51 typedef void (*_pSlNetAppRequestMemFree)(_u8 *buffer);
55 typedef _i32 (*_pSlPropogationDeviceFatalErrorEvtHdlr_t)(
SlDeviceFatal_t *pSlFatalErrorEvent);
56 typedef _i32 (*_pSlPropogationDeviceGeneralEvtHdlr_t)(
SlDeviceEvent_t *pSlDeviceEvent);
57 typedef _i32 (*_pSlPropogationWlanEvtHdlr)(
SlWlanEvent_t* pSlWlanEvent);
58 typedef _i32 (*_pSlPropogationNetAppEvtHdlr)(
SlNetAppEvent_t* pSlNetAppEvent);
59 typedef _i32 (*_pSlPropogationSockEvtHdlr)(
SlSockEvent_t* pSlSockEvent);
62 typedef _i32 (*_pSlPropogationNetAppRequestMemFree)(_u8 *buffer);
63 typedef _i32 (*_pSlPropogationSocketTriggerEventHandler)(
SlSockTriggerEvent_t* pSlSockTriggerEvent);
65 #ifdef SL_RUNTIME_EVENT_REGISTERATION 67 void* g_UserEvents[SL_NUM_OF_EVENT_TYPES] = {0};
73 _i32 _SlIsEventRegistered(SlEventHandler_e EventHandlerType)
75 #ifdef SL_RUNTIME_EVENT_REGISTERATION 76 if( (NULL != g_LibsEvents[EventHandlerType]) || (NULL != g_UserEvents[EventHandlerType]) )
81 if(SL_EVENT_HDL_MEM_FREE == EventHandlerType)
83 #ifdef slcb_NetAppRequestMemFree 87 if(SL_EVENT_HDL_SOCKET_TRIGGER == EventHandlerType)
89 #ifdef slcb_SocketTriggerEventHandler 97 #ifdef SL_RUNTIME_EVENT_REGISTERATION 101 g_UserEvents[EventHandlerType] = EventHandler;
105 _i32 sl_RegisterLibsEventHandler(SlEventHandler_e EventHandlerType ,
SlEventsListNode_t* EventHandlerNode)
107 EventHandlerNode->next = NULL;
109 if(g_LibsEvents[EventHandlerType] == NULL)
111 g_LibsEvents[EventHandlerType] = EventHandlerNode;
116 while(currentNode->next != NULL)
118 currentNode = currentNode->next;
121 currentNode->next = EventHandlerNode;
126 _i32 sl_UnregisterLibsEventHandler(SlEventHandler_e EventHandlerType ,
SlEventsListNode_t* EventHandlerNode)
131 while(currentNode != NULL)
133 if(EventHandlerNode == currentNode)
137 g_LibsEvents[EventHandlerType] = g_LibsEvents[EventHandlerType]->next;
141 lastNode->next = currentNode->next;
148 lastNode = lastNode->next;
151 currentNode = currentNode->next;
154 return SL_RET_CODE_EVENT_LINK_NOT_FOUND;
162 while(currentNode != NULL)
164 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationDeviceFatalErrorEvtHdlr_t)(currentNode->event))(pSlFatalErrorEvent))
168 currentNode = currentNode->next;
171 if (NULL != g_UserEvents[SL_EVENT_HDL_FATAL_ERROR])
173 ((_pSlDeviceFatalErrorEvtHdlr_t)g_UserEvents[SL_EVENT_HDL_FATAL_ERROR])(pSlFatalErrorEvent);
176 #ifdef slcb_DeviceFatalErrorEvtHdlr 188 while(currentNode != NULL)
190 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationDeviceGeneralEvtHdlr_t)(currentNode->event))(pSlDeviceEvent))
194 currentNode = currentNode->next;
197 if (NULL != g_UserEvents[SL_EVENT_HDL_DEVICE_GENERAL])
199 ((_pSlDeviceGeneralEvtHdlr_t)g_UserEvents[SL_EVENT_HDL_DEVICE_GENERAL])(pSlDeviceEvent);
201 #ifdef slcb_DeviceGeneralEvtHdlr 213 while(currentNode != NULL)
215 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationWlanEvtHdlr)(currentNode->event))(pSlWlanEvent))
219 currentNode = currentNode->next;
222 if (NULL != g_UserEvents[SL_EVENT_HDL_WLAN])
224 ((_pSlWlanEvtHdlr)g_UserEvents[SL_EVENT_HDL_WLAN])(pSlWlanEvent);
226 #ifdef slcb_WlanEvtHdlr 238 while(currentNode != NULL)
240 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationNetAppEvtHdlr)(currentNode->event))(pSlNetAppEvent))
244 currentNode = currentNode->next;
246 if (NULL != g_UserEvents[SL_EVENT_HDL_NETAPP])
248 ((_pSlNetAppEvtHdlr)g_UserEvents[SL_EVENT_HDL_NETAPP])(pSlNetAppEvent);
250 #ifdef slcb_NetAppEvtHdlr 262 while(currentNode != NULL)
264 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationSockEvtHdlr)(currentNode->event))(pSlSockEvent))
268 currentNode = currentNode->next;
270 if (NULL != g_UserEvents[SL_EVENT_HDL_SOCKET])
272 ((_pSlSockEvtHdlr)g_UserEvents[SL_EVENT_HDL_SOCKET])(pSlSockEvent);
275 #ifdef slcb_SockEvtHdlr 287 while(currentNode != NULL)
289 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationNetAppHttpServerHdlr)(currentNode->event))(pSlHttpServerEvent,pSlHttpServerResponse))
293 currentNode = currentNode->next;
295 if (NULL != g_UserEvents[SL_EVENT_HDL_HTTP_SERVER])
297 ((_pSlNetAppHttpServerHdlr)g_UserEvents[SL_EVENT_HDL_HTTP_SERVER])(pSlHttpServerEvent,pSlHttpServerResponse);
299 #ifdef slcb_NetAppHttpServerHdlr 312 while(currentNode != NULL)
314 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationNetAppRequestHdlr)(currentNode->event))(pNetAppRequest,pNetAppResponse))
318 currentNode = currentNode->next;
320 if (NULL != g_UserEvents[SL_EVENT_HDL_NETAPP_REQUEST])
322 ((_pSlNetAppRequestHdlr)g_UserEvents[SL_EVENT_HDL_NETAPP_REQUEST])(pNetAppRequest,pNetAppResponse);
324 #ifdef slcb_NetAppRequestHdlr 334 void _SlNetAppRequestMemFree (_u8 *buffer)
337 while(currentNode != NULL)
339 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationNetAppRequestMemFree)(currentNode->event))(buffer))
343 currentNode = currentNode->next;
345 if (NULL != g_UserEvents[SL_EVENT_HDL_MEM_FREE])
347 ((_pSlNetAppRequestMemFree)g_UserEvents[SL_EVENT_HDL_MEM_FREE])(buffer);
349 #ifdef slcb_NetAppRequestMemFree 361 while(currentNode != NULL)
363 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationSocketTriggerEventHandler)(currentNode->event))(pSlSockTriggerEvent))
367 currentNode = currentNode->next;
369 if (NULL != g_UserEvents[SL_EVENT_HDL_SOCKET_TRIGGER])
371 ((_pSlSocketTriggerEventHandler)g_UserEvents[SL_EVENT_HDL_SOCKET_TRIGGER])(pSlSockTriggerEvent);
373 #ifdef slcb_SocketTriggerEventHandler void slcb_NetAppRequestMemFree(_u8 *buffer)
A handler for freeing the memory of the NetApp response.
void slcb_NetAppRequestHdlr(SlNetAppRequest_t *pNetAppRequest, SlNetAppResponse_t *pNetAppResponse)
General netapp async event.
void slcb_SocketTriggerEventHandler(SlSockTriggerEvent_t *pSlSockTriggerEvent)
Socket trigger routine. This routine will notify the application that a netwrok activity has been com...
void slcb_DeviceFatalErrorEvtHdlr(SlDeviceFatal_t *pSlFatalErrorEvent)
Fatal Error event for inspecting fatal error.
void slcb_SockEvtHdlr(SlSockEvent_t *pSlSockEvent)
Socket Async event handler.
void slcb_WlanEvtHdlr(SlWlanEvent_t *pSlWlanEvent)
WLAN Async event handler.
void slcb_NetAppEvtHdlr(SlNetAppEvent_t *pSlNetAppEvent)
NETAPP Async event handler.
void slcb_NetAppHttpServerHdlr(SlNetAppHttpServerEvent_t *pSlHttpServerEvent, SlNetAppHttpServerResponse_t *pSlHttpServerResponse)
HTTP server async event.
_i32 sl_RegisterEventHandler(SlEventHandler_e EventHandlerType, void *EventHandler)
register events in runtime
void slcb_DeviceGeneralEvtHdlr(SlDeviceEvent_t *pSlDeviceEvent)
General async event for inspecting general events.