1981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* 2981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * context.h 3981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 4981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. 5981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * All rights reserved. 6981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 7981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Redistribution and use in source and binary forms, with or without 8981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * modification, are permitted provided that the following conditions 9981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * are met: 10981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 11981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * * Redistributions of source code must retain the above copyright 12981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * notice, this list of conditions and the following disclaimer. 13981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * * Redistributions in binary form must reproduce the above copyright 14981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * notice, this list of conditions and the following disclaimer in 15981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * the documentation and/or other materials provided with the 16981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * distribution. 17981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * * Neither the name Texas Instruments nor the names of its 18981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * contributors may be used to endorse or promote products derived 19981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * from this software without specific prior written permission. 20981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 21981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 33981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 34981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 35981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 36981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \file context.h 37981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief context module header file. 38981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 39981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \see context.c 40981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */ 41981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 42981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifndef _CONTEXT_H_ 43981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define _CONTEXT_H_ 44981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 45981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 46981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 47981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* The callback function type for context clients */ 48981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef void (*TContextCbFunc)(TI_HANDLE hCbHndl); 49981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 50981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* The context init parameters */ 51981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct 52981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 53981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt /* Indicate if the driver should switch to its own context or not before handling events */ 54981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_BOOL bContextSwitchRequired; 55981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} TContextInitParams; 56981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 57981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 58981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 59981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* External Functions Prototypes */ 60981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* ============================= */ 61981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_HANDLE context_Create (TI_HANDLE hOs); 62981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS context_Destroy (TI_HANDLE hContext); 63981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_Init (TI_HANDLE hContext, TI_HANDLE hOs, TI_HANDLE hReport); 64981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS context_SetDefaults (TI_HANDLE hContext, TContextInitParams *pContextInitParams); 65981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 66981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_UINT32 context_RegisterClient (TI_HANDLE hContext, 67981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TContextCbFunc fCbFunc, 68981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_HANDLE hCbHndl, 69981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_BOOL bEnable, 70981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt char *sName, 71981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt TI_UINT32 uNameSize); 72981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 73981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_RequestSchedule (TI_HANDLE hContext, TI_UINT32 uClientId); 74981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_DriverTask (TI_HANDLE hContext); 75981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_EnableClient (TI_HANDLE hContext, TI_UINT32 uClientId); 76981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_DisableClient (TI_HANDLE hContext, TI_UINT32 uClientId); 77981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 78981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_EnterCriticalSection (TI_HANDLE hContext); 79981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_LeaveCriticalSection (TI_HANDLE hContext); 80981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_DisableClient (TI_HANDLE hContext, TI_UINT32 uClientId); 81981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_EnableClient (TI_HANDLE hContext, TI_UINT32 uClientId); 82981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef TI_DBG 83981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid context_Print (TI_HANDLE hContext); 84981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif /* TI_DBG */ 85981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 86981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 87981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 88981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif /* _CONTEXT_H_ */ 89981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 90981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt 91