rpc_$register Library Routine

Purpose

Registers an interface at a server.

Syntax

void rpc_$register ( if_spec,  epv,  status)
rpc_$if_spec_t *if_spec;
rpc_$epv_t epv;
status_$t *status;

Description

The rpc_$register routine registers an interface with the Remote Procedure Call (RPC) runtime library. After an interface is registered, the RPC runtime library passes requests for that interface to the server.

You can call rpc_$register multiple times with the same interface (for example, from various subroutines of the same server), but each call must specify the same entry point vector (EPV). Each registration increments a reference count for the registered interface. An equal number of calls to the rpc_$unregister routine are then required to unregister the interface.

Parameters

Input

Item Description
if_spec Points to the interface being registered.
epv Specifies the EPV for the operations in the interface.

Output

Item Description
status Points to the completion status.
Note: This routine is used by servers only.

Return Values

The rpc_$register routine fails if one or more of the following is true:

Value Description
rpc_$too_many_ifs The maximum number of interfaces is already registered with the server.
rpc_$illegal_register You are trying to register an interface that is already registered, and you are using an EPV different from the one used when the interface was first registered.

Examples

To register a bank interface with the bank server host's RPC runtime library, enter:

rpc_$register(&bank_$if_spec, bank_$server_epv, &st);