1/**************************************************************************** 2**+-----------------------------------------------------------------------+** 3**| |** 4**| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved. |** 5**| All rights reserved. |** 6**| |** 7**| Redistribution and use in source and binary forms, with or without |** 8**| modification, are permitted provided that the following conditions |** 9**| are met: |** 10**| |** 11**| * Redistributions of source code must retain the above copyright |** 12**| notice, this list of conditions and the following disclaimer. |** 13**| * Redistributions in binary form must reproduce the above copyright |** 14**| notice, this list of conditions and the following disclaimer in |** 15**| the documentation and/or other materials provided with the |** 16**| distribution. |** 17**| * Neither the name Texas Instruments nor the names of its |** 18**| contributors may be used to endorse or promote products derived |** 19**| from this software without specific prior written permission. |** 20**| |** 21**| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |** 22**| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |** 23**| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |** 24**| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |** 25**| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |** 26**| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |** 27**| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |** 28**| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |** 29**| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |** 30**| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |** 31**| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |** 32**| |** 33**+-----------------------------------------------------------------------+** 34****************************************************************************/ 35 36#ifndef _EVHANDLER_H_ 37#define _EVHANDLER_H_ 38 39 40#include "TI_IPC_Api.h" 41 42 43typedef struct 44{ 45 IPC_EV_DATA Array[MAX_SEND_EVENTS]; 46 UINT32 TailIndex; /* Points to the next free node*/ 47 UINT32 HeadIndex; /* Points to the first occupied node*/ 48 UINT32 Counter; 49}EV_CYCL_ARRAY, *PEV_CYCL_ARRAY; 50 51typedef struct _EV_HANDLER_STRUCT_T { 52 53 TI_HANDLE hOs; 54 IPC_EVENT_PARAMS RegistrationArray[IPC_EVENT_MAX][MAX_REGISTERED_MODULES]; 55 EV_CYCL_ARRAY SendEventArray; 56 UINT32 LastUMEventType; 57 58}EV_HANDLER_STRUCT_T, *PEV_HANDLER_STRUCT_T; 59 60/* Upper Interface*/ 61TI_HANDLE EvHandlerInit (TI_HANDLE hOs); 62 63UINT32 EvHandlerUnload (TI_HANDLE hEvHandler); 64 65UINT32 EvHandlerRegisterEvent (TI_HANDLE hEvHandler, PUCHAR pData, ULONG Length); 66 67UINT32 EvHandlerUnRegisterEvent (TI_HANDLE hEvHandler, TI_HANDLE uEventID); 68 69UINT32 EvHandlerMaskEvent (TI_HANDLE hEvHandler, UINT32 uEventID); 70 71UINT32 EvHandlerUnMaskEvent (TI_HANDLE hEvHandler, UINT32 uEventID); 72 73UINT32 EvHandlerGetEventData (TI_HANDLE hEvHandler, PUCHAR pData, ULONG* pLength); 74 75/* Bottom Interface*/ 76 77UINT32 EvHandlerSendEvent (TI_HANDLE hEvHandler, UINT32 EvType, UINT8* pData, UINT32 Length); 78 79 80#endif 81