- get or free interconnect topology
cc [ flag... ] file... –lrsm [ library... ] #include <rsmapi.h> int rsm_get_interconnect_topology(rsm_topology_t **topology_data);
void rsm_free_interconnect_topology(rsm_topology_t *topology_data);
The rsm_get_interconnect_topology(3RSM) and rsm_free_interconnect_topology(3RSM) functions provide for access to the interconnect controller and connection data. The key interconnect data required for export and import operations includes the respective cluster nodeids and the controller names. To facilitate applications in the establishment of proper and efficient export and import policies, a delineation of the interconnect topology is provided by this interface. The data provided includes local nodeid, local controller name, its hardware address, and remote connection specification for each local controller. An application component exporting memory can thus find the set of existing local controllers and correctly assign controllers for the creation and publishing of segments. Exported segments may also be efficiently distributed over the set of controllers consistent with the hardware interconnect and application software. An application component which is to import memory must be informed of the segment id(s) and controller(s) used in the exporting of memory, this needs to be done using some out-of-band mechanism. The topology data structures are defined in the <rsmapi.h> header.
The rsm_get_interconnect_topology() returns a pointer to the topology data in a location specified by the topology_data argument.
The rsm_free_interconnect_topology() frees the resources allocated by rsm_get_interconnect_topology().
Upon successful completion, rsm_get_interconnect_topology() returns 0. Otherwise, an error value is returned to indicate the error.
The rsm_get_interconnect_topology() function can return the following errors:
Invalid topology pointer.
See attributes(5) for descriptions of the following attributes: