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