IPC API  3.10.01.11
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
MmRpc.h File Reference

Detailed Description

Multi-Media derived Remote Procedure Call.

Note:
MmRpc is currently only available for Linux and QNX.
#include <stddef.h>
#include <stdint.h>
Include dependency graph for MmRpc.h:

Go to the source code of this file.

Data Structures

struct  MmRpc_Param
 MmRpc_Param type. More...
struct  MmRpc_Xlt
struct  MmRpc_FxnCtx
 Function call context structure. More...
union  MmRpc_BufDesc
 Memory buffer descriptor. More...
struct  MmRpc_Params
 Instance create parameters. More...

Macros

#define MmRpc_S_SUCCESS   (0)
 Operation is successful.
#define MmRpc_E_FAIL   (-1)
 Operation failed.
#define MmRpc_E_INVALIDPARAM   (-2)
 Invalid parameter type.
#define MmRpc_E_NOMEM   (-3)
 Memory allocation failed.
#define MmRpc_E_SYS   (-4)
 A system call failed.
#define MmRpc_MAX_PARAMS   (10)
 Size of parameter array in function context structure.
#define MmRpc_MAX_TRANSLATIONS   (1024)
 Maximum size of translation array in function context structure.
#define MmRpc_OFFSET(base, field)   ((unsigned int)(field)-(unsigned int)(base))
 Macro for computing offset to a field of a structure.

Typedefs

typedef struct MmRpc_Object * MmRpc_Handle
 MmRpc_Handle type.

Enumerations

enum  MmRpc_ParamType {
  MmRpc_ParamType_Scalar = 1,
  MmRpc_ParamType_Ptr,
  MmRpc_ParamType_OffPtr,
  MmRpc_ParamType_Elem
}
 MmRpc_ParamType enum. More...
enum  MmRpc_BufType {
  MmRpc_BufType_Handle,
  MmRpc_BufType_Ptr
}
 Memory buffer types. More...

Functions

int MmRpc_call (MmRpc_Handle handle, MmRpc_FxnCtx *ctx, int32_t *ret)
 Invoke a remote procedure call.
int MmRpc_create (const char *service, const MmRpc_Params *params, MmRpc_Handle *handlPtr)
 Create an MmRpc instance.
int MmRpc_delete (MmRpc_Handle *handlePtr)
 Delete an MmRpc instance.
int MmRpc_release (MmRpc_Handle handle, MmRpc_BufType type, int num, MmRpc_BufDesc *desc)
 Release buffers which were declared in use.
int MmRpc_use (MmRpc_Handle handle, MmRpc_BufType type, int num, MmRpc_BufDesc *desc)
 Declare the use of the given buffers.
void MmRpc_Params_init (MmRpc_Params *params)
 Initialize the instance create parameter structure.

Macro Definition Documentation

#define MmRpc_S_SUCCESS   (0)

Operation is successful.

#define MmRpc_E_FAIL   (-1)

Operation failed.

#define MmRpc_E_INVALIDPARAM   (-2)

Invalid parameter type.

#define MmRpc_E_NOMEM   (-3)

Memory allocation failed.

#define MmRpc_E_SYS   (-4)

A system call failed.

#define MmRpc_MAX_PARAMS   (10)

Size of parameter array in function context structure.

#define MmRpc_MAX_TRANSLATIONS   (1024)

Maximum size of translation array in function context structure.

#define MmRpc_OFFSET (   base,
  field 
)    ((unsigned int)(field)-(unsigned int)(base))

Macro for computing offset to a field of a structure.

struct foobar {
int a;
int *p;
};
struct foobar *sp = ...;
offset = MmRpc_OFFSET(sp, &sp->p);
struct foobar st = ...;
offset = MmRpc_OFFSET(&st, &st.p);

Typedef Documentation

typedef struct MmRpc_Object* MmRpc_Handle

MmRpc_Handle type.


Enumeration Type Documentation

MmRpc_ParamType enum.

Enumerator:
MmRpc_ParamType_Scalar 

pass by value

MmRpc_ParamType_Ptr 

data pointer

MmRpc_ParamType_OffPtr 

buffer at offset in memory block

MmRpc_ParamType_Elem 

array element

Memory buffer types.

Remarks:
Not all operating systems support all buffer types.
Enumerator:
MmRpc_BufType_Handle 

memory allocator handle

MmRpc_BufType_Ptr 

buffer address


Function Documentation

int MmRpc_call ( MmRpc_Handle  handle,
MmRpc_FxnCtx ctx,
int32_t *  ret 
)

Invoke a remote procedure call.

int MmRpc_create ( const char *  service,
const MmRpc_Params params,
MmRpc_Handle handlPtr 
)

Create an MmRpc instance.

int MmRpc_delete ( MmRpc_Handle handlePtr)

Delete an MmRpc instance.

int MmRpc_release ( MmRpc_Handle  handle,
MmRpc_BufType  type,
int  num,
MmRpc_BufDesc desc 
)

Release buffers which were declared in use.

Parameters:
[in]typebuffer descriptor type
[in]numnumber of elements in desc array
[in]descpointer to array of buffer descriptors
Remarks:
When the remote processor no longer needs a reference to a buffer, calling MmRpc_release() will release the buffer and any associated resources.
Return values:
MmRpc_S_SUCCESS
MmRpc_E_INVALIDPARAM
MmRpc_E_NOMEM
MmRpc_E_SYS
See also:
MmRpc_use()
int MmRpc_use ( MmRpc_Handle  handle,
MmRpc_BufType  type,
int  num,
MmRpc_BufDesc desc 
)

Declare the use of the given buffers.

Parameters:
[in]typebuffer descriptor type
[in]numnumber of elements in desc array
[in]descpointer to array of buffer descriptors
Remarks:
When using MmRpc_call() to invoke remote function calls, any referenced buffers will be made available to the remote processor only for the duration of the remote function call. If the remote processor maintains a reference to the buffer across multiple invocations of MmRpc_call(), then the application must declare the buffer "in use". This will make the buffer persistent.
The application must release the buffer when it is no longer needed.
#include <ti/ipc/mm/MmRpc.h>
MmRpc_BufDesc desc[2];
desc[0].handle = fd1;
desc[1].handle = fd2;
Return values:
MmRpc_S_SUCCESS
MmRpc_E_INVALIDPARAM
MmRpc_E_NOMEM
MmRpc_E_SYS
See also:
MmRpc_release()
void MmRpc_Params_init ( MmRpc_Params params)

Initialize the instance create parameter structure.

Copyright 2013, Texas Instruments Incorporated