summaryrefslogtreecommitdiffstats
path: root/domx/domx/omx_rpc/src
diff options
context:
space:
mode:
Diffstat (limited to 'domx/domx/omx_rpc/src')
-rwxr-xr-xdomx/domx/omx_rpc/src/omx_rpc.c410
-rwxr-xr-xdomx/domx/omx_rpc/src/omx_rpc_config.c1
-rwxr-xr-xdomx/domx/omx_rpc/src/omx_rpc_platform.c1
-rwxr-xr-xdomx/domx/omx_rpc/src/omx_rpc_skel.c329
-rwxr-xr-xdomx/domx/omx_rpc/src/omx_rpc_stub.c1489
-rwxr-xr-xdomx/domx/omx_rpc/src/omx_rpc_utils.c446
6 files changed, 0 insertions, 2676 deletions
diff --git a/domx/domx/omx_rpc/src/omx_rpc.c b/domx/domx/omx_rpc/src/omx_rpc.c
deleted file mode 100755
index 0743491..0000000
--- a/domx/domx/omx_rpc/src/omx_rpc.c
+++ /dev/null
@@ -1,410 +0,0 @@
-/*
- * Copyright (c) 2010, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @file omx_rpc_stub.c
- * This file contains methods that provides the functionality for
- * the OpenMAX1.1 DOMX Framework RPC Stub implementations.
- *
- * @path \WTSD_DucatiMMSW\framework\domx\omx_rpc\src
- *
- * @rev 1.0
- */
-
-
-/******************************************************************
- * INCLUDE FILES
- ******************************************************************/
-/* ----- system and platform files ----------------------------*/
-#include <errno.h>
-//#include <errno-base.h>
-
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <sys/eventfd.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-
-#include <OMX_Types.h>
-#include <timm_osal_interfaces.h>
-#include <timm_osal_trace.h>
-
-
-/*-------program files ----------------------------------------*/
-#include "omx_rpc.h"
-#include "omx_proxy_common.h"
-#include "omx_rpc_stub.h"
-#include "omx_rpc_skel.h"
-#include "omx_rpc_internal.h"
-#include "omx_rpc_utils.h"
-
-#include "rpmsg_omx_defs.h"
-
-#define RPC_MSGPIPE_SIZE (4)
-#define RPC_MSG_SIZE_FOR_PIPE (sizeof(OMX_PTR))
-#define MAX_ATTEMPTS 15
-
-#define RPC_getPacket(nPacketSize, pPacket) do { \
- pPacket = TIMM_OSAL_Malloc(nPacketSize, TIMM_OSAL_TRUE, 0, TIMMOSAL_MEM_SEGMENT_INT); \
- RPC_assert(pPacket != NULL, RPC_OMX_ErrorInsufficientResources, \
- "Error Allocating RCM Message Frame"); \
- } while(0)
-
-#define RPC_freePacket(pPacket) do { \
- if(pPacket != NULL) TIMM_OSAL_Free(pPacket); \
- } while(0)
-
-OMX_U8 pBufferError[RPC_PACKET_SIZE];
-
-void *RPC_CallbackThread(void *data);
-
-
-/* ===========================================================================*/
-/**
-* @name RPC_InstanceInit()
-* @brief RPC instance init is used for initialization. It is called once for
-* every instance of an OMX component.
-* @param cComponentName [IN] : Name of the component.
-* @param phRPCCtx [OUT] : RPC Context structure - to be filled in and returned
-* @return RPC_OMX_ErrorNone = Successful
-*/
-/* ===========================================================================*/
-
-RPC_OMX_ERRORTYPE RPC_InstanceInit(OMX_STRING cComponentName,
- OMX_HANDLETYPE * phRPCCtx)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- RPC_OMX_CONTEXT *pRPCCtx = NULL;
- OMX_S32 status = 0;
- struct omx_conn_req sReq = { .name = "OMX" };
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- OMX_U32 i = 0, nAttempts = 0;
-
- *(RPC_OMX_CONTEXT **) phRPCCtx = NULL;
-
- //pthread_t cbThread;
-
-// sReq.name = "OMX";
-
- /*pRPCCtx contains context information for each instance */
- pRPCCtx =
- (RPC_OMX_CONTEXT *) TIMM_OSAL_Malloc(sizeof(RPC_OMX_CONTEXT),
- TIMM_OSAL_TRUE, 0, TIMMOSAL_MEM_SEGMENT_INT);
- RPC_assert(pRPCCtx != NULL, RPC_OMX_ErrorInsufficientResources,
- "Malloc failed");
- TIMM_OSAL_Memset(pRPCCtx, 0, sizeof(RPC_OMX_CONTEXT));
-
- /*Assuming that open maintains an internal count for multi instance */
- DOMX_DEBUG("Calling open on the device");
- while (1)
- {
- pRPCCtx->fd_omx = open("/dev/rpmsg-omx1", O_RDWR);
- if(pRPCCtx->fd_omx >= 0 || errno != ENOENT || nAttempts == MAX_ATTEMPTS)
- break;
- DOMX_DEBUG("errno from open= %d, REATTEMPTING OPEN!!!!",errno);
- nAttempts++;
- usleep(1000000);
- }
- if(pRPCCtx->fd_omx < 0)
- {
- DOMX_ERROR("Can't open device, errorno from open = %d",errno);
- eError = RPC_OMX_ErrorInsufficientResources;
- goto EXIT;
- }
- DOMX_DEBUG("Open was successful, pRPCCtx->fd_omx = %d",
- pRPCCtx->fd_omx);
-//AD
-// strncpy(sReq.name, cComponentName, OMX_MAX_STRINGNAME_SIZE);
-
- DOMX_DEBUG("Calling ioctl");
- status = ioctl(pRPCCtx->fd_omx, OMX_IOCCONNECT, &sReq);
- RPC_assert(status >= 0, RPC_OMX_ErrorInsufficientResources,
- "Can't connect");
-
- for (i = 0; i < RPC_OMX_MAX_FUNCTION_LIST; i++)
- {
- eError =
- TIMM_OSAL_CreatePipe(&(pRPCCtx->pMsgPipe[i]),
- RPC_MSGPIPE_SIZE, RPC_MSG_SIZE_FOR_PIPE, 1);
- RPC_assert(eError == TIMM_OSAL_ERR_NONE,
- RPC_OMX_ErrorInsufficientResources,
- "Pipe creation failed");
- }
-
- DOMX_DEBUG("Creating event fd");
- pRPCCtx->fd_killcb = eventfd(0, 0);
- RPC_assert(pRPCCtx->fd_killcb >= 0,
- RPC_OMX_ErrorInsufficientResources, "Can't create kill fd");
- /*Create a listener/server thread to listen for Ducati callbacks */
- DOMX_DEBUG("Create listener thread");
- status =
- pthread_create(&(pRPCCtx->cbThread), NULL, RPC_CallbackThread,
- pRPCCtx);
- RPC_assert(status == 0, RPC_OMX_ErrorInsufficientResources,
- "Can't create cb thread");
-
- EXIT:
- if (eRPCError != RPC_OMX_ErrorNone)
- {
- RPC_InstanceDeInit(pRPCCtx);
- }
- else
- {
- *(RPC_OMX_CONTEXT **) phRPCCtx = pRPCCtx;
- }
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
-* @name RPC_InstanceDeInit()
-* @brief RPC instance deinit is used for tear down. It is called once when an
-* instance of OMX component is going down.
-* @param phRPCCtx [IN] : RPC Context structure.
-* @return RPC_OMX_ErrorNone = Successful
-*/
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_InstanceDeInit(OMX_HANDLETYPE hRPCCtx)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- RPC_OMX_CONTEXT *pRPCCtx = (RPC_OMX_CONTEXT *) hRPCCtx;
- OMX_S32 status = 0;
- OMX_U32 i = 0;
- OMX_U64 nKillEvent = 1;
-
- RPC_assert(hRPCCtx != NULL, RPC_OMX_ErrorUndefined,
- "NULL context handle supplied to RPC Deinit");
-
- if (pRPCCtx->fd_killcb)
- {
- status =
- write(pRPCCtx->fd_killcb, &nKillEvent, sizeof(OMX_U64));
- if (status <= 0)
- {
- DOMX_ERROR
- ("Write to kill fd failed - cb thread may not exit");
- eRPCError = RPC_OMX_ErrorUndefined;
- } else if (pRPCCtx->cbThread)
- {
- DOMX_DEBUG("Waiting for cb thread to exit");
- status = pthread_join(pRPCCtx->cbThread, NULL);
- if (status != 0)
- {
- DOMX_ERROR("Join for cb thread failed");
- eRPCError = RPC_OMX_ErrorUndefined;
- }
- }
- DOMX_DEBUG("Closing the kill fd");
- status = close(pRPCCtx->fd_killcb);
- pRPCCtx->fd_killcb = 0;
- if (status != 0)
- {
- DOMX_ERROR("Close failed on kill fd");
- eRPCError = RPC_OMX_ErrorUndefined;
- }
- }
-
- for (i = 0; i < RPC_OMX_MAX_FUNCTION_LIST; i++)
- {
- if (pRPCCtx->pMsgPipe[i])
- {
- eError = TIMM_OSAL_DeletePipe(pRPCCtx->pMsgPipe[i]);
- pRPCCtx->pMsgPipe[i] = NULL;
- if (eError != TIMM_OSAL_ERR_NONE)
- {
- DOMX_ERROR("Pipe deletion failed");
- eRPCError = RPC_OMX_ErrorUndefined;
- }
- }
- }
-
- DOMX_DEBUG("Closing the omx fd");
- if (pRPCCtx->fd_omx)
- {
- status = close(pRPCCtx->fd_omx);
- pRPCCtx->fd_omx = 0;
- if (status != 0)
- {
- DOMX_ERROR("Close failed on omx fd");
- eRPCError = RPC_OMX_ErrorUndefined;
- }
- }
-
- TIMM_OSAL_Free(pRPCCtx);
-
- EXIT:
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
-* @name RPC_CallbackThread()
-* @brief This is the entry function of the thread which keeps spinning, waiting
-* for messages from Ducati.
-* @param data [IN] : The RPC Context structure is passed here.
-* @return RPC_OMX_ErrorNone = Successful
-*/
-/* ===========================================================================*/
-void *RPC_CallbackThread(void *data)
-{
- OMX_PTR pBuffer = NULL;
- RPC_OMX_CONTEXT *pRPCCtx = (RPC_OMX_CONTEXT *) data;
- fd_set readfds;
- OMX_S32 maxfd = 0, status = 0;
- OMX_U32 nFxnIdx = 0, nPacketSize = RPC_PACKET_SIZE, nPos = 0;
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- OMX_COMPONENTTYPE *hComp = NULL;
- PROXY_COMPONENT_PRIVATE *pCompPrv = NULL;
- OMX_PTR pBuff = pBufferError;
-
- maxfd =
- (pRPCCtx->fd_killcb >
- pRPCCtx->fd_omx ? pRPCCtx->fd_killcb : pRPCCtx->fd_omx) + 1;
- while (1)
- {
- FD_ZERO(&readfds);
- FD_SET(pRPCCtx->fd_omx, &readfds);
- FD_SET(pRPCCtx->fd_killcb, &readfds);
-
- DOMX_DEBUG("Waiting for messages from remote core");
- status = select(maxfd, &readfds, NULL, NULL, NULL);
- RPC_assert(status > 0, RPC_OMX_ErrorUndefined,
- "select failed");
-
- if (FD_ISSET(pRPCCtx->fd_killcb, &readfds))
- {
- DOMX_DEBUG("Recd. kill message - exiting the thread");
- break;
- }
-
- if (FD_ISSET(pRPCCtx->fd_omx, &readfds))
- {
- DOMX_DEBUG("Recd. omx message");
- RPC_getPacket(nPacketSize, pBuffer);
- status = read(pRPCCtx->fd_omx, pBuffer, nPacketSize);
- if(status < 0)
- {
- if(errno == ENXIO)
- {
- for(nFxnIdx = 0; nFxnIdx < RPC_OMX_MAX_FUNCTION_LIST; nFxnIdx++)
- {
- ((struct omx_packet *) pBufferError)->result = OMX_ErrorHardware;
- TIMM_OSAL_WriteToPipe(pRPCCtx->pMsgPipe[nFxnIdx], &pBuff, RPC_MSG_SIZE_FOR_PIPE, TIMM_OSAL_SUSPEND);
- if(eError != TIMM_OSAL_ERR_NONE)
- DOMX_ERROR("Write to pipe failed");
- }
- /*Indicate fatal error and exit*/
- RPC_assert(0, RPC_OMX_ErrorHardware,
- "Remote processor fatal error");
- }
- else
- {
- RPC_assert(0, RPC_OMX_ErrorUndefined,
- "read failed");
- }
- }
-
- nPos = 0;
- nFxnIdx = ((struct omx_packet *) pBuffer)->fxn_idx;
- /*Indices from static table will have bit 31 set */
- if (nFxnIdx & 0x80000000)
- nFxnIdx &= 0x0FFFFFFF;
- RPC_assert(nFxnIdx < RPC_OMX_MAX_FUNCTION_LIST,
- RPC_OMX_ErrorUndefined,
- "Bad function index recd");
- switch (nFxnIdx)
- {
- case RPC_OMX_FXN_IDX_EVENTHANDLER:
- RPC_SKEL_EventHandler(((struct omx_packet *)
- pBuffer)->data);
- RPC_freePacket(pBuffer);
- pBuffer = NULL;
- break;
- case RPC_OMX_FXN_IDX_EMPTYBUFFERDONE:
- RPC_SKEL_EmptyBufferDone(((struct omx_packet *)
- pBuffer)->data);
- RPC_freePacket(pBuffer);
- pBuffer = NULL;
- break;
- case RPC_OMX_FXN_IDX_FILLBUFFERDONE:
- RPC_SKEL_FillBufferDone(((struct omx_packet *)
- pBuffer)->data);
- RPC_freePacket(pBuffer);
- pBuffer = NULL;
- break;
- default:
- eError =
- TIMM_OSAL_WriteToPipe(pRPCCtx->
- pMsgPipe[nFxnIdx], &pBuffer,
- RPC_MSG_SIZE_FOR_PIPE, TIMM_OSAL_SUSPEND);
- RPC_assert(eError == TIMM_OSAL_ERR_NONE,
- RPC_OMX_ErrorUndefined,
- "Write to pipe failed");
- break;
- }
- }
-EXIT:
- if (eRPCError != RPC_OMX_ErrorNone)
- {
- //AD TODO: Send error CB to client and then go back in loop to wait for killfd
- if (pBuffer != NULL)
- {
- RPC_freePacket(pBuffer);
- pBuffer = NULL;
- }
- /*Report all hardware errors as fatal and exit from listener thread*/
- if (eRPCError == RPC_OMX_ErrorHardware)
- {
- /*Implicit detail: pAppData is proxy component handle updated during
- RPC_GetHandle*/
- hComp = (OMX_COMPONENTTYPE *) pRPCCtx->pAppData;
- if(hComp != NULL)
- {
- pCompPrv = (PROXY_COMPONENT_PRIVATE *) hComp->pComponentPrivate;
- /*Indicate fatal error. Users are expected to cleanup the OMX instance
- to ensure all resources are cleaned up.*/
- pCompPrv->proxyEventHandler(hComp, pCompPrv->pILAppData, OMX_EventError,
- OMX_ErrorHardware, 0, NULL);
- }
- break;
- }
- }
- }
- return (void*)0;
-}
diff --git a/domx/domx/omx_rpc/src/omx_rpc_config.c b/domx/domx/omx_rpc/src/omx_rpc_config.c
deleted file mode 100755
index 8b13789..0000000
--- a/domx/domx/omx_rpc/src/omx_rpc_config.c
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/domx/domx/omx_rpc/src/omx_rpc_platform.c b/domx/domx/omx_rpc/src/omx_rpc_platform.c
deleted file mode 100755
index 8b13789..0000000
--- a/domx/domx/omx_rpc/src/omx_rpc_platform.c
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/domx/domx/omx_rpc/src/omx_rpc_skel.c b/domx/domx/omx_rpc/src/omx_rpc_skel.c
deleted file mode 100755
index 5b8d423..0000000
--- a/domx/domx/omx_rpc/src/omx_rpc_skel.c
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Copyright (c) 2010, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @file omx_rpc_skel.c
- * This file contains methods that provides the functionality for
- * the OpenMAX1.1 DOMX Framework RPC Skeleton implementations.
- *
- * @path \WTSD_DucatiMMSW\framework\domx\omx_rpc\src
- *
- * @rev 1.0
- */
-
-/*==============================================================
- *! Revision History
- *! ============================
- *! 29-Mar-2010 Abhishek Ranka : Revamped DOMX implementation
- *!
- *! 19-August-2009 B Ravi Kiran ravi.kiran@ti.com: Initial Version
- *================================================================*/
-
-/******************************************************************
- * INCLUDE FILES
- ******************************************************************/
-
-#include <stdio.h>
-#include <string.h>
-
-#include <timm_osal_interfaces.h>
-#include <OMX_TI_Common.h>
-
-#include "omx_rpc.h"
-#include "omx_proxy_common.h"
-#include "omx_rpc_skel.h"
-#include "omx_rpc_utils.h"
-#include "omx_rpc_internal.h"
-
-/* FUNCTION LIST*/
-/*
-RPC_OMX_ERRORTYPE RPC_SKEL_EmptyBufferDone(uint32_t size, uint32_t *data)
-RPC_OMX_ERRORTYPE RPC_SKEL_FillBufferDone(uint32_t size, uint32_t *data)
-RPC_OMX_ERRORTYPE RPC_SKEL_EventHandler(uint32_t size, uint32_t *data)
-*/
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_SKEL_FillBufferDone()
- * @brief Skeleton for OMX_AllocateBuffer()
- * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call)
- * @param *data : Pointer to the RCM message/buffer received
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_SKEL_EmptyBufferDone(void *data)
-{
-
- OMX_HANDLETYPE hComp;
- RPC_OMX_ERRORTYPE tRPCError = RPC_OMX_ErrorNone;
- OMX_U32 nfilledLen = 0;
- OMX_U32 nOffset = 0;
- OMX_U32 nFlags = 0;
- OMX_U32 bufferHdr;
- OMX_COMPONENTTYPE *pHandle = NULL;
- PROXY_COMPONENT_PRIVATE *pCompPrv = NULL;
- OMX_U32 nPos = 0;
- //RPC_OMX_MESSAGE *recdMsg;
- OMX_U8 *pMsgBody = NULL;
- //recdMsg = (RPC_OMX_MESSAGE *) (data);
-
- pMsgBody = data; //&recdMsg->msgBody[0];
-
- DOMX_ENTER("");
-
- //Marshalled:[>hComp|>bufferHdr|>nFilledLen|>nOffset|>nFlags]
-
- RPC_GETFIELDVALUE(pMsgBody, nPos, hComp, OMX_HANDLETYPE);
- pHandle = (OMX_COMPONENTTYPE *) hComp;
- pCompPrv = (PROXY_COMPONENT_PRIVATE *) pHandle->pComponentPrivate;
-
- RPC_GETFIELDVALUE(pMsgBody, nPos, bufferHdr, OMX_U32);
-
- RPC_GETFIELDVALUE(pMsgBody, nPos, nfilledLen, OMX_U32);
- RPC_GETFIELDVALUE(pMsgBody, nPos, nOffset, OMX_U32);
- RPC_GETFIELDVALUE(pMsgBody, nPos, nFlags, OMX_U32);
-
- tRPCError =
- pCompPrv->proxyEmptyBufferDone(hComp, bufferHdr, nfilledLen,
- nOffset, nFlags);
-
- DOMX_EXIT("");
- return tRPCError;
-}
-
-/* ===========================================================================*/
-/**
- * @name RPC_SKEL_FillBufferDone()
- * @brief Skeleton for OMX_AllocateBuffer()
- * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call)
- * @param *data : Pointer to the RCM message/buffer received
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_SKEL_FillBufferDone(void *data)
-{
-
- OMX_HANDLETYPE hComp;
- RPC_OMX_ERRORTYPE tRPCError = RPC_OMX_ErrorNone;
- OMX_U32 nfilledLen = 0;
- OMX_U32 nOffset = 0;
- OMX_U32 nFlags = 0;
- OMX_TICKS nTimeStamp;
- OMX_U32 bufferHdr;
- OMX_COMPONENTTYPE *pHandle = NULL;
- PROXY_COMPONENT_PRIVATE *pCompPrv = NULL;
- OMX_U32 nPos = 0;
- //RPC_OMX_MESSAGE *recdMsg;
- OMX_U8 *pMsgBody = NULL;
- OMX_HANDLETYPE hMarkTargetComponent = NULL;
- OMX_PTR pMarkData = NULL;
- //recdMsg = (RPC_OMX_MESSAGE *) (data);
-
- pMsgBody = data; //&recdMsg->msgBody[0];
-
- DOMX_ENTER("");
-
- //Marshalled:[>hComp|>bufferHdr|>nFilledLen|>nOffset|>nFlags|>nTimeStamp]
-
- RPC_GETFIELDVALUE(pMsgBody, nPos, hComp, OMX_HANDLETYPE);
- pHandle = (OMX_COMPONENTTYPE *) hComp;
- pCompPrv = (PROXY_COMPONENT_PRIVATE *) pHandle->pComponentPrivate;
-
- RPC_GETFIELDVALUE(pMsgBody, nPos, bufferHdr, OMX_U32);
- RPC_GETFIELDVALUE(pMsgBody, nPos, nfilledLen, OMX_U32);
- RPC_GETFIELDVALUE(pMsgBody, nPos, nOffset, OMX_U32);
- RPC_GETFIELDVALUE(pMsgBody, nPos, nFlags, OMX_U32);
- RPC_GETFIELDVALUE(pMsgBody, nPos, nTimeStamp, OMX_TICKS);
- RPC_GETFIELDVALUE(pMsgBody, nPos, hMarkTargetComponent,
- OMX_HANDLETYPE);
- RPC_GETFIELDVALUE(pMsgBody, nPos, pMarkData, OMX_PTR);
-
- tRPCError =
- pCompPrv->proxyFillBufferDone(hComp, bufferHdr, nfilledLen,
- nOffset, nFlags, nTimeStamp, hMarkTargetComponent, pMarkData);
-
- DOMX_EXIT("");
- return tRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_SKEL_EventHandler()
- * @brief Skeleton for OMX_AllocateBuffer()
- * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call)
- * @param *data : Pointer to the RCM message/buffer received
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_SKEL_EventHandler(void *data)
-{
- OMX_HANDLETYPE hComp;
- RPC_OMX_ERRORTYPE tRPCError = RPC_OMX_ErrorNone;
- OMX_COMPONENTTYPE *pHandle = NULL;
- PROXY_COMPONENT_PRIVATE *pCompPrv = NULL;
- OMX_EVENTTYPE eEvent;
- OMX_U32 nData1;
- OMX_U32 nData2;
- OMX_PTR pEventData;
- OMX_U32 nPos = 0;
- //RPC_OMX_MESSAGE *recdMsg;
- OMX_U8 *pMsgBody = NULL;
- //recdMsg = (RPC_OMX_MESSAGE *) (data);
- pMsgBody = data; //&recdMsg->msgBody[0];
-
- DOMX_ENTER("");
-
- //Marshalled:[>hComp|>eEvent|>nData1|>nData2|>pEventData]
-
- RPC_GETFIELDVALUE(pMsgBody, nPos, hComp, OMX_HANDLETYPE);
- pHandle = (OMX_COMPONENTTYPE *) hComp;
- pCompPrv = (PROXY_COMPONENT_PRIVATE *) pHandle->pComponentPrivate;
-
- RPC_GETFIELDVALUE(pMsgBody, nPos, eEvent, OMX_EVENTTYPE);
- RPC_GETFIELDVALUE(pMsgBody, nPos, nData1, OMX_U32);
- RPC_GETFIELDVALUE(pMsgBody, nPos, nData2, OMX_U32);
- RPC_GETFIELDVALUE(pMsgBody, nPos, pEventData, OMX_PTR);
-
- DOMX_DEBUG
- ("\n**__**Got eventhandler from Remote Core succesffuly - values are : **__**");
- DOMX_DEBUG
- ("hComp :0x%x,eEvent: 0x%x,nData1: 0x%x,nData2: 0x%x,pEventData: 0x%x",
- hComp, eEvent, nData1, nData2, pEventData);
- DOMX_DEBUG("Just Before Entering Proxy Event handler call");
-
- tRPCError =
- pCompPrv->proxyEventHandler(hComp, pCompPrv->pILAppData, eEvent,
- nData1, nData2, pEventData);
-
- DOMX_EXIT("");
- return tRPCError;
-
-}
-
-/* ===========================================================================*/
-/**
- * @name EMPTY-SKEL
- * @brief
- * @param
- * @return
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_SKEL_GetHandle(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_SetParameter(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_GetParameter(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_FreeHandle(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_EmptyThisBuffer(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_FillThisBuffer(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_UseBuffer(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_FreeBuffer(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_SetConfig(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_GetConfig(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_GetState(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_SendCommand(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_GetComponentVersion(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_GetExtensionIndex(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_AllocateBuffer(uint32_t size, uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_SKEL_ComponentTunnelRequest(uint32_t size,
- uint32_t * data)
-{
- return RPC_OMX_ErrorNone;
-}
diff --git a/domx/domx/omx_rpc/src/omx_rpc_stub.c b/domx/domx/omx_rpc/src/omx_rpc_stub.c
deleted file mode 100755
index 0c28ba1..0000000
--- a/domx/domx/omx_rpc/src/omx_rpc_stub.c
+++ /dev/null
@@ -1,1489 +0,0 @@
-/*
- * Copyright (c) 2010, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @file omx_rpc_stub.c
- * This file contains methods that provides the functionality for
- * the OpenMAX1.1 DOMX Framework RPC Stub implementations.
- *
- * @path \WTSD_DucatiMMSW\framework\domx\omx_rpc\src
- *
- * @rev 1.0
- */
-
-/*==============================================================
- *! Revision History
- *! ============================
- *! 30-Apr-2010 Abhishek Ranka : Fixed GetExtension issue
- *!
- *! 29-Mar-2010 Abhishek Ranka : Revamped DOMX implementation
- *!
- *! 19-August-2009 B Ravi Kiran ravi.kiran@ti.com: Initial Version
- *================================================================*/
-/******************************************************************
- * INCLUDE FILES
- ******************************************************************/
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <unistd.h>
-
-#include "omx_rpc.h"
-#include "omx_rpc_utils.h"
-#include "omx_proxy_common.h"
-#include "omx_rpc_stub.h"
-#include <OMX_TI_Common.h>
-#include <timm_osal_interfaces.h>
-
-#include <linux/rpmsg_omx.h>
-#include "rpmsg_omx_defs.h"
-
-/******************************************************************
- * EXTERNS
- ******************************************************************/
-
-/******************************************************************
- * MACROS - LOCAL
- ******************************************************************/
-
-//#define RPC_MSGPIPE_SIZE (4)
-#define RPC_MSG_SIZE_FOR_PIPE (sizeof(OMX_PTR))
-
-/* When this is defined ETB/FTB calls are made in sync mode. Undefining will
- * result in these calls being sent via async mode. Sync mode leads to correct
- * functionality as per OMX spec but has a slight performance penalty. Async
- * mode sacrifices strict adherence to spec for some gain in performance. */
-#define RPC_SYNC_MODE
-
-
-#define RPC_getPacket(nPacketSize, pPacket) do { \
- pPacket = TIMM_OSAL_Malloc(nPacketSize, TIMM_OSAL_TRUE, 0, TIMMOSAL_MEM_SEGMENT_INT); \
- RPC_assert(pPacket != NULL, RPC_OMX_ErrorInsufficientResources, \
- "Error Allocating RCM Message Frame"); \
- TIMM_OSAL_Memset(pPacket, 0, nPacketSize); \
- } while(0)
-
-#define RPC_freePacket(pPacket) do { \
- if(pPacket != NULL) TIMM_OSAL_Free(pPacket); \
- } while(0)
-
-#define RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket, nSize) do { \
- status = write(hCtx->fd_omx, pPacket, nPacketSize); \
- RPC_freePacket(pPacket); \
- pPacket = NULL; \
- if(status < 0 && errno == ENXIO) { \
- RPC_assert(0, RPC_OMX_ErrorHardware, "Write failed - Ducati in faulty state"); \
- } \
- if(status != (signed)nPacketSize) { \
- DOMX_ERROR("Write failed returning status = 0x%x",status); \
- RPC_assert(0, RPC_OMX_ErrorUndefined, "Write failed"); \
- } \
- eError = TIMM_OSAL_ReadFromPipe(hCtx->pMsgPipe[nFxnIdx], &pRetPacket, \
- RPC_MSG_SIZE_FOR_PIPE, (TIMM_OSAL_U32 *)(&nSize), TIMM_OSAL_SUSPEND); \
- RPC_assert(eError == TIMM_OSAL_ERR_NONE, eError, \
- "Read failed"); \
- } while(0)
-
-/*Set bit 31 on fxn idx as it is static function*/
-#define RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize) do { \
- pOmxPacket = (struct omx_packet *)pPacket; \
- pData = pOmxPacket->data; \
- pOmxPacket->desc |= OMX_DESC_MSG << OMX_DESC_TYPE_SHIFT; \
- pOmxPacket->msg_id = 0; \
- pOmxPacket->flags = OMX_POOLID_JOBID_DEFAULT; \
- pOmxPacket->fxn_idx = (nFxnIdx | 0x80000000); \
- pOmxPacket->result = 0; \
- pOmxPacket->data_size = nPacketSize; \
- } while(0)
-
-//Async to be checked later - most probably same as sync but without the read
-#if 0
-
-#define RPC_sendPacket_async(HRCM, pPacket, nFxnIdx) do { \
- pPacket->nFxnIdx = nFxnIdx; \
- status = RcmClient_execCmd(HRCM, pPacket); \
- if(status < 0) { \
- RPC_freePacket(HRCM, pPacket); \
- pPacket = NULL; \
- RPC_assert(0, RPC_OMX_RCM_ErrorExecFail, \
- "RcmClient_exec failed"); \
- } \
- } while(0)
-
-#define RPC_checkAsyncErrors(rcmHndl, pPacket) do { \
- status = RcmClient_checkForError(rcmHndl, &pPacket); \
- if(status < 0) { \
- RPC_freePacket(rcmHndl, pPacket); \
- pPacket = NULL; \
- } \
- RPC_assert(status >= 0, RPC_OMX_RCM_ClientFail, \
- "Async error check returned error"); \
- } while(0)
-
-#endif
-/* ===========================================================================*/
-/**
- * @name RPC_GetHandle()
- * @brief Remote invocation stub for OMX_GetHandle
- * @param hRPCCtx [OUT] : The RPC context handle.
- * @param cComponentName [IN] : Name of the component that is to be created
- * on Remote core.
- * @param pAppData [IN] : The AppData passed by the user.
- * @param pCallBacks [IN] : The callback pointers passed by the caller.
- * @param eCompReturn [OUT] : This is return value returned by the remote
- * component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_GetHandle(OMX_HANDLETYPE hRPCCtx,
- OMX_STRING cComponentName, OMX_PTR pAppData,
- OMX_CALLBACKTYPE * pCallBacks, OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData =
- NULL, pRetData = NULL;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = NULL;
- OMX_HANDLETYPE hActualComp = NULL;
- OMX_S32 status = 0;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
- DOMX_DEBUG("RPC_GetHandle: Recieved GetHandle request from %s",
- cComponentName);
-
- nFxnIdx = RPC_OMX_FXN_IDX_GET_HANDLE;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- DOMX_DEBUG("Packing data");
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDCOPYGEN(pData, nPos, cComponentName,
- OMX_MAX_STRINGNAME_SIZE);
- RPC_SETFIELDVALUE(pData, nPos, pAppData, OMX_PTR);
-
- DOMX_DEBUG("Sending data");
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- if (*eCompReturn == OMX_ErrorNone)
- {
- pRetData = ((struct omx_packet *) pRetPacket)->data;
- RPC_GETFIELDVALUE(pRetData, nPos, hComp, OMX_HANDLETYPE);
- DOMX_DEBUG("Remote Handle 0x%x", hComp);
- hCtx->hRemoteHandle = hComp;
- /* The handle received above is used for all communications
- with the remote component but is not the actual component
- handle (it is actually the rpc context handle which
- contains lot of other info). The handle recd. below is the
- actual remote component handle. This is used at present for
- mark buffer implementation since in that case it is not
- feasible to send the context handle */
- RPC_GETFIELDVALUE(pRetData, nPos, hActualComp,
- OMX_HANDLETYPE);
- DOMX_DEBUG("Actual Remote Comp Handle 0x%x", hActualComp);
- hCtx->hActualRemoteCompHandle = hActualComp;
- }
-
- /* Save context information */
- hCtx->pAppData = pAppData;
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_FreeHandle()
- * @brief Remote invocation stub for OMX_FreeHandle
- * @param hRPCCtx [IN] : The RPC context handle.
- * @param eCompReturn [OUT] : Return value returned by the remote component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_FreeHandle(OMX_HANDLETYPE hRPCCtx,
- OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData = NULL;
- OMX_S32 status = 0;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_FREE_HANDLE;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_SetParameter()
- * @brief Remote invocation stub for OMX_SetParameter
- * @param hRPCCtx [IN] : The RPC context handle.
- * @param nParamIndex [IN] : Same as nParamIndex received at the proxy.
- * @param pCompParam [IN] : Same as pCompParam recieved at the proxy.
- * @param eCompReturn [OUT] : Return value returned by the remote component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_SetParameter(OMX_HANDLETYPE hRPCCtx,
- OMX_INDEXTYPE nParamIndex, OMX_PTR pCompParam,
- OMX_PTR pLocBufNeedMap, OMX_U32 nNumOfLocalBuf, OMX_ERRORTYPE * eCompReturn)
-{
-
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData = NULL;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_U32 structSize = 0;
- struct omx_packet *pOmxPacket = NULL;
-
- nFxnIdx = RPC_OMX_FXN_IDX_SET_PARAMETER;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- if (pLocBufNeedMap != NULL && (pLocBufNeedMap - pCompParam) >= 0 ) {
- if (nNumOfLocalBuf == 1) {
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_ONE_BUF,
- RPC_OMX_MAP_INFO_TYPE);
- }
- else if (nNumOfLocalBuf == 2) {
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_TWO_BUF,
- RPC_OMX_MAP_INFO_TYPE);
- }
- nOffset = (pLocBufNeedMap - pCompParam) +
- sizeof(RPC_OMX_MAP_INFO_TYPE) + sizeof(OMX_U32) +
- sizeof(OMX_HANDLETYPE) + sizeof(OMX_INDEXTYPE);
- } else {
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- }
-
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, nParamIndex, OMX_INDEXTYPE);
- structSize = RPC_UTIL_GETSTRUCTSIZE(pCompParam);
- RPC_SETFIELDCOPYGEN(pData, nPos, pCompParam, structSize);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_GetParameter()
- * @brief Remote invocation stub for OMX_GetParameter
- * @param hRPCCtx [IN] : The RPC context handle.
- * @param nParamIndex [IN] : Same as nParamIndex received at the proxy.
- * @param pCompParam [IN] : Same as pCompParam recieved at the proxy.
- * @param eCompReturn [OUT] : Return value returned by the remote component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_GetParameter(OMX_HANDLETYPE hRPCCtx,
- OMX_INDEXTYPE nParamIndex, OMX_PTR pCompParam,
- OMX_PTR pLocBufNeedMap, OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData =
- NULL, pRetData = NULL;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nDataOffset = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_U32 structSize = 0;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_GET_PARAMETER;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- if (pLocBufNeedMap != NULL && (pLocBufNeedMap - pCompParam) >= 0 ) {
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_ONE_BUF,
- RPC_OMX_MAP_INFO_TYPE);
- nOffset = (pLocBufNeedMap - pCompParam) +
- sizeof(RPC_OMX_MAP_INFO_TYPE) + sizeof(OMX_U32) +
- sizeof(OMX_HANDLETYPE) + sizeof(OMX_INDEXTYPE);
- } else {
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- }
-
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, nParamIndex, OMX_INDEXTYPE);
- nDataOffset = nPos;
- structSize = RPC_UTIL_GETSTRUCTSIZE(pCompParam);
- RPC_SETFIELDCOPYGEN(pData, nPos, pCompParam, structSize);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- if (*eCompReturn == OMX_ErrorNone)
- {
- pRetData = ((struct omx_packet *) pRetPacket)->data;
- /*pCompParam is returned in the same location in which it was sent */
- RPC_GETFIELDCOPYGEN(pRetData, nDataOffset, pCompParam,
- structSize);
- }
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- //In case of Error Hardware this packet gets freed in omx_rpc.c
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_SetConfig()
- * @brief Remote invocation stub for OMX_SetConfig
- * @param hRPCCtx [IN] : The RPC context handle.
- * @param nConfigIndex [IN] : Same as nConfigIndex received at the proxy.
- * @param pCompConfig [IN] : Same as pCompConfig recieved at the proxy.
- * @param eCompReturn [OUT] : Return value returned by the remote component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_SetConfig(OMX_HANDLETYPE hRPCCtx,
- OMX_INDEXTYPE nConfigIndex, OMX_PTR pCompConfig,
- OMX_PTR pLocBufNeedMap, OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData = NULL;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_U32 structSize = 0;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_SET_CONFIG;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- if (pLocBufNeedMap != NULL && (pLocBufNeedMap - pCompConfig) >= 0 ) {
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_ONE_BUF,
- RPC_OMX_MAP_INFO_TYPE);
- nOffset = (pLocBufNeedMap - pCompConfig) +
- sizeof(RPC_OMX_MAP_INFO_TYPE) + sizeof(OMX_U32) +
- sizeof(OMX_HANDLETYPE) + sizeof(OMX_INDEXTYPE);
- } else {
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- }
-
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, nConfigIndex, OMX_INDEXTYPE);
- structSize = RPC_UTIL_GETSTRUCTSIZE(pCompConfig);
- RPC_SETFIELDCOPYGEN(pData, nPos, pCompConfig, structSize);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-/* ===========================================================================*/
-/**
- * @name RPC_GetConfig()
- * @brief Remote invocation stub for OMX_GetConfig
- * @param hRPCCtx [IN] : The RPC context handle.
- * @param nConfigIndex [IN] : Same as nConfigIndex received at the proxy.
- * @param pCompConfig [IN] : Same as pCompConfig recieved at the proxy.
- * @param eCompReturn [OUT] : Return value returned by the remote component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_GetConfig(OMX_HANDLETYPE hRPCCtx,
- OMX_INDEXTYPE nConfigIndex, OMX_PTR pCompConfig,
- OMX_PTR pLocBufNeedMap, OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData =
- NULL, pRetData = NULL;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0, nDataOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_U32 structSize = 0;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_GET_CONFIG;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- if (pLocBufNeedMap != NULL && (pLocBufNeedMap - pCompConfig) >= 0 ) {
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_ONE_BUF,
- RPC_OMX_MAP_INFO_TYPE);
- nOffset = (pLocBufNeedMap - pCompConfig) +
- sizeof(RPC_OMX_MAP_INFO_TYPE) + sizeof(OMX_U32) +
- sizeof(OMX_HANDLETYPE) + sizeof(OMX_INDEXTYPE);
- } else {
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- }
-
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, nConfigIndex, OMX_INDEXTYPE);
- nDataOffset = nPos;
- structSize = RPC_UTIL_GETSTRUCTSIZE(pCompConfig);
- RPC_SETFIELDCOPYGEN(pData, nPos, pCompConfig, structSize);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- if (*eCompReturn == RPC_OMX_ErrorNone)
- {
- pRetData = ((struct omx_packet *) pRetPacket)->data;
- /*pCompParam is returned in the same location in which it was sent */
- RPC_GETFIELDCOPYGEN(pRetData, nDataOffset, pCompConfig,
- structSize);
- }
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_SendCommand()
- * @brief Remote invocation stub for OMX_SendCommand
- * @param hRPCCtx [IN] : The RPC context handle.
- * @param eCmd [IN] : Same as eCmd received at the proxy.
- * @param nParam [IN] : Same as nParam recieved at the proxy.
- * @param pCmdData [IN] : Same as pCmdData recieved at the proxy.
- * @param eCompReturn [OUT] : Return value returned by the remote component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_SendCommand(OMX_HANDLETYPE hRPCCtx,
- OMX_COMMANDTYPE eCmd, OMX_U32 nParam, OMX_PTR pCmdData,
- OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData = NULL;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_U32 structSize = 0;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_SEND_CMD;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, eCmd, OMX_COMMANDTYPE);
- RPC_SETFIELDVALUE(pData, nPos, nParam, OMX_U32);
-
- if (pCmdData != NULL && eCmd == OMX_CommandMarkBuffer)
- {
- /*The RPC_UTIL_GETSTRUCTSIZE will not work here since OMX_MARKTYPE structure
- does not have nSize field */
- structSize = sizeof(OMX_MARKTYPE);
- RPC_SETFIELDCOPYGEN(pData, nPos, pCmdData, structSize);
- } else if (pCmdData != NULL)
- {
- structSize = RPC_UTIL_GETSTRUCTSIZE(pCmdData);
- RPC_SETFIELDCOPYGEN(pData, nPos, pCmdData, structSize);
- }
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_GetState()
- * @brief Remote invocation stub for OMX_GetState
- * @param hRPCCtx [IN] : The RPC context handle.
- * @param pState [OUT] : State variable, to be filled in and returned by
- * the remote component..
- * @param eCompReturn [OUT] : Return value returned by the remote component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_GetState(OMX_HANDLETYPE hRPCCtx, OMX_STATETYPE * pState,
- OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData =
- NULL, pRetData = NULL;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_GET_STATE;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- if (*eCompReturn == OMX_ErrorNone)
- {
- pRetData = ((struct omx_packet *) pRetPacket)->data;
- RPC_GETFIELDCOPYTYPE(pRetData, nPos, pState, OMX_STATETYPE);
- }
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_GetComponentVersion()
- * @brief Remote invocation stub for OMX_GetComponentVersion
- * @param hRPCCtx [IN] : The RPC context handle.
- * @param pComponentName [OUT] : Component name, to be filled in and returned
- * by the remote component.
- * @param pComponentVersion [OUT] : Component version info, to be filled in and
- * returned by the remote component.
- * @param pSpecVersion [OUT] : Spec version info, to be filled in and
- * returned by the remote component.
- * @param pComponentUUID [OUT] : Component UUID info, to be filled in and
- * returned by the remote component (optional).
- * @param eCompReturn [OUT] : Return value returned by the remote
- * component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_GetComponentVersion(OMX_HANDLETYPE hRPCCtx,
- OMX_STRING pComponentName, OMX_VERSIONTYPE * pComponentVersion,
- OMX_VERSIONTYPE * pSpecVersion, OMX_UUIDTYPE * pComponentUUID,
- OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData =
- NULL, pRetData = NULL;
- OMX_S32 status = 0;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_GET_VERSION;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- if (*eCompReturn == OMX_ErrorNone)
- {
- pRetData = ((struct omx_packet *) pRetPacket)->data;
- RPC_GETFIELDCOPYGEN(pRetData, nPos, pComponentName,
- OMX_MAX_STRINGNAME_SIZE);
- RPC_GETFIELDCOPYTYPE(pRetData, nPos, pComponentVersion,
- OMX_VERSIONTYPE);
- RPC_GETFIELDCOPYTYPE(pRetData, nPos, pSpecVersion,
- OMX_VERSIONTYPE);
- memcpy(pComponentUUID,(OMX_UUIDTYPE *)( (OMX_U32)pRetData + nPos), sizeof(OMX_UUIDTYPE));
- }
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_GetExtensionIndex()
- * @brief Remote invocation stub for OMX_GetExtensionIndex
- * @param hRPCCtx [IN] : The RPC context handle.
- * @param cParameterName [IN] : The parameter name sent by the user.
- * @param pIndexType [OUT] : Index type returned by the remote component.
- * @param eCompReturn [OUT] : Return value returned by the remote component.
- * @return RPC_OMX_ErrorNone = Successful
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_GetExtensionIndex(OMX_HANDLETYPE hRPCCtx,
- OMX_STRING cParameterName, OMX_INDEXTYPE * pIndexType,
- OMX_ERRORTYPE * eCompReturn)
-{
-
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData =
- NULL, pRetData = NULL;
- OMX_S32 status = 0;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- struct omx_packet *pOmxPacket = NULL;
-
- nFxnIdx = RPC_OMX_FXN_IDX_GET_EXT_INDEX;
-
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDCOPYGEN(pData, nPos, cParameterName,
- OMX_MAX_STRINGNAME_SIZE);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- if (*eCompReturn == OMX_ErrorNone)
- {
- pRetData = ((struct omx_packet *) pRetPacket)->data;
- RPC_GETFIELDCOPYTYPE(pRetData, nPos, pIndexType,
- OMX_INDEXTYPE);
- }
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- return eRPCError;
-
-}
-
-/* ***************************** DATA APIs ******************************** */
-
-/* ===========================================================================*/
-/**
- * @name RPC_AllocateBuffer()
- * @brief Remote invocation stub for OMX_AllcateBuffer()
- * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call)
- * @param *data : Pointer to the RCM message/buffer received
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_AllocateBuffer(OMX_HANDLETYPE hRPCCtx,
- OMX_INOUT OMX_BUFFERHEADERTYPE ** ppBufferHdr, OMX_IN OMX_U32 nPortIndex,
- OMX_U32 * pBufHeaderRemote, OMX_PTR pAppPrivate, OMX_U32 nSizeBytes,
- OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData =
- NULL, pRetData = NULL;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_TI_PLATFORMPRIVATE *pPlatformPrivate = NULL;
- OMX_BUFFERHEADERTYPE *pBufferHdr = *ppBufferHdr;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_ALLOCATE_BUFFER;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, nPortIndex, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pAppPrivate, OMX_PTR);
- RPC_SETFIELDVALUE(pData, nPos, nSizeBytes, OMX_U32);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- if (*eCompReturn == OMX_ErrorNone)
- {
- pRetData = ((struct omx_packet *) pRetPacket)->data;
- RPC_GETFIELDVALUE(pRetData, nPos, *pBufHeaderRemote, OMX_U32);
- //save platform private before overwriting
- pPlatformPrivate = (*ppBufferHdr)->pPlatformPrivate;
- //RPC_GETFIELDCOPYTYPE(pData, nPos, pBufferHdr, OMX_BUFFERHEADERTYPE);
- /*Copying each field of the header separately due to padding issues in
- the buffer header structure */
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nSize, OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nVersion,
- OMX_VERSIONTYPE);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->pBuffer,
- OMX_U8 *);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nAllocLen,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nFilledLen,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nOffset,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->pAppPrivate,
- OMX_PTR);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->pPlatformPrivate, OMX_PTR);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->pInputPortPrivate, OMX_PTR);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->pOutputPortPrivate, OMX_PTR);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->hMarkTargetComponent, OMX_HANDLETYPE);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->pMarkData,
- OMX_PTR);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nTickCount,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nTimeStamp,
- OMX_TICKS);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nFlags,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->nInputPortIndex, OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->nOutputPortIndex, OMX_U32);
-
- (*ppBufferHdr)->pPlatformPrivate = pPlatformPrivate;
-
-#ifdef TILER_BUFF
- DOMX_DEBUG(" Copying plat pvt. ");
- //if (offset != 0)
- {
- RPC_GETFIELDCOPYTYPE(pRetData, nPos,
- (OMX_TI_PLATFORMPRIVATE
- *) ((*ppBufferHdr)->pPlatformPrivate),
- OMX_TI_PLATFORMPRIVATE);
- DOMX_DEBUG("Done copying plat pvt., aux buf = 0x%x",
- ((OMX_TI_PLATFORMPRIVATE
- *) ((*ppBufferHdr)->pPlatformPrivate))->
- pAuxBuf1);
- }
-#endif
-
- } else
- {
- //DOMX_DEBUG("OMX Error received: 0x%x",
- // pRPCMsg->msgHeader.nOMXReturn);
- }
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-/* ===========================================================================*/
-/**
- * @name RPC_UseBuffer()
- * @brief Remote invocation stub for OMX_AllcateBuffer()
- * @param hComp: This is the handle on the Remote core, the proxy will replace
- it's handle with actual OMX Component handle that recides on the specified core
- * @param ppBufferHdr:
- * @param nPortIndex:
- * @param pAppPrivate:
- * @param eCompReturn: This is return value that will be supplied by Proxy to the caller.
- * This is actual return value returned by the Remote component
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_UseBuffer(OMX_HANDLETYPE hRPCCtx,
- OMX_INOUT OMX_BUFFERHEADERTYPE ** ppBufferHdr, OMX_U32 nPortIndex,
- OMX_PTR pAppPrivate, OMX_U32 nSizeBytes, OMX_U8 * pBuffer,
- OMX_U32 * pBufHeaderRemote, OMX_ERRORTYPE * eCompReturn)
-{
-
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData =
- NULL, pRetData = NULL;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_TI_PLATFORMPRIVATE *pPlatformPrivate = NULL;
- OMX_BUFFERHEADERTYPE *pBufferHdr = *ppBufferHdr;
- struct omx_packet *pOmxPacket = NULL;
- RPC_OMX_MAP_INFO_TYPE eMapInfo = RPC_OMX_MAP_INFO_NONE;
- OMX_PTR pMetaDataBuffer = NULL;
- OMX_U32 a =32;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_USE_BUFFER;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- DOMX_DEBUG("Marshaling data");
- /*Buffer mapping required */
- eMapInfo = RPC_OMX_MAP_INFO_ONE_BUF;
- if (((OMX_TI_PLATFORMPRIVATE *) pBufferHdr->pPlatformPrivate)->
- pAuxBuf1 != NULL)
- eMapInfo = RPC_OMX_MAP_INFO_TWO_BUF;
- if (((OMX_TI_PLATFORMPRIVATE *)pBufferHdr->pPlatformPrivate)->
- pMetaDataBuffer != NULL)
- eMapInfo = RPC_OMX_MAP_INFO_THREE_BUF;
-
- /*Offset is the location of the buffer pointer from the start of the data packet */
- nOffset =
- sizeof(RPC_OMX_MAP_INFO_TYPE) + sizeof(OMX_U32) +
- sizeof(OMX_HANDLETYPE) + sizeof(OMX_U32) + sizeof(OMX_PTR) +
- sizeof(OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, eMapInfo, RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, nPortIndex, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pAppPrivate, OMX_PTR);
- RPC_SETFIELDVALUE(pData, nPos, nSizeBytes, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, pBuffer, OMX_U32);
- DOMX_DEBUG("eMapInfo = %x",eMapInfo);
- if (eMapInfo >= RPC_OMX_MAP_INFO_TWO_BUF)
- {
- RPC_SETFIELDVALUE(pData, nPos,
- ((OMX_TI_PLATFORMPRIVATE *) pBufferHdr->
- pPlatformPrivate)->pAuxBuf1, OMX_U32);
- DOMX_DEBUG("UV buffer fd= %d",((OMX_TI_PLATFORMPRIVATE *)pBufferHdr->pPlatformPrivate)->pAuxBuf1);
- }
-
- if (eMapInfo >= RPC_OMX_MAP_INFO_THREE_BUF)
- {
- RPC_SETFIELDVALUE(pData, nPos,
- ((OMX_TI_PLATFORMPRIVATE *) pBufferHdr->
- pPlatformPrivate)->pMetaDataBuffer, OMX_U32);
- DOMX_DEBUG("Metadata buffer = %d",((OMX_TI_PLATFORMPRIVATE *)pBufferHdr->pPlatformPrivate)->pMetaDataBuffer);
- }
-
- DOMX_DEBUG("About to send packet");
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
- DOMX_DEBUG("Remote call returned");
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- if (*eCompReturn == OMX_ErrorNone)
- {
- pRetData = ((struct omx_packet *) pRetPacket)->data;
- RPC_GETFIELDVALUE(pRetData, nPos, *pBufHeaderRemote, OMX_U32);
- //save platform private before overwriting
- pPlatformPrivate = (*ppBufferHdr)->pPlatformPrivate;
-
- /*Copying each field of the header separately due to padding issues in
- the buffer header structure */
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nSize, OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nVersion,
- OMX_VERSIONTYPE);
- /*
- Do not expect buffer pointer - local buffer pointer is already
- present in the local header.
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->pBuffer,
- OMX_U8 *);
- */
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nAllocLen,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nFilledLen,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nOffset,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->pAppPrivate,
- OMX_PTR);
- //Do not expect PlatformPrivate from Ducati
- //RPC_GETFIELDVALUE(pRetData, nPos,pBufferHdr->pPlatformPrivate, OMX_PTR);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->pInputPortPrivate, OMX_PTR);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->pOutputPortPrivate, OMX_PTR);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->hMarkTargetComponent, OMX_HANDLETYPE);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->pMarkData,
- OMX_PTR);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nTickCount,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nTimeStamp,
- OMX_TICKS);
- RPC_GETFIELDVALUE(pRetData, nPos, pBufferHdr->nFlags,
- OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->nInputPortIndex, OMX_U32);
- RPC_GETFIELDVALUE(pRetData, nPos,
- pBufferHdr->nOutputPortIndex, OMX_U32);
-
- //Do not expect PlatformPrivate from Ducati
- /*
- (*ppBufferHdr)->pPlatformPrivate = pPlatformPrivate;
-
- DOMX_DEBUG(" Copying plat pvt. ");
- RPC_GETFIELDCOPYTYPE(pRetData, nPos,
- (OMX_TI_PLATFORMPRIVATE *) ((*ppBufferHdr)->
- pPlatformPrivate), OMX_TI_PLATFORMPRIVATE);*/
-
- /*Resetting size as it might be diff on Ducati due to padding issues */
- pBufferHdr->nSize = sizeof(OMX_BUFFERHEADERTYPE);
- }
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-/* ===========================================================================*/
-/**
- * @name RPC_FreeBuffer()
- * @brief Remote invocation stub for OMX_AllcateBuffer()
- * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call)
- * @param *data : Pointer to the RCM message/buffer received
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_FreeBuffer(OMX_HANDLETYPE hRPCCtx,
- OMX_IN OMX_U32 nPortIndex, OMX_IN OMX_U32 BufHdrRemote, OMX_U32 pBuffer,
- OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData = NULL;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- struct omx_packet *pOmxPacket = NULL;
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_FREE_BUFFER;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- /*Offset is the location of the buffer pointer from the start of the data packet */
- nOffset = sizeof(RPC_OMX_MAP_INFO_TYPE) + sizeof(OMX_U32) +
- sizeof(OMX_HANDLETYPE) + sizeof(OMX_U32) + sizeof(OMX_U32);
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_ONE_BUF,
- RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, nPortIndex, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, BufHdrRemote, OMX_U32);
- /* Buffer is being sent separately only to catch NULL buffer errors
- in PA mode */
- RPC_SETFIELDVALUE(pData, nPos, pBuffer, OMX_U32);
-
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_EmptyThisBuffer()
- * @brief
- * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call)
- * @param *data : Pointer to the RCM message/buffer received
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-
-RPC_OMX_ERRORTYPE RPC_EmptyThisBuffer(OMX_HANDLETYPE hRPCCtx,
- OMX_BUFFERHEADERTYPE * pBufferHdr, OMX_U32 BufHdrRemote,
- OMX_ERRORTYPE * eCompReturn, OMX_BOOL bMapBuffer)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_U8 *pAuxBuf1 = NULL;
- struct omx_packet *pOmxPacket = NULL;
- RPC_OMX_MAP_INFO_TYPE eMapInfo = RPC_OMX_MAP_INFO_NONE;
-#ifdef RPC_SYNC_MODE
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData = NULL;
-#endif
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_EMPTYTHISBUFFER;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- if(bMapBuffer == OMX_TRUE)
- {
- pAuxBuf1 = ((OMX_TI_PLATFORMPRIVATE *) pBufferHdr->pPlatformPrivate)->pAuxBuf1;
- /*Buffer mapping required */
- if (((OMX_TI_PLATFORMPRIVATE *) pBufferHdr->pPlatformPrivate)->pAuxBuf1 == NULL)
- eMapInfo = RPC_OMX_MAP_INFO_ONE_BUF;
- else
- eMapInfo = RPC_OMX_MAP_INFO_TWO_BUF;
- /*Offset is the location of the buffer pointer from the start of the data packet */
- nOffset =
- sizeof(RPC_OMX_MAP_INFO_TYPE) + sizeof(OMX_U32) +
- sizeof(OMX_HANDLETYPE) + sizeof(OMX_BUFFERHEADERTYPE *) + 3*sizeof(OMX_U32) +
- sizeof(OMX_TICKS) + sizeof(OMX_HANDLETYPE) + sizeof(OMX_PTR) + 3*sizeof(OMX_U32);
- }
-
- RPC_SETFIELDVALUE(pData, nPos, eMapInfo, RPC_OMX_MAP_INFO_TYPE);
-
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos,
- (OMX_BUFFERHEADERTYPE *) BufHdrRemote, OMX_BUFFERHEADERTYPE *);
-
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nFilledLen, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nOffset, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nFlags, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nTimeStamp, OMX_TICKS);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->hMarkTargetComponent,
- OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->pMarkData, OMX_PTR);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nAllocLen, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nOutputPortIndex, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nInputPortIndex, OMX_U32);
-
- if(bMapBuffer == OMX_TRUE)
- {
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->pBuffer, OMX_U32);
- if (eMapInfo == RPC_OMX_MAP_INFO_TWO_BUF)
- {
- RPC_SETFIELDVALUE(pData, nPos,
- ((OMX_TI_PLATFORMPRIVATE *) pBufferHdr->pPlatformPrivate)->pAuxBuf1, OMX_U32);
- }
- }
-
- DOMX_DEBUG(" pBufferHdr = %x BufHdrRemote %x", pBufferHdr,
- BufHdrRemote);
-
-#ifdef RPC_SYNC_MODE
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-#else
- RPC_sendPacket_async(hCtx->ClientHndl[RCM_DEFAULT_CLIENT], pPacket,
- nFxnIdx);
- RPC_checkAsyncErrors(hCtx->ClientHndl[RCM_DEFAULT_CLIENT], pPacket);
-
- *eCompReturn = OMX_ErrorNone;
-#endif
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_FillThisBuffer()
- * @brief Remote invocation stub for OMX_AllcateBuffer()
- * @param size : Size of the incoming RCM message (parameter used in the RCM alloc call)
- * @param *data : Pointer to the RCM message/buffer received
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_FillThisBuffer(OMX_HANDLETYPE hRPCCtx,
- OMX_BUFFERHEADERTYPE * pBufferHdr, OMX_U32 BufHdrRemote,
- OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- OMX_U8 *pAuxBuf1 = NULL;
- struct omx_packet *pOmxPacket = NULL;
-#ifdef RPC_SYNC_MODE
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData = NULL;
-#endif
-
- DOMX_ENTER("");
-
- nFxnIdx = RPC_OMX_FXN_IDX_FILLTHISBUFFER;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- /*No buffer mapping required */
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE,
- RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, nOffset, OMX_U32);
-
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos,
- (OMX_BUFFERHEADERTYPE *) BufHdrRemote, OMX_BUFFERHEADERTYPE *);
-
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nFilledLen, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nOffset, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nFlags, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nAllocLen, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nOutputPortIndex, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, pBufferHdr->nInputPortIndex, OMX_U32);
-
- DOMX_DEBUG(" pBufferHdr = %x BufHdrRemote %x", pBufferHdr,
- BufHdrRemote);
-
-#ifdef RPC_SYNC_MODE
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
-#else
- RPC_sendPacket_async(hCtx->ClientHndl[RCM_DEFAULT_CLIENT], pPacket,
- nFxnIdx);
- RPC_checkAsyncErrors(hCtx->ClientHndl[RCM_DEFAULT_CLIENT], pPacket);
-
- *eCompReturn = OMX_ErrorNone;
-#endif
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket && *eCompReturn != OMX_ErrorHardware)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-}
-
-
-/* ***************************** EMPTY APIs ******************************** */
-
-/* ===========================================================================*/
-/**
- * @name EMPTY-STUB
- * @brief
- * @param
- * @return
- *
- */
-/* ===========================================================================*/
-OMX_ERRORTYPE RPC_EventHandler(OMX_HANDLETYPE hRPCCtx, OMX_PTR pAppData,
- OMX_EVENTTYPE eEvent, OMX_U32 nData1, OMX_U32 nData2, OMX_PTR pEventData)
-{
- return RPC_OMX_ErrorNone;
-}
-
-OMX_ERRORTYPE RPC_EmptyBufferDone(OMX_HANDLETYPE hRPCCtx, OMX_PTR pAppData,
- OMX_BUFFERHEADERTYPE * pBuffer)
-{
- return RPC_OMX_ErrorNone;
-}
-
-OMX_ERRORTYPE RPC_FillBufferDone(OMX_HANDLETYPE hRPCCtx, OMX_PTR pAppData,
- OMX_BUFFERHEADERTYPE * pBuffer)
-{
- return RPC_OMX_ErrorNone;
-}
-
-RPC_OMX_ERRORTYPE RPC_ComponentTunnelRequest(OMX_HANDLETYPE hRPCCtx,
- OMX_IN OMX_U32 nPort, OMX_HANDLETYPE hTunneledRemoteHandle,
- OMX_U32 nTunneledPort, OMX_INOUT OMX_TUNNELSETUPTYPE * pTunnelSetup,
- OMX_ERRORTYPE * eCompReturn)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- TIMM_OSAL_ERRORTYPE eError = TIMM_OSAL_ERR_NONE;
- OMX_U32 nPacketSize = RPC_PACKET_SIZE;
- RPC_OMX_CONTEXT *hCtx = hRPCCtx;
- OMX_HANDLETYPE hComp = hCtx->hRemoteHandle;
- RPC_OMX_CONTEXT *hTunneledCtx = hTunneledRemoteHandle;
- OMX_HANDLETYPE hTunneledComp = hTunneledCtx->hRemoteHandle;
- RPC_OMX_FXN_IDX_TYPE nFxnIdx;
- struct omx_packet *pOmxPacket = NULL;
- OMX_U32 nPos = 0, nSize = 0, nOffset = 0;
- OMX_S32 status = 0;
-#ifdef RPC_SYNC_MODE
- TIMM_OSAL_PTR pPacket = NULL, pRetPacket = NULL, pData = NULL;
-#endif
-
- printf(" Entering rpc:domx_stub.c:ComponentTunnelRequest\n");
-
- nFxnIdx = RPC_OMX_FXN_IDX_COMP_TUNNEL_REQUEST;
- RPC_getPacket(nPacketSize, pPacket);
- RPC_initPacket(pPacket, pOmxPacket, pData, nFxnIdx, nPacketSize);
-
- /*Pack the values into a packet*/
- //Marshalled:[>ParentComp|>ParentPort|>TunnelComp|>TunneledPort>TunnelSetup]
- RPC_SETFIELDVALUE(pData, nPos, RPC_OMX_MAP_INFO_NONE, RPC_OMX_MAP_INFO_TYPE);
- RPC_SETFIELDVALUE(pData, nPos, hComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, nPort, OMX_U32);
- RPC_SETFIELDVALUE(pData, nPos, hTunneledComp, OMX_HANDLETYPE);
- RPC_SETFIELDVALUE(pData, nPos, nTunneledPort, OMX_U32);
- printf("\n after RPC_sendPacket_sync");
- RPC_sendPacket_sync(hCtx, pPacket, nPacketSize, nFxnIdx, pRetPacket,
- nSize);
-
- printf("\n after RPC_sendPacket_sync: *eCompReturn : 0x%x\n", (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result));
- *eCompReturn = (OMX_ERRORTYPE) (((struct omx_packet *) pRetPacket)->result);
-
- EXIT:
- if (pPacket)
- RPC_freePacket(pPacket);
- if (pRetPacket)
- RPC_freePacket(pRetPacket);
-
- DOMX_EXIT("");
- return eRPCError;
-
-}
diff --git a/domx/domx/omx_rpc/src/omx_rpc_utils.c b/domx/domx/omx_rpc/src/omx_rpc_utils.c
deleted file mode 100755
index b1e47a8..0000000
--- a/domx/domx/omx_rpc/src/omx_rpc_utils.c
+++ /dev/null
@@ -1,446 +0,0 @@
-/*
- * Copyright (c) 2010, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/**
- * @file omx_rpc_utils.c
- * This file contains methods that provides the functionality for
- * the OpenMAX1.1 DOMX Framework RPC.
- *
- * @path \WTSD_DucatiMMSW\framework\domx\omx_rpc\src
- *
- * @rev 1.0
- */
-
-/*==============================================================
- *! Revision History
- *! ============================
- *! 29-Mar-2010 Abhishek Ranka : Revamped DOMX implementation
- *!
- *! 19-August-2009 B Ravi Kiran ravi.kiran@ti.com: Initial Version
- *================================================================*/
-/******************************************************************
- * INCLUDE FILES
- ******************************************************************/
-#include <string.h>
-#include <stdio.h>
-
-#include "omx_rpc.h"
-#include "omx_rpc_internal.h"
-#include "omx_rpc_utils.h"
-#include <MultiProc.h>
-#include <ProcMgr.h>
-
-extern char rcmservertable[MAX_PROC][MAX_SERVER_NAME_LENGTH];
-extern char Core_Array[MAX_PROC][MAX_CORENAME_LENGTH];
-
-/* ===========================================================================*/
-/**
- * @name EMPTY-STUB
- * @brief
- * @param
- * @return
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_UTIL_GetTargetServerName(OMX_STRING ComponentName,
- OMX_STRING ServerName)
-{
- OMX_U8 count = 0;
- OMX_U8 i = 0;
- OMX_U8 servertable_idx = 0;
- OMX_STRING str;
- char Core[MAX_CORENAME_LENGTH];
-
- DOMX_ENTER("");
- DOMX_DEBUG(" Calling Component Name %s", ComponentName);
-
- while (*ComponentName != '\0')
- {
- if (*ComponentName == '.')
- {
- count++;
- if (count == 2)
- {
- ComponentName++;
- str = ComponentName;
-
- while (*str != '.')
- {
- Core[i] = *str;
- i++;
- str++;
- }
- Core[i] = '\0';
- break;
- }
-
- }
-
- ComponentName++;
- }
-
- DOMX_DEBUG(" CORE NAME RECOVERED: %s", Core);
- DOMX_DEBUG
- ("____________________________________________________________");
- DOMX_DEBUG("Recovering Server Table Index");
- for (i = 0; i < CORE_MAX; i++)
- {
-
- if (strcmp(Core, Core_Array[i]) == 0)
- {
- servertable_idx = i;
- DOMX_DEBUG("Recovered Server table index = %d", i);
- break;
- }
- }
- strncpy(ServerName, (OMX_STRING) rcmservertable[servertable_idx],
- MAX_SERVER_NAME_LENGTH);
- DOMX_DEBUG(" ServerName recovered = %s", ServerName);
-
- return RPC_OMX_ErrorNone;
-}
-
-/* ===========================================================================*/
-/**
- * @name EMPTY-STUB
- * @brief
- * @param
- * @return
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_UTIL_GetLocalServerName(OMX_STRING ComponentName,
- OMX_STRING * ServerName)
-{
-/* Implementation returns only current core ID - But this is a place holder to abstract out the
-default server and other additional servers available on the current core. This additional servers
-should be available in the RPC global that is indexed using the calling component name*/
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- OMX_U8 servertable_idx = 0;
-
- servertable_idx = MultiProc_getId(NULL); //This can be replace with the mechanism to obtain new addition rcm servers
- if (MultiProc_INVALIDID != servertable_idx)
- *ServerName = rcmservertable[servertable_idx];
- else
- eRPCError = RPC_OMX_ErrorUndefined;
-
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_UTIL_GenerateLocalServerName()
- * @brief This function generates a server name to be used while creating the
- * RCM server. The name is based on the pid so that eacj process gets a
- * unique server name.
- * @param cServerName - This is filled in and returned with a valid value.
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_UTIL_GenerateLocalServerName(OMX_STRING cServerName)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- OMX_S32 pid = 0;
- OMX_U32 nProcId = 0;
-
- pid = getpid();
- /*Using pid as the server name, thus limiting to only 1 server per process.
- This limitaion is partly enforce by syslink as well since max size of server
- name is 32 so only pid can fit into the name */
- sprintf(cServerName, "%ld", pid);
-
- nProcId = MultiProc_getId(NULL);
- if (MultiProc_INVALIDID != nProcId)
- /*Fill the server table with the newly generated name */
- strncpy(rcmservertable[nProcId], cServerName,
- MAX_SERVER_NAME_LENGTH);
- else
- eRPCError = RPC_OMX_ErrorUndefined;
-
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_UTIL_GetTargetCore()
- * @brief This function gets the target core id by parsing the component name.
- * It is assumed that component names follow the convention
- * <OMX>.<Company Name>.<Core Name>.<Domain>.<Component Details> with
- * all characters in upper case for e.g. OMX.TI.DUCATI1.VIDEO.H264E
- * @param cComponentName - Name of the component.
- * @param nCoreId - Core ID, this is filled in and returned.
- * @return RPC_OMX_ErrorNone = Successful
- * @sa TBD
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_UTIL_GetTargetCore(OMX_STRING cComponentName,
- OMX_U32 * nCoreId)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- OMX_S8 cCoreName[MAX_SERVER_NAME_LENGTH] = { 0 };
- OMX_S32 ret = 0;
- OMX_U32 i = 0;
-
- ret =
- sscanf(cComponentName, "%*[^'.'].%*[^'.'].%[^'.'].%*s",
- cCoreName);
- RPC_assert(ret == 1, RPC_OMX_ErrorBadParameter,
- "Incorrect component name");
-
- for (i = 0; i < CORE_MAX; i++)
- {
- if (strcmp((char *)cCoreName, Core_Array[i]) == 0)
- break;
- }
- RPC_assert(i < CORE_MAX, RPC_OMX_ErrorBadParameter,
- "Unknown core name");
- *nCoreId = i;
-
- EXIT:
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name EMPTY-STUB
- * @brief the Api creates the RCM client on the target core(where the component sits).
-This happens in the context of the Default RCM server on the target core.
-The RCM server name to connect for this client will be the default RCM server on the calling core.
-This can be provided as an option as the name that you pass in the string server is used as the RCM server name
-input to the client create call.
-@Default_RcmServer - The default rcm server on the target core
-@Server - The name of the server on the calling core to connect to
- * @param
- * @return
- *
- */
-/* ===========================================================================*/
-/*
-RPC_OMX_ERRORTYPE RPC_GetTargetClient(OMX_STRING Default_RcmServer, OMX_STRING server, rcmhHndl)
-{
-
-
-}
-*/
-
-/* ===========================================================================*/
-/**
- * @name EMPTY-STUB
- * @brief
- * @param
- * @return
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_MapBuffer(OMX_U32 mappedBuffer)
-{
- DOMX_ENTER("");
- DOMX_DEBUG("Empty implementation ");
- //PlaceHolder for Mapping Buffers - Cuurently no implementation here
- return RPC_OMX_ErrorNone;
-}
-
-/* ===========================================================================*/
-/**
- * @name EMPTY-STUB
- * @brief
- * @param
- * @return
- *
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_UnMapBuffer(OMX_U32 mappedBuffer)
-{
- DOMX_ENTER("");
- DOMX_DEBUG("Empty implementation ");
- //PlaceHolder for UnMapping Buffers - Cuurently no implementation here
- return RPC_OMX_ErrorNone;
-}
-
-/* ===========================================================================*/
-/**
- * @name RPC_FlushBuffer
- * @brief Used to flush buffers from cache to memory. Used when buffers are
- * being transferred across processor boundaries.
- * @param pBuffer : Pointer to the data that has to be flushed.
- * size : Size of the data to be flushed.
- * nTargetCoreId : Core to which buffer is being transferred.
- * @return RPC_OMX_ErrorNone : Success.
- * RPC_OMX_ErrorUndefined : Flush operation failed.
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_FlushBuffer(OMX_U8 * pBuffer, OMX_U32 size,
- OMX_U32 nTargetCoreId)
-{
- DOMX_ENTER("");
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- OMX_S32 nStatus = 0;
-
- DOMX_DEBUG("About to flush %d bytes", size);
- nStatus = ProcMgr_flushMemory((OMX_PTR) pBuffer, size,
- (ProcMgr_ProcId) nTargetCoreId);
- RPC_assert(nStatus >= 0, RPC_OMX_ErrorUndefined,
- "Cache flush failed");
-
- EXIT:
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_InvalidateBuffer
- * @brief Used to flush buffers from cache to memory. Used when buffers are
- * being transferred across processor boundaries.
- * @param pBuffer : Pointer to the data that has to be flushed.
- * size : Size of the data to be flushed.
- * nTargetCoreId : Core to which buffer is being transferred.
- * @return RPC_OMX_ErrorNone : Success.
- * RPC_OMX_ErrorUndefined : Invalidate operation failed.
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_InvalidateBuffer(OMX_U8 * pBuffer, OMX_U32 size,
- OMX_U32 nTargetCoreId)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- OMX_S32 nStatus = 0;
- DOMX_ENTER("");
-
- DOMX_DEBUG("About to invalidate %d bytes", size);
- nStatus = ProcMgr_invalidateMemory((OMX_PTR) pBuffer, size,
- (ProcMgr_ProcId) nTargetCoreId);
- RPC_assert(nStatus >= 0, RPC_OMX_ErrorUndefined,
- "Cache invalidate failed");
-
- EXIT:
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_Util_AcquireJobId
- * @brief Used to get a new job id from syslink - all messages sent with the
- * same job id will be processed serially. Messages with different job id
- * will be processed parallely.
- * @param hRPCCtx : RPC context handle.
- * pJobId : Pointer to job id - this'll be filled in and returned.
- * @return RPC_OMX_ErrorNone : Success.
- * Any other : Operation failed.
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_Util_AcquireJobId(RPC_OMX_CONTEXT * hRPCCtx,
- OMX_U16 * pJobId)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- OMX_S32 nStatus = 0;
- DOMX_ENTER("");
-
- nStatus =
- RcmClient_acquireJobId(hRPCCtx->ClientHndl[RCM_DEFAULT_CLIENT],
- pJobId);
- RPC_assert(nStatus >= 0, RPC_OMX_ErrorUndefined,
- "Acquire job id failed");
-
- EXIT:
- DOMX_EXIT("eRPCError = %d", eRPCError);
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_Util_ReleaseJobId
- * @brief Used to release job id to syslink. Once release, this job id cannot be
- * reused.
- * @param hRPCCtx : RPC context handle.
- * nJobId : Job ID to be released.
- * @return RPC_OMX_ErrorNone : Success.
- * Any other : Operation failed.
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_Util_ReleaseJobId(RPC_OMX_CONTEXT * hRPCCtx,
- OMX_U16 nJobId)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- OMX_S32 nStatus = 0;
- DOMX_ENTER("");
-
- nStatus =
- RcmClient_releaseJobId(hRPCCtx->ClientHndl[RCM_DEFAULT_CLIENT],
- nJobId);
- RPC_assert(nStatus >= 0, RPC_OMX_ErrorUndefined,
- "Release job id failed");
-
- EXIT:
- DOMX_EXIT("eRPCError = %d", eRPCError);
- return eRPCError;
-}
-
-
-
-/* ===========================================================================*/
-/**
- * @name RPC_Util_GetPoolId
- * @brief Used to get pool id. Messages sent with same pool id will get
- * processed at the same priority on remote core.
- * @param hRPCCtx : RPC context handle.
- * pPoolId : Pointer to pool id - this'll be filled in and
- * returned.
- * @return RPC_OMX_ErrorNone : Success.
- * Any other : Operation failed.
- */
-/* ===========================================================================*/
-RPC_OMX_ERRORTYPE RPC_Util_GetPoolId(RPC_OMX_CONTEXT * hRPCCtx,
- OMX_U16 * pPoolId)
-{
- RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone;
- DOMX_ENTER("");
-
- *pPoolId = 0x8001;
-
-//EXIT:
- DOMX_EXIT("eRPCError = %d", eRPCError);
- return eRPCError;
-}