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_utils.c 35c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 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\src 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 * INCLUDE FILES 52c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ******************************************************************/ 53c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <string.h> 54c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <stdio.h> 55c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 56c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "omx_rpc.h" 57c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "omx_rpc_internal.h" 58c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "omx_rpc_utils.h" 59c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <MultiProc.h> 60c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <ProcMgr.h> 61c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 62c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevextern char rcmservertable[MAX_PROC][MAX_SERVER_NAME_LENGTH]; 63c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevextern char Core_Array[MAX_PROC][MAX_CORENAME_LENGTH]; 64c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 65c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 66c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 67c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name EMPTY-STUB 68c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief 69c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param 70c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return 71c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 72c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 73c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 74c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_UTIL_GetTargetServerName(OMX_STRING ComponentName, 75c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_STRING ServerName) 76c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 77c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 count = 0; 78c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 i = 0; 79c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 servertable_idx = 0; 80c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_STRING str; 81c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev char Core[MAX_CORENAME_LENGTH]; 82c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 83c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 84c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG(" Calling Component Name %s", ComponentName); 85c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 86c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev while (*ComponentName != '\0') 87c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev { 88c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev if (*ComponentName == '.') 89c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev { 90c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev count++; 91c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev if (count == 2) 92c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev { 93c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ComponentName++; 94c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev str = ComponentName; 95c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 96c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev while (*str != '.') 97c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev { 98c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev Core[i] = *str; 99c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev i++; 100c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev str++; 101c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } 102c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev Core[i] = '\0'; 103c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev break; 104c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } 105c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 106c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } 107c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 108c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ComponentName++; 109c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } 110c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 111c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG(" CORE NAME RECOVERED: %s", Core); 112c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG 113c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ("____________________________________________________________"); 114c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG("Recovering Server Table Index"); 115c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev for (i = 0; i < CORE_MAX; i++) 116c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev { 117c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 118c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev if (strcmp(Core, Core_Array[i]) == 0) 119c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev { 120c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev servertable_idx = i; 121c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG("Recovered Server table index = %d", i); 122c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev break; 123c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } 124c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } 125c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev strncpy(ServerName, (OMX_STRING) rcmservertable[servertable_idx], 126c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev MAX_SERVER_NAME_LENGTH); 127c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG(" ServerName recovered = %s", ServerName); 128c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 129c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 130c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 131c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 132c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 133c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 134c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name EMPTY-STUB 135c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief 136c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param 137c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return 138c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 139c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 140c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 141c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_UTIL_GetLocalServerName(OMX_STRING ComponentName, 142c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_STRING * ServerName) 143c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 144c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Implementation returns only current core ID - But this is a place holder to abstract out the 145c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevdefault server and other additional servers available on the current core. This additional servers 146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevshould be available in the RPC global that is indexed using the calling component name*/ 147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone; 148c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 servertable_idx = 0; 149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 150c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev servertable_idx = MultiProc_getId(NULL); //This can be replace with the mechanism to obtain new addition rcm servers 151c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev if (MultiProc_INVALIDID != servertable_idx) 152c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *ServerName = rcmservertable[servertable_idx]; 153c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev else 154c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev eRPCError = RPC_OMX_ErrorUndefined; 155c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 156c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return eRPCError; 157c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 158c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 159c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 160c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 161c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 162c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 163c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_UTIL_GenerateLocalServerName() 164c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief This function generates a server name to be used while creating the 165c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * RCM server. The name is based on the pid so that eacj process gets a 166c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * unique server name. 167c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param cServerName - This is filled in and returned with a valid value. 168c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone = Successful 169c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @sa TBD 170c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 171c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 172c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 173c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_UTIL_GenerateLocalServerName(OMX_STRING cServerName) 174c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 175c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone; 176c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_S32 pid = 0; 177c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nProcId = 0; 178c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 179c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pid = getpid(); 180c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /*Using pid as the server name, thus limiting to only 1 server per process. 181c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev This limitaion is partly enforce by syslink as well since max size of server 182c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev name is 32 so only pid can fit into the name */ 183c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev sprintf(cServerName, "%ld", pid); 184c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 185c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nProcId = MultiProc_getId(NULL); 186c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev if (MultiProc_INVALIDID != nProcId) 187c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /*Fill the server table with the newly generated name */ 188c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev strncpy(rcmservertable[nProcId], cServerName, 189c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev MAX_SERVER_NAME_LENGTH); 190c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev else 191c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev eRPCError = RPC_OMX_ErrorUndefined; 192c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 193c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return eRPCError; 194c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 195c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 196c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 197c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 198c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 199c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 200c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_UTIL_GetTargetCore() 201c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief This function gets the target core id by parsing the component name. 202c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * It is assumed that component names follow the convention 203c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * <OMX>.<Company Name>.<Core Name>.<Domain>.<Component Details> with 204c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * all characters in upper case for e.g. OMX.TI.DUCATI1.VIDEO.H264E 205c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param cComponentName - Name of the component. 206c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param nCoreId - Core ID, this is filled in and returned. 207c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone = Successful 208c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @sa TBD 209c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 210c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 211c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 212c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_UTIL_GetTargetCore(OMX_STRING cComponentName, 213c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 * nCoreId) 214c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 215c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone; 216c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_S8 cCoreName[MAX_SERVER_NAME_LENGTH] = { 0 }; 217c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_S32 ret = 0; 218c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 i = 0; 219c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 220c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev ret = 221c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev sscanf(cComponentName, "%*[^'.'].%*[^'.'].%[^'.'].%*s", 222c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev cCoreName); 223c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_assert(ret == 1, RPC_OMX_ErrorBadParameter, 224c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev "Incorrect component name"); 225c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 226c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev for (i = 0; i < CORE_MAX; i++) 227c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev { 228c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev if (strcmp((char *)cCoreName, Core_Array[i]) == 0) 229c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev break; 230c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } 231c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_assert(i < CORE_MAX, RPC_OMX_ErrorBadParameter, 232c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev "Unknown core name"); 233c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *nCoreId = i; 234c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 235c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev EXIT: 236c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return eRPCError; 237c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 238c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 239c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 240c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 241c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 242c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 243c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name EMPTY-STUB 244c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief the Api creates the RCM client on the target core(where the component sits). 245c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevThis happens in the context of the Default RCM server on the target core. 246c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevThe RCM server name to connect for this client will be the default RCM server on the calling core. 247c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevThis can be provided as an option as the name that you pass in the string server is used as the RCM server name 248c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevinput to the client create call. 249c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev@Default_RcmServer - The default rcm server on the target core 250c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev@Server - The name of the server on the calling core to connect to 251c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param 252c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return 253c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 254c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 255c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 256c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* 257c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_GetTargetClient(OMX_STRING Default_RcmServer, OMX_STRING server, rcmhHndl) 258c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 259c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 260c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 261c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 262c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/ 263c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 264c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 265c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 266c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name EMPTY-STUB 267c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief 268c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param 269c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return 270c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 271c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 272c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 273c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_MapBuffer(OMX_U32 mappedBuffer) 274c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 275c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 276c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG("Empty implementation "); 277c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //PlaceHolder for Mapping Buffers - Cuurently no implementation here 278c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 279c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 280c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 281c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 282c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 283c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name EMPTY-STUB 284c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief 285c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param 286c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return 287c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 288c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 289c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 290c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_UnMapBuffer(OMX_U32 mappedBuffer) 291c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 292c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 293c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG("Empty implementation "); 294c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev //PlaceHolder for UnMapping Buffers - Cuurently no implementation here 295c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return RPC_OMX_ErrorNone; 296c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 297c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 298c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 299c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 300c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_FlushBuffer 301c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief Used to flush buffers from cache to memory. Used when buffers are 302c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * being transferred across processor boundaries. 303c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param pBuffer : Pointer to the data that has to be flushed. 304c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * size : Size of the data to be flushed. 305c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nTargetCoreId : Core to which buffer is being transferred. 306c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone : Success. 307c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * RPC_OMX_ErrorUndefined : Flush operation failed. 308c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 309c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 310c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_FlushBuffer(OMX_U8 * pBuffer, OMX_U32 size, 311c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nTargetCoreId) 312c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 313c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 314c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone; 315c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_S32 nStatus = 0; 316c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 317c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG("About to flush %d bytes", size); 318c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nStatus = ProcMgr_flushMemory((OMX_PTR) pBuffer, size, 319c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev (ProcMgr_ProcId) nTargetCoreId); 320c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_assert(nStatus >= 0, RPC_OMX_ErrorUndefined, 321c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev "Cache flush failed"); 322c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 323c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev EXIT: 324c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return eRPCError; 325c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 326c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 327c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 328c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 329c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 330c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 331c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_InvalidateBuffer 332c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief Used to flush buffers from cache to memory. Used when buffers are 333c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * being transferred across processor boundaries. 334c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param pBuffer : Pointer to the data that has to be flushed. 335c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * size : Size of the data to be flushed. 336c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nTargetCoreId : Core to which buffer is being transferred. 337c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone : Success. 338c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * RPC_OMX_ErrorUndefined : Invalidate operation failed. 339c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 340c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 341c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_InvalidateBuffer(OMX_U8 * pBuffer, OMX_U32 size, 342c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nTargetCoreId) 343c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 344c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone; 345c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_S32 nStatus = 0; 346c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 347c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 348c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_DEBUG("About to invalidate %d bytes", size); 349c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nStatus = ProcMgr_invalidateMemory((OMX_PTR) pBuffer, size, 350c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev (ProcMgr_ProcId) nTargetCoreId); 351c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_assert(nStatus >= 0, RPC_OMX_ErrorUndefined, 352c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev "Cache invalidate failed"); 353c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 354c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev EXIT: 355c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return eRPCError; 356c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 357c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 358c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 359c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 360c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 361c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 362c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_Util_AcquireJobId 363c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief Used to get a new job id from syslink - all messages sent with the 364c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * same job id will be processed serially. Messages with different job id 365c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * will be processed parallely. 366c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param hRPCCtx : RPC context handle. 367c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * pJobId : Pointer to job id - this'll be filled in and returned. 368c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone : Success. 369c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Any other : Operation failed. 370c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 371c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 372c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_Util_AcquireJobId(RPC_OMX_CONTEXT * hRPCCtx, 373c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U16 * pJobId) 374c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 375c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone; 376c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_S32 nStatus = 0; 377c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 378c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 379c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nStatus = 380c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RcmClient_acquireJobId(hRPCCtx->ClientHndl[RCM_DEFAULT_CLIENT], 381c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pJobId); 382c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_assert(nStatus >= 0, RPC_OMX_ErrorUndefined, 383c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev "Acquire job id failed"); 384c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 385c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev EXIT: 386c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_EXIT("eRPCError = %d", eRPCError); 387c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return eRPCError; 388c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 389c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 390c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 391c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 392c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 393c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 394c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_Util_ReleaseJobId 395c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief Used to release job id to syslink. Once release, this job id cannot be 396c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * reused. 397c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param hRPCCtx : RPC context handle. 398c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * nJobId : Job ID to be released. 399c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone : Success. 400c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Any other : Operation failed. 401c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 402c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 403c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_Util_ReleaseJobId(RPC_OMX_CONTEXT * hRPCCtx, 404c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U16 nJobId) 405c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 406c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone; 407c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_S32 nStatus = 0; 408c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 409c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 410c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nStatus = 411c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RcmClient_releaseJobId(hRPCCtx->ClientHndl[RCM_DEFAULT_CLIENT], 412c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nJobId); 413c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_assert(nStatus >= 0, RPC_OMX_ErrorUndefined, 414c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev "Release job id failed"); 415c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 416c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev EXIT: 417c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_EXIT("eRPCError = %d", eRPCError); 418c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return eRPCError; 419c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 420c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 421c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 422c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 423c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 424c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** 425c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @name RPC_Util_GetPoolId 426c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @brief Used to get pool id. Messages sent with same pool id will get 427c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * processed at the same priority on remote core. 428c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @param hRPCCtx : RPC context handle. 429c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * pPoolId : Pointer to pool id - this'll be filled in and 430c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * returned. 431c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @return RPC_OMX_ErrorNone : Success. 432c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Any other : Operation failed. 433c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 434c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ===========================================================================*/ 435c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevRPC_OMX_ERRORTYPE RPC_Util_GetPoolId(RPC_OMX_CONTEXT * hRPCCtx, 436c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U16 * pPoolId) 437c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 438c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone; 439c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_ENTER(""); 440c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 441c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *pPoolId = 0x8001; 442c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 443c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev//EXIT: 444c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev DOMX_EXIT("eRPCError = %d", eRPCError); 445c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev return eRPCError; 446c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 447