00001 /* 00002 * Copyright (c) 2011, Texas Instruments Incorporated 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions 00007 * are met: 00008 * 00009 * * Redistributions of source code must retain the above copyright 00010 * notice, this list of conditions and the following disclaimer. 00011 * 00012 * * Redistributions in binary form must reproduce the above copyright 00013 * notice, this list of conditions and the following disclaimer in the 00014 * documentation and/or other materials provided with the distribution. 00015 * 00016 * * Neither the name of Texas Instruments Incorporated nor the names of 00017 * its contributors may be used to endorse or promote products derived 00018 * from this software without specific prior written permission. 00019 * 00020 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00021 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 00022 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 00023 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 00024 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00025 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00026 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 00027 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00028 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00029 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 00030 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00031 * 00032 */ 00053 #ifndef ti_sdo_fc_hdintc_HDINTC_ 00054 #define ti_sdo_fc_hdintc_HDINTC_ 00055 00058 00059 00060 #ifdef __cplusplus 00061 extern "C" { 00062 #endif 00063 00064 #include <ti/xdais/ialg.h> 00065 #include <ti/xdais/xdas.h> 00066 00067 #define HDINTC_GTNAME "ti.sdo.fc.hdintc" 00074 #define HDINTC_SOK 0 00075 #define HDINTC_EOUTOFMEMORY -1 00077 #define HDINTC_EFAIL -2 00079 00080 00089 typedef struct HDINTC_Params { 00090 00096 int interruptVectorId_0; 00097 00103 int interruptVectorId_1; 00104 00113 int hdvicpInterruptEventNo_0; 00114 00122 int hdvicpInterruptEventNo_1; 00123 00129 int biosInterruptVectorId_0; 00130 00136 int biosInterruptVectorId_1; 00137 00145 int biosInterruptEventNo_0; 00146 00154 int biosInterruptEventNo_1; 00155 00156 } HDINTC_Params; 00157 00158 00162 extern HDINTC_Params HDINTC_PARAMS; 00163 00164 /*---------------------------------------------------------------------------*/ 00165 /* Dummy structure for HDVICP handle. Currently not at all used by the */ 00166 /* algorithm except for passing it with hdvicp calls. */ 00167 /*---------------------------------------------------------------------------*/ 00168 typedef struct hdvicpAppHandle 00169 { 00170 /*-----------------------------------*/ 00171 /* handle size useful when extended */ 00172 /*-----------------------------------*/ 00173 XDAS_UInt32 handleSize; 00174 00175 /*-----------------------------------*/ 00176 /* process-Id */ 00177 /*-----------------------------------*/ 00178 XDAS_UInt32 processId; 00179 00180 /*-----------------------------------*/ 00181 /* application specific information */ 00182 /*-----------------------------------*/ 00183 void* info; 00184 00185 } HDVICP_Obj; 00186 00187 typedef HDVICP_Obj* HDVICP_Handle; 00188 00189 /*===========================================================================*/ 00190 /* 00191 *@brief This is the top level function on the gem side, which sets the 00192 * interrupt configuration for the interrupts received from ARM968. 00193 * In effect, this function currently sets the global function ptr 00194 * to the actual MB processing decode function that needs to be called 00195 * from the interrupt service routine. 00196 * 00197 *@param handle Algorithm handle 00198 * 00199 *@param hdvicpHandle void pointer to the hdvicp handle. 00200 * 00201 *@param (*ISRfunctionptr)(handle) Function pointer to the MB pair 00202 * processing function of the algorithm. 00203 * 00204 *@return none 00205 * 00206 *@note This function will be called from the algorithm but the 00207 * implementation will lie in the application. 00208 */ 00209 /*===========================================================================*/ 00210 void HDVICP_configure(IALG_Handle handle, 00211 void * hdvicpHandle, 00212 void (*ISRfunctionptr)(IALG_Handle handle)); 00213 00214 /*===========================================================================*/ 00215 /* 00216 *@brief This is the top level function on the gem side, which implements 00217 * the hdvicp_wait(). Current implementation allows GEM to wait on a 00218 * global intc flag which will be 1 as long as one frame is not 00219 * completed. 00220 * 00221 *@param hdvicpHandle void pointer to the hdvicp handle. 00222 * 00223 *@return none 00224 * 00225 *@note As per XDM, this function will be called from the algorithm but the 00226 * implementation will lie in the application. 00227 */ 00228 /*===========================================================================*/ 00229 void HDVICP_wait (void * hdvicpHandle); 00230 00231 /*===========================================================================*/ 00232 /* 00233 *@brief This is the top level function on the gem side, which implements 00234 * the hdvicp_done(). Current implementation allows GEM to set a 00235 * global intc flag to 0 to come out of hdvicp_wait() as soon as one 00236 * frame is completed. 00237 * 00238 *@param hdvicpHandle void pointer to the hdvicp handle. 00239 * 00240 *@return none 00241 * 00242 *@note As per XDM, this function will be called from the algorithm but the 00243 * implementation will lie in the application. 00244 */ 00245 /*===========================================================================*/ 00246 void HDVICP_done (void * hdvicpHandle); 00247 00248 #ifdef __cplusplus 00249 } 00250 #endif /* extern "C" */ 00251 00252 00255 #endif 00256 /* 00257 * @(#) ti.sdo.fc.hdintc; 1, 0, 4,1; 12-2-2011 22:17:18; /db/atree/library/trees/fc/fc-o34/src/ xlibrary 00258 00259 */ 00260