Distribution Initialization

All distributions are registered during PVFS2 initialization. Although there has been some discussion about having distributions function as loadable modules, there is currently no support for that feature within PVFS2. All available distributions are loaded into a registration table during initialization and registered with the distribution name as the key. When a user then wishes to create a distribution later, a lookup can be performed with the distribution name, and a copy of the registered distribution is returned. The registered distribution itself is never actually modified after registration. The only opportunity to modify the registered distribution is during the registration itself. Each distribution implements a callback method named register_init that is called during registration. The function signature is described completely below, for now we merely want to note that this function is called exactly once (at registration time), and it is generally used by distributions to setup the distribution parameter strings (for use in PVFS_sys_dist_setparam), and to set default parameter values.

Distribution initialization is performed by the function PINT_dist_initialize() in pint-dist-utils.h. In order to add a new distribution to the table of registered distributions, it will be neccesary to modify this function.