lib/include/rpcChannel.h File Reference

#include <rpc/rpc.h>
#include "vm_basic_types.h"
#include "rpcin.h"

Include dependency graph for rpcChannel.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  RpcChannelCallback
struct  RpcChannel

Typedefs

typedef Bool(* RpcChannelStartFn )(struct RpcChannel *)
typedef void(* RpcChannelStopFn )(struct RpcChannel *)
typedef void(* RpcChannelShutdownFn )(struct RpcChannel *)
typedef Bool(* RpcChannelSendFn )(struct RpcChannel *, char *data, size_t dataLen, char **result, size_t *resultLen)
typedef void(* RpcChannelResetCb )(struct RpcChannel *chan, gboolean success, gpointer data)

Functions

Bool RpcChannel_BuildXdrCommand (const char *cmd, void *xdrProc, void *xdrData, char **result, size_t *resultLen)
gboolean RpcChannel_Destroy (RpcChannel *chan)
Bool RpcChannel_Dispatch (RpcInData *data)
void RpcChannel_Setup (RpcChannel *chan, const gchar *appName, GMainContext *mainCtx, gpointer appCtx, RpcChannelResetCb resetCb, gpointer resetData)
void RpcChannel_RegisterCallback (RpcChannel *chan, RpcChannelCallback *rpc)
void RpcChannel_UnregisterCallback (RpcChannel *chan, RpcChannelCallback *rpc)
RpcChannelRpcChannel_NewBackdoorChannel (GMainContext *mainCtx)


Detailed Description

Defines the interface between applications and the underlying GuestRPC channel. The goal is to have an abstraction so applications can run over the backdoor, VMCI sockets or TCP/IP sockets by just picking up the desired channel at runtime, without the need to modify the code.

For this reason, the behavior of all channels is modeled after the RpcIn channel currently used in Tools, so the socket-based channels won't provide much better functionality than what the backdoor provides (aside from being interrupt-based rather than poll-based).


Generated on Sat Jul 25 02:17:20 2009 for open-vm-tools 2009.06.18 by  doxygen 1.5.8