From Kerrighed

Contents

__rpc_register

int __rpc_register(enum rpcid rpcid,
		   enum rpc_target rpc_target,
		   enum rpc_handler rpc_handler,
		   struct rpc_synchro *rpc_synchro,
		   void* _h);

Register a new RPCID and set the main properties of this new RPC:

rpc_begin_m

struct rpc_desc* rpc_begin_m(enum rpcid rpcid,
			     kerrighed_nodes_t* nodes);

Start a new RPC (rpcid) with a set of nodes (nodes).

This function provide the descriptor needed in order to use the RPC.

rpc_pack

int rpc_pack(struct rpc_desc* desc, int flags, void* data, size_t size);
  • client side

Send data to all the servers (regarding flags).

  • server side

Return data to the client (regarding flags).

rpc_unpack

int rpc_unpack(struct rpc_desc* desc, int flags, void* data, size_t size);
  • client side
    • One server in the RPC: read data sent by the server (regarding flags).
    • Several servers in the RPC: UNDETERMINED.
  • server side

Read data sent by the client (regarding flags).

rpc_unpack_from

int rpc_unpack_from(struct rpc_desc* desc, kerrighed_node_t node,
		    int flags, void* data, size_t size);
  • client side

Read data sent by the server node (regarding flags).

  • server side

UNDETERMINED

rpc_wait_return

kerrighed_node_t rpc_wait_return(struct rpc_desc* desc, int* value);

rpc_wait_return_from

int rpc_wait_return_from(struct rpc_desc* desc, kerrighed_node_t node);

rpc_wait_all

int rpc_wait_all(struct rpc_desc *desc);

rpc_end

int rpc_end(struct rpc_desc *rpc_desc, int flags);

rpc_signal

int rpc_signal(struct rpc_desc* desc, int sigid);