root/mpich2/trunk/src/pm/hydra/rmk/src/rmki_init.c.in @ 4887

Revision 4887, 1.4 KB (checked in by balaji, 5 months ago)

Warning stomp.

Line 
1/* -*- Mode: C; c-basic-offset:4 ; -*- */
2/*
3 *  (C) 2008 by Argonne National Laboratory.
4 *      See COPYRIGHT in top-level directory.
5 */
6
7#include "hydra_base.h"
8#include "rmki.h"
9#include "rmku.h"
10#include "bsci.h"
11
12/* initialize to avoid common symbols */
13struct HYD_RMKI_fns HYD_RMKI_fns = { 0 };
14
15const char *HYD_RMKI_comp_array[] = { @hydra_rmk_name_array@ };
16HYD_Status(*HYD_RMKI_comp_init[])(void) = { @hydra_rmk_init_array@ };
17
18HYD_Status HYD_RMKI_init(char *rmk)
19{
20    int i;
21    HYD_Status status = HYD_SUCCESS;
22
23    HYDU_FUNC_ENTER();
24
25    HYD_RMKI_fns.query_node_list = NULL;
26
27    for (i = 0; HYD_RMKI_comp_array[i]; i++) {
28        if (!strcmp(rmk, HYD_RMKI_comp_array[i])) {
29            status = (*HYD_RMKI_comp_init[i])();
30            HYDU_ERR_POP(status, "RMK device returned error initializing\n");
31            break;
32        }
33    }
34
35    if (HYD_RMKI_comp_array[i] == NULL)
36        HYDU_ERR_SETANDJUMP1(status, HYD_INTERNAL_ERROR,
37                             "unrecognized resource management kernel: %s\n", rmk);
38
39    if (HYD_RMKI_fns.query_node_list == NULL)
40        HYD_RMKI_fns.query_node_list = HYD_RMKU_query_node_list;
41
42    status = HYD_BSCI_init(HYD_handle.bootstrap, HYD_handle.bootstrap_exec, HYD_handle.enablex,
43                           HYD_handle.debug);
44    HYDU_ERR_POP(status, "unable to initialize the bootstrap server\n");
45
46  fn_exit:
47    HYDU_FUNC_EXIT();
48    return status;
49
50  fn_fail:
51    goto fn_exit;
52}
Note: See TracBrowser for help on using the browser.