/* * OPAL_PSTAT */ int opal_dss_unpack_pstat(opal_buffer_t *buffer, void *dest, int32_t *num_vals, opal_data_type_t type) { opal_pstats_t **ptr; int32_t i, n, m, tmp1, tmp2; int ret; char *cptr; ptr = (opal_pstats_t **) dest; n = *num_vals; for (i = 0; i < n; ++i) { /* allocate the new object */ ptr[i] = OBJ_NEW(opal_pstats_t); if (NULL == ptr[i]) { return OPAL_ERR_OUT_OF_RESOURCE; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &cptr, &m, OPAL_STRING))) { OPAL_ERROR_LOG(ret); return ret; } memmove(ptr[i]->node, cptr, strlen(cptr)); free(cptr); m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &ptr[i]->rank, &m, OPAL_INT32))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &ptr[i]->pid, &m, OPAL_PID))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &cptr, &m, OPAL_STRING))) { OPAL_ERROR_LOG(ret); return ret; } memmove(ptr[i]->cmd, cptr, strlen(cptr)); free(cptr); m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &ptr[i]->state[0], &m, OPAL_BYTE))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &tmp1, &m, OPAL_INT32))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &tmp2, &m, OPAL_INT32))) { OPAL_ERROR_LOG(ret); return ret; } ptr[i]->time.tv_sec = tmp1; ptr[i]->time.tv_usec = tmp2; m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &ptr[i]->priority, &m, OPAL_INT32))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &ptr[i]->num_threads, &m, OPAL_INT16))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->vsize))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->rss))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->peak_vsize))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &ptr[i]->processor, &m, OPAL_INT16))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &tmp1, &m, OPAL_INT32))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &tmp2, &m, OPAL_INT32))) { OPAL_ERROR_LOG(ret); return ret; } ptr[i]->sample_time.tv_sec = tmp1; ptr[i]->sample_time.tv_usec = tmp2; } return OPAL_SUCCESS; }
/* * OPAL_NODE_STAT */ int opal_dss_unpack_node_stat(opal_buffer_t *buffer, void *dest, int32_t *num_vals, opal_data_type_t type) { opal_node_stats_t **ptr; int32_t i, n, m, tmp1, tmp2; int ret; ptr = (opal_node_stats_t **) dest; n = *num_vals; for (i = 0; i < n; ++i) { /* allocate the new object */ ptr[i] = OBJ_NEW(opal_node_stats_t); if (NULL == ptr[i]) { return OPAL_ERR_OUT_OF_RESOURCE; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->la))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->la5))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->la15))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->total_mem))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->free_mem))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->buffers))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->cached))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->swap_cached))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->swap_total))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->swap_free))) { OPAL_ERROR_LOG(ret); return ret; } if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->mapped))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &tmp1, &m, OPAL_INT32))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &tmp2, &m, OPAL_INT32))) { OPAL_ERROR_LOG(ret); return ret; } ptr[i]->sample_time.tv_sec = tmp1; ptr[i]->sample_time.tv_usec = tmp2; } return OPAL_SUCCESS; }
/* * OPAL_NODE_STAT */ int opal_dss_unpack_node_stat(opal_buffer_t *buffer, void *dest, int32_t *num_vals, opal_data_type_t type) { opal_node_stats_t **ptr; int32_t i, n, m; int ret; ptr = (opal_node_stats_t **) dest; n = *num_vals; for (i = 0; i < n; ++i) { /* allocate the new object */ ptr[i] = OBJ_NEW(opal_node_stats_t); if (NULL == ptr[i]) { return OPAL_ERR_OUT_OF_RESOURCE; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->la, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->la5, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->la15, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->total_mem, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->free_mem, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->buffers, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->cached, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->swap_cached, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->swap_total, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->swap_free, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_float(buffer, &ptr[i]->mapped, &m, OPAL_FLOAT))) { OPAL_ERROR_LOG(ret); return ret; } m=1; if (OPAL_SUCCESS != (ret = opal_dss_unpack_buffer(buffer, &ptr[i]->sample_time, &m, OPAL_TIMEVAL))) { OPAL_ERROR_LOG(ret); return ret; } /* unpack the disk stat objects */ if (OPAL_SUCCESS != (ret = unpack_disk_stats(buffer, ptr[i]))) { OPAL_ERROR_LOG(ret); return ret; } /* unpack the net stat objects */ if (OPAL_SUCCESS != (ret = unpack_net_stats(buffer, ptr[i]))) { OPAL_ERROR_LOG(ret); return ret; } OBJ_RELEASE(ptr[i]); } return OPAL_SUCCESS; }