ledger_get_remote


Function - Return send right to specified host's remote ledger port.

SYNOPSIS

kern_return_t   ledger_get_remote
                (ledger_port_t                           ledger,
                 host_t                               host_name,
                 ledger                            service_port);


kern_return_t   ledger_return_remote
                (ledger_port_t                           ledger,
                 host_t                               host_name,
                 ledger                            service_port);

PARAMETERS

ledger
[in ledger send right] The ledger whose service port is desired.

host_name
[in host-name send right] The name for the host requesting the service port.

service_port
[out ledger-service send right] The ledger service port.

DESCRIPTION

The ledger_get_remote function returns the remote ledger service port for the ledger

NOTES

This interface is not implemented in OSF/1 R1.3.

This mechanism supports distributed resource ledgers in the following way:

With ledger_set_remote, a ledger is assigned a remote ledger service port.
This ledger is used as the ledger for a create operation. If the ledger is local to the target kernel, all is fine.
For a non-local creation, the target kernel sees that the supplied ledger is not a local ledger. The kernel sends a ledger_get_remote message to it, including the host name.
The (remote) ledger receives this message, ignores the host name and returns the remote ledger service port.
Assuming that the remote ledger service port is not a local ledger, the kernel sends a ledger_get_remote message to this service port.
A server receives this request (with the ledger_return_remote server interface) and uses the identity of the service port as well as the host name of the target kernel to locate or create a suitable ledger on that kernel.
The port for a ledger on the target kernel is sent to that kernel and used.

RETURN VALUES

Only generic errors apply.

RELATED INFORMATION

Functions: ledger_create, ledger_set_remote.