-static int mic_read_cpu(int mic)
-{
- U32 ret;
- U32 buffer_size;
- int j;
- MicCoreUtil core_util;
- MicCoreJiff core_jiffs[MAX_CORES];
-
- buffer_size=MAX_CORES*sizeof(MicCoreJiff);
- ret = MicGetCoreUtilization(mic_handle,&core_util,core_jiffs,&buffer_size);
- if (ret != MIC_ACCESS_API_SUCCESS) {
- ERROR("mic plugin: Problem getting CPU utilization: %s",MicGetErrorString(ret));
- return(0);
- }
- if (show_total_cpu) {
- mic_submit_cpu(mic,"user",-1,core_util.sum.user);
- mic_submit_cpu(mic,"sys",-1,core_util.sum.sys);
- mic_submit_cpu(mic,"nice",-1,core_util.sum.nice);
- mic_submit_cpu(mic,"idle",-1,core_util.sum.idle);
- }
- if (show_per_cpu) {
- for (j=0;j<core_util.core;j++) {
- mic_submit_cpu(mic,"user",j,core_jiffs[j].user);
- mic_submit_cpu(mic,"sys",j,core_jiffs[j].sys);
- mic_submit_cpu(mic,"nice",j,core_jiffs[j].nice);
- mic_submit_cpu(mic,"idle",j,core_jiffs[j].idle);
- }
- }
- return (0);
+static int mic_read_cpu(int mic) {
+ MicCoreUtil core_util;
+ MicCoreJiff core_jiffs[MAX_CORES];
+ U32 core_jiffs_size;
+ U32 status;
+
+ core_jiffs_size = MAX_CORES * sizeof(MicCoreJiff);
+ status = MicGetCoreUtilization(mic_handle, &core_util, core_jiffs,
+ &core_jiffs_size);
+ if (status != MIC_ACCESS_API_SUCCESS) {
+ ERROR("mic plugin: Problem getting CPU utilization: %s",
+ MicGetErrorString(status));
+ return (-1);
+ }
+
+ if (show_cpu) {
+ mic_submit_cpu(mic, "user", -1, core_util.sum.user);
+ mic_submit_cpu(mic, "sys", -1, core_util.sum.sys);
+ mic_submit_cpu(mic, "nice", -1, core_util.sum.nice);
+ mic_submit_cpu(mic, "idle", -1, core_util.sum.idle);
+ }
+
+ if (show_cpu_cores) {
+ for (int j = 0; j < core_util.core; j++) {
+ mic_submit_cpu(mic, "user", j, core_jiffs[j].user);
+ mic_submit_cpu(mic, "sys", j, core_jiffs[j].sys);
+ mic_submit_cpu(mic, "nice", j, core_jiffs[j].nice);
+ mic_submit_cpu(mic, "idle", j, core_jiffs[j].idle);
+ }
+ }
+ return (0);
+}
+
+static void mic_submit_power(int micnumber, const char *type,
+ const char *type_instance, gauge_t value) {
+ value_list_t vl = VALUE_LIST_INIT;
+
+ vl.values = &(value_t){.gauge = value};
+ vl.values_len = 1;
+
+ strncpy(vl.host, hostname_g, sizeof(vl.host));
+ strncpy(vl.plugin, "mic", sizeof(vl.plugin));
+ ssnprintf(vl.plugin_instance, sizeof(vl.plugin_instance), "%i", micnumber);
+ strncpy(vl.type, type, sizeof(vl.type));
+ strncpy(vl.type_instance, type_instance, sizeof(vl.type_instance));
+
+ plugin_dispatch_values(&vl);