/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos720 src/bos/usr/ccs/lib/libperfstat/simplenodelist.c 1.1 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* Restricted Materials of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 2010 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ #include #include int main(int argc, char* argv[]) { perfstat_id_node_t nodeid; perfstat_node_t *node_list; int num_nodes; int i, rc; /* perfstat_config needs to be called to enable cluster statistics collection */ rc = perfstat_config(PERFSTAT_ENABLE|PERFSTAT_CLUSTER_STATS, NULL); if (rc == -1) { perror("cluster statistics collection is not available"); exit(-1); } strncpy(nodeid.u.nodename, FIRST_CLUSTERNAME, MAXHOSTNAMELEN); nodeid.spec = CLUSTERNAME; num_nodes = perfstat_node_list(&nodeid, NULL, sizeof(perfstat_node_t), 0); if (num_nodes == -1) { perror("perfstat_node_list failed"); exit(-1); } if (num_nodes == 0) { /* This cannot happen */ fprintf(stdout, "No nodes in the cluster.\n"); exit(-1); } node_list = (perfstat_node_t *) malloc(sizeof(perfstat_node_t) * num_nodes); num_nodes = perfstat_node_list(&nodeid, node_list, sizeof(perfstat_node_t), num_nodes); if (num_nodes == -1) { perror("perfstat_node_list failed"); exit(-1); } fprintf(stdout, "Number of nodes : %d\n\n", num_nodes); for (i = 0; i < num_nodes; i++) { fprintf(stdout, "Node name : %s\n", node_list[i].nodename); fprintf(stdout, "Node id : %llu\n", node_list[i].nodeid); fprintf(stdout, "\n"); } /* Now disable cluster statistics by calling perfstat_config */ perfstat_config(PERFSTAT_DISABLE|PERFSTAT_CLUSTER_STATS, NULL); return (0); }