15 #include <ti/drivers/net/wifi/simplelink.h>
16 #include <ti/drivers/net/wifi/eventreg.h>
20 typedef void (*_pSlDeviceFatalErrorEvtHdlr_t)(
SlDeviceFatal_t *pSlFatalErrorEvent);
21 typedef void (*_pSlDeviceGeneralEvtHdlr_t)(
SlDeviceEvent_t *pSlDeviceEvent);
27 typedef void (*_pSlNetAppRequestMemFree)(_u8 *buffer);
31 typedef _i32 (*_pSlPropogationDeviceFatalErrorEvtHdlr_t)(
SlDeviceFatal_t *pSlFatalErrorEvent);
32 typedef _i32 (*_pSlPropogationDeviceGeneralEvtHdlr_t)(
SlDeviceEvent_t *pSlDeviceEvent);
33 typedef _i32 (*_pSlPropogationWlanEvtHdlr)(
SlWlanEvent_t* pSlWlanEvent);
34 typedef _i32 (*_pSlPropogationNetAppEvtHdlr)(
SlNetAppEvent_t* pSlNetAppEvent);
35 typedef _i32 (*_pSlPropogationSockEvtHdlr)(
SlSockEvent_t* pSlSockEvent);
38 typedef _i32 (*_pSlPropogationNetAppRequestMemFree)(_u8 *buffer);
39 typedef _i32 (*_pSlPropogationSocketTriggerEventHandler)(
SlSockTriggerEvent_t* pSlSockTriggerEvent);
41 #ifdef SL_RUNTIME_EVENT_REGISTERATION
43 void* g_UserEvents[SL_NUM_OF_EVENT_TYPES] = {0};
49 _i32 _SlIsEventRegistered(SlEventHandler_e EventHandlerType)
51 #ifdef SL_RUNTIME_EVENT_REGISTERATION
52 if( (NULL != g_LibsEvents[EventHandlerType]) || (NULL != g_UserEvents[EventHandlerType]) )
57 if(SL_EVENT_HDL_MEM_FREE == EventHandlerType)
59 #ifdef slcb_NetAppRequestMemFree
63 if(SL_EVENT_HDL_SOCKET_TRIGGER == EventHandlerType)
65 #ifdef slcb_SocketTriggerEventHandler
73 #ifdef SL_RUNTIME_EVENT_REGISTERATION
77 g_UserEvents[EventHandlerType] = EventHandler;
81 _i32 sl_RegisterLibsEventHandler(SlEventHandler_e EventHandlerType ,
SlEventsListNode_t* EventHandlerNode)
83 EventHandlerNode->next = NULL;
85 if(g_LibsEvents[EventHandlerType] == NULL)
87 g_LibsEvents[EventHandlerType] = EventHandlerNode;
92 while(currentNode->next != NULL)
94 currentNode = currentNode->next;
97 currentNode->next = EventHandlerNode;
102 _i32 sl_UnregisterLibsEventHandler(SlEventHandler_e EventHandlerType ,
SlEventsListNode_t* EventHandlerNode)
107 while(currentNode != NULL)
109 if(EventHandlerNode == currentNode)
113 g_LibsEvents[EventHandlerType] = g_LibsEvents[EventHandlerType]->next;
117 lastNode->next = currentNode->next;
124 lastNode = lastNode->next;
127 currentNode = currentNode->next;
130 return SL_RET_CODE_EVENT_LINK_NOT_FOUND;
138 while(currentNode != NULL)
140 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationDeviceFatalErrorEvtHdlr_t)(currentNode->event))(pSlFatalErrorEvent))
144 currentNode = currentNode->next;
147 if (NULL != g_UserEvents[SL_EVENT_HDL_FATAL_ERROR])
149 ((_pSlDeviceFatalErrorEvtHdlr_t)g_UserEvents[SL_EVENT_HDL_FATAL_ERROR])(pSlFatalErrorEvent);
152 #ifdef slcb_DeviceFatalErrorEvtHdlr
164 while(currentNode != NULL)
166 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationDeviceGeneralEvtHdlr_t)(currentNode->event))(pSlDeviceEvent))
170 currentNode = currentNode->next;
173 if (NULL != g_UserEvents[SL_EVENT_HDL_DEVICE_GENERAL])
175 ((_pSlDeviceGeneralEvtHdlr_t)g_UserEvents[SL_EVENT_HDL_DEVICE_GENERAL])(pSlDeviceEvent);
177 #ifdef slcb_DeviceGeneralEvtHdlr
189 while(currentNode != NULL)
191 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationWlanEvtHdlr)(currentNode->event))(pSlWlanEvent))
195 currentNode = currentNode->next;
198 if (NULL != g_UserEvents[SL_EVENT_HDL_WLAN])
200 ((_pSlWlanEvtHdlr)g_UserEvents[SL_EVENT_HDL_WLAN])(pSlWlanEvent);
202 #ifdef slcb_WlanEvtHdlr
214 while(currentNode != NULL)
216 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationNetAppEvtHdlr)(currentNode->event))(pSlNetAppEvent))
220 currentNode = currentNode->next;
222 if (NULL != g_UserEvents[SL_EVENT_HDL_NETAPP])
224 ((_pSlNetAppEvtHdlr)g_UserEvents[SL_EVENT_HDL_NETAPP])(pSlNetAppEvent);
226 #ifdef slcb_NetAppEvtHdlr
238 while(currentNode != NULL)
240 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationSockEvtHdlr)(currentNode->event))(pSlSockEvent))
244 currentNode = currentNode->next;
246 if (NULL != g_UserEvents[SL_EVENT_HDL_SOCKET])
248 ((_pSlSockEvtHdlr)g_UserEvents[SL_EVENT_HDL_SOCKET])(pSlSockEvent);
251 #ifdef slcb_SockEvtHdlr
263 while(currentNode != NULL)
265 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationNetAppHttpServerHdlr)(currentNode->event))(pSlHttpServerEvent,pSlHttpServerResponse))
269 currentNode = currentNode->next;
271 if (NULL != g_UserEvents[SL_EVENT_HDL_HTTP_SERVER])
273 ((_pSlNetAppHttpServerHdlr)g_UserEvents[SL_EVENT_HDL_HTTP_SERVER])(pSlHttpServerEvent,pSlHttpServerResponse);
275 #ifdef slcb_NetAppHttpServerHdlr
288 while(currentNode != NULL)
290 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationNetAppRequestHdlr)(currentNode->event))(pNetAppRequest,pNetAppResponse))
294 currentNode = currentNode->next;
296 if (NULL != g_UserEvents[SL_EVENT_HDL_NETAPP_REQUEST])
298 ((_pSlNetAppRequestHdlr)g_UserEvents[SL_EVENT_HDL_NETAPP_REQUEST])(pNetAppRequest,pNetAppResponse);
300 #ifdef slcb_NetAppRequestHdlr
310 void _SlNetAppRequestMemFree (_u8 *buffer)
313 while(currentNode != NULL)
315 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationNetAppRequestMemFree)(currentNode->event))(buffer))
319 currentNode = currentNode->next;
321 if (NULL != g_UserEvents[SL_EVENT_HDL_MEM_FREE])
323 ((_pSlNetAppRequestMemFree)g_UserEvents[SL_EVENT_HDL_MEM_FREE])(buffer);
325 #ifdef slcb_NetAppRequestMemFree
338 while(currentNode != NULL)
340 if(EVENT_PROPAGATION_BLOCK == ((_pSlPropogationSocketTriggerEventHandler)(currentNode->event))(pSlSockTriggerEvent))
344 currentNode = currentNode->next;
346 if (NULL != g_UserEvents[SL_EVENT_HDL_SOCKET_TRIGGER])
348 ((_pSlSocketTriggerEventHandler)g_UserEvents[SL_EVENT_HDL_SOCKET_TRIGGER])(pSlSockTriggerEvent);
350 #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.