1c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* 2c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Copyright (c) 2010, Texas Instruments Incorporated 3c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * All rights reserved. 4c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 5c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Redistribution and use in source and binary forms, with or without 6c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * modification, are permitted provided that the following conditions 7c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * are met: 8c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 9c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * * Redistributions of source code must retain the above copyright 10c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * notice, this list of conditions and the following disclaimer. 11c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 12c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * * Redistributions in binary form must reproduce the above copyright 13c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * notice, this list of conditions and the following disclaimer in the 14c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * documentation and/or other materials provided with the distribution. 15c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 16c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * * Neither the name of Texas Instruments Incorporated nor the names of 17c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * its contributors may be used to endorse or promote products derived 18c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * from this software without specific prior written permission. 19c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 20c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 27c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 30c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 32c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 33c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 34c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @file omx_rpc.h 35c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief This file contains methods that provides the functionality for 36c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * the OpenMAX1.1 DOMX Framework RPC. 37c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 38c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @path \WTSD_DucatiMMSW\framework\domx\omx_rpc\ 39c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 40c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @rev 1.0 41c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 42c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 43c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*============================================================== 44c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! Revision History 45c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! ============================ 46c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! 29-Mar-2010 Abhishek Ranka : Revamped DOMX implementation 47c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! 48c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! 19-August-2009 B Ravi Kiran ravi.kiran@ti.com: Initial Version 49c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *================================================================*/ 50c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 51c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifndef OMXRPC_H 52c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define OMXRPC_H 53c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 54c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifdef __cplusplus 55c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevextern "C" 56c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 57c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif /* __cplusplus */ 58c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 59c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/****************************************************************** 60c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * INCLUDE FILES 61c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ******************************************************************/ 62c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <stdio.h> 63c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_Types.h> 64c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_Core.h> 65c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 66c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 67c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/****************************************************************** 68c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * DATA TYPES 69c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ******************************************************************/ 70c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 71c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 72c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /******************************************************************************* 73c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* Enumerated Types 74c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*******************************************************************************/ 75c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev typedef enum RPC_OMX_ERRORTYPE 76c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev { 77c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorNone = 0, 78c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 79c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /* OMX Error Mapped */ 80c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorInsufficientResources = 0x81000, 81c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorUndefined = 0x81001, 82c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorBadParameter = 0x81005, 83c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorHardware = 0x81009, 84c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorUnsupportedIndex = 0x8101A, 85c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorTimeout = 0x81011, 86c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /* END OF OMX Error */ 87c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 88c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /* RPC Specific Error - to depricate */ 89c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorUnknown = 0x70000, 90c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorProccesorInit = 0x70001, 91c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_InvalidRPCCmd = 0x70002, 92c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorHLOS = 0x70003, 93c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ErrorInvalidMsg = 0x70004, 94c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 95c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /* RCM Specific */ 96c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_RCM_ErrorExecFail = 0x70005, 97c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_RCM_ErrorExecDpcFail = 0x70006, 98c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_RCM_ErrorTimeout = 0x70007, 99c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_RCM_ServerFail = 0x70008, 100c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_RCM_ClientFail = 0x70009, 101c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 102c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } RPC_OMX_ERRORTYPE; 103c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 104c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 105c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**************************************************************** 106c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PUBLIC DECLARATIONS Defined here, used elsewhere 107c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 108c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev****************************************************************/ 109c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 110c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 111c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_InstanceInit() 112c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief RPC instance init is used to bring up a instance of a client - this should be ideally invokable from any core 113c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * For this the parameters it would require are 114c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Heap ID - this needs to be configured at startup (CFG) and indicates the heaps available for a RCM client to pick from 115c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Server - this contains the RCM server name that the client should connect to 116c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * rcmHndl - Contains the Client once the call is completed 117c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * rcmParams - 118c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * These values can be picked up from the RPC handle. But an unique identifier is required -Server 119c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param cComponentName : Pointer to the Components Name that is requires the RCM client to be initialized 120c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone = Successful 121c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @sa TBD 122c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 123c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 124c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 125c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE RPC_InstanceInit(OMX_STRING cComponentName, 126c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_HANDLETYPE * phRPCCtx); 127c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 128c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 129c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 130c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 131c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 132c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_InstanceDeInit() 133c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief This function Removes or deinitializes RCM client instances. This also manages the number of active users 134c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * of a given RCM client 135c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param cComponentName : Pointer to the Components Name that is active user of the RCM client to be deinitialized 136c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone = Successful 137c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @sa TBD 138c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 139c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 140c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 141c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE RPC_InstanceDeInit(OMX_HANDLETYPE hRPCCtx); 142c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 143c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 144c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 145c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifdef __cplusplus 146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif /* __cplusplus */ 148c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif 150