X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lnet%2Futils%2Fgmlndnid.c;h=7fbe8ef3e583993a39ce48c84b619b9720c1cd1f;hp=c4dbe2554bfab4e588ccb15f25fd2ead8124313e;hb=7e80985d02e71f02b9a99f91d6eb0e154ba56c85;hpb=a73e1e89416310a7f9da19bfbb290ff2fed22df3 diff --git a/lnet/utils/gmlndnid.c b/lnet/utils/gmlndnid.c index c4dbe25..7fbe8ef 100644 --- a/lnet/utils/gmlndnid.c +++ b/lnet/utils/gmlndnid.c @@ -44,135 +44,112 @@ */ #define GM_UNIT 0 -/* - * prototypes - */ -unsigned u_getgmnid(char *name, int get_local_id); -void usage(char *prg, int h); - -int main(int argc, char **argv) +void +usage(char *prg, int h) { - unsigned int nid = 0; - char *name = NULL; - int c; - int get_local_id = 0; - - - - while ((c = getopt(argc, argv, "n:lh")) != -1) { - switch(c) { - case('n'): - if (get_local_id) { - usage(argv[0], 0); - exit(-1); - } - name = optarg; - break; - case('h'): - usage(argv[0], 1); - exit(-1); - break; - case('l'): - if (name) { - usage(argv[0], 0); - exit(-1); - } - get_local_id = 1; - break; - default: - usage(argv[0], 0); - exit(-1); - } - } - - if (!name && !get_local_id) { - usage(argv[0], 0); - exit(-1); - } - - nid = u_getgmnid(name, get_local_id); - printf("%u\n", nid); - exit(0); + fprintf(stderr, "usage %s -n hostname | -l | -h\n", prg); + if (h) { + printf("\nGet Myrinet Global network ids for specified host\n" + "-l gets network id for local host\n"); + } } unsigned u_getgmnid(char *name, int get_local_id) { - struct gm_port *gm_port; - int gm_port_id = 2; - gm_status_t gm_status = GM_SUCCESS; + struct gm_port *gm_port; + int gm_port_id = 2; + gm_status_t gm_status = GM_SUCCESS; + unsigned global_nid = 0, local_nid = 0; /* gm ids never 0 */ - /* - * gm global or local ids are never 0 - */ - unsigned global_nid = 0, local_nid = 0; + gm_status = gm_init(); + if (gm_status != GM_SUCCESS) { + fprintf(stderr, "gm_init: %s\n", gm_strerror(gm_status)); + return(0); + } - gm_status = gm_init(); - if (gm_status != GM_SUCCESS) { - fprintf(stderr, "gm_init :: %s\n", gm_strerror(gm_status)); - return(0); - } - - gm_status = gm_open(&gm_port, GM_UNIT, gm_port_id, - "gmnalnid", GM_API_VERSION); + gm_status = gm_open(&gm_port, GM_UNIT, gm_port_id, "gmnalnid", + GM_API_VERSION); + if (gm_status != GM_SUCCESS) { + /* Couldn't open port 2, try 4 5 6 7 */ + for (gm_port_id = 4; gm_port_id < 8; gm_port_id++) { + gm_status = gm_open(&gm_port, GM_UNIT, gm_port_id, + "gmnalnid", GM_API_VERSION); + if (gm_status == GM_SUCCESS) + break; + + fprintf(stderr, "gm_open: %s\n",gm_strerror(gm_status)); + gm_finalize(); + return(0); + } + } - if (gm_status != GM_SUCCESS) { - /* - * Couldn't open port 2 - * try 4 5 6 7 - */ - - for (gm_port_id=4; gm_port_id<8; gm_port_id++) { - gm_status = gm_open(&gm_port, - GM_UNIT, - gm_port_id, - "gmnalnid", - GM_API_VERSION); - if (gm_status == GM_SUCCESS) { - break; - } - fprintf(stderr, "gm_open :: %s\n", - gm_strerror(gm_status)); - gm_finalize(); - return(0); + if (get_local_id) { + local_nid = 1; + } else { + gm_status = gm_host_name_to_node_id_ex(gm_port, 1000000, name, + &local_nid); + if (gm_status != GM_SUCCESS) { + fprintf(stderr, "gm_host_name_to_node_id_ex: %s\n", + gm_strerror(gm_status)); + gm_close(gm_port); + gm_finalize(); + return(0); + } } - } - if (get_local_id) { - local_nid = 1; - } else { - gm_status = gm_host_name_to_node_id_ex(gm_port, 1000000, name, - &local_nid); + gm_status = gm_node_id_to_global_id(gm_port, local_nid, &global_nid) ; if (gm_status != GM_SUCCESS) { - fprintf(stderr, "gm_host_name_to_node_id_ex :: %s\n", - gm_strerror(gm_status)); - gm_close(gm_port); - gm_finalize(); - return(0); + fprintf(stderr, "gm_node_id_to_global_id: %s\n", + gm_strerror(gm_status)); + gm_close(gm_port); + gm_finalize(); + return(0); } - } - - gm_status = gm_node_id_to_global_id(gm_port, local_nid, &global_nid) ; - if (gm_status != GM_SUCCESS) { - fprintf(stderr, "gm_node_id_to_global_id :: %s\n", - gm_strerror(gm_status)); gm_close(gm_port); gm_finalize(); - return(0); - } - gm_close(gm_port); - gm_finalize(); - return(global_nid); + return(global_nid); } -void -usage(char *prg, int h) +int main(int argc, char **argv) { + unsigned int nid = 0; + char *name = NULL; + int c; + int get_local_id = 0; + + while ((c = getopt(argc, argv, "n:lh")) != -1) { + switch(c) { + case('n'): + if (get_local_id) { + usage(argv[0], 0); + exit(-1); + } + name = optarg; + break; + case('h'): + usage(argv[0], 1); + exit(-1); + break; + case('l'): + if (name) { + usage(argv[0], 0); + exit(-1); + } + get_local_id = 1; + break; + default: + usage(argv[0], 0); + exit(-1); + } + } + + if (!name && !get_local_id) { + usage(argv[0], 0); + exit(-1); + } - fprintf(stderr, "usage %s -n hostname | -l | -h\n", prg); - if (h) { - printf("\nGet Myrinet Global network ids for specified host\n"); - printf("-l gets network id for local host\n"); - } - return; + nid = u_getgmnid(name, get_local_id); + printf("%u\n", nid); + exit(0); }