diff --git a/makefile b/makefile index a8d03184b1738b82f257cadec0f8056c187d8f30..0714022d3c5f0e463a6506f2856220ff041e3489 100644 --- a/makefile +++ b/makefile @@ -11,8 +11,11 @@ BIN = mojitos BINP = mojitos_prometeus PREFIX = /usr/local -CC = g++ -CPPFLAGS = -std=c++20 -Wall -Wextra -Wpedantic -Wno-unused-function -I./lib $(NVML_IFLAGS) +# specific flags for g++ +# CC = g++ +# CPPFLAGS = -std=c++20 -Wall -Wno-error=write-strings -Wextra -Wpedantic -Wno-unused-function -I./lib $(NVML_IFLAGS) + +#works also with clang CC = gcc CPPFLAGS = -std=gnu99 -Wall -Wextra -Wpedantic -Wno-unused-function -I./lib $(NVML_IFLAGS) diff --git a/src/counters.c b/src/counters.c index 1266a07a64314b7318d8254f40a027e1b60de6e4..5dd28ad997cf0a6021712e6a0a3a6cc38254cfe4 100644 --- a/src/counters.c +++ b/src/counters.c @@ -230,7 +230,7 @@ unsigned int get_counters(uint64_t *results, void *ptr) return state->nbperf; } -void label_counters(char **labels, void *ptr) +void label_counters(const char **labels, void *ptr) { Counter *state = (Counter *) ptr; diff --git a/src/counters.h b/src/counters.h index 3186f1d7c80e5eb02256e8e67871ed98d0e3377e..4f082fe127ce8709eddb20840bb5615256b311d9 100644 --- a/src/counters.h +++ b/src/counters.h @@ -21,7 +21,7 @@ unsigned int init_counters(char *, void **); unsigned int get_counters(uint64_t *results, void *); void clean_counters(void *); -void label_counters(char **labels, void *); +void label_counters(const char **labels, void *); void *show_all_counters(void *, size_t); Sensor counters = { diff --git a/src/display_manager.c b/src/display_manager.c index d485f07b85888b4a1751ad7cb2bbedeeaefa5e3b..9a7f6e1712de9863ffa199cad0c57e2f582b146d 100644 --- a/src/display_manager.c +++ b/src/display_manager.c @@ -8,7 +8,7 @@ extern FILE *output; extern char* output_option; -void init_manager(char** labels, int nb_sensors, int stat_mode) { +void init_manager(const char** labels, int nb_sensors, int stat_mode) { if (output_option != NULL) { if ((output = fopen(output_option, "wb")) == NULL) { perror("fopen"); diff --git a/src/libmojitos.c b/src/libmojitos.c index 89f3e76d65a355f5d6e691fdd1f1c48a2adc77b2..bd52068e29f2aea730e4b3cd716317ce7337906a 100644 --- a/src/libmojitos.c +++ b/src/libmojitos.c @@ -9,7 +9,7 @@ #include "libmojitos.h" typedef unsigned int (*initializer_t)(char *, void **); -typedef void (*labeler_t)(char **, void *); +typedef void (*labeler_t)(const char **, void *); typedef unsigned int (*getter_t)(uint64_t *, void *); typedef void (*cleaner_t)(void *); @@ -35,7 +35,7 @@ Optparse _moj_opts[NB_SENSOR_OPT + 1]; unsigned int nb_sources = 0; unsigned int nb_sensors = 0; // might have multiple sensors per source -char **labels = NULL; +const char **labels = NULL; uint64_t *values = NULL; void **states = NULL; getter_t *getter = NULL; @@ -63,7 +63,7 @@ void add_source(Sensor *cpt, char *arg) cleaner = (cleaner_t*) realloc(cleaner, nb_sources * sizeof(void *)); cleaner[nb_sources - 1] = clean; - labels = (char**) realloc(labels, (nb_sensors + nb) * sizeof(char *)); + labels = (const char**) realloc(labels, (nb_sensors + nb) * sizeof(char *)); labeler(labels + nb_sensors, states[nb_sources - 1]); values = (uint64_t*) realloc(values, (nb_sensors + nb) * sizeof(uint64_t)); @@ -115,7 +115,7 @@ void moj_clean(void) { } } -char **moj_labels(void) { +const char **moj_labels(void) { return labels; } diff --git a/src/libmojitos.h b/src/libmojitos.h index 94347e2ed98c33bb1f6b283ff918f36bc5f2d869..2ee2448234844389dd5aa394aac89a10d68f969a 100644 --- a/src/libmojitos.h +++ b/src/libmojitos.h @@ -1,4 +1,4 @@ int moj_init(char** argv); uint64_t* moj_get_values(void); void moj_clean(void); -char **moj_labels(void); +const char **moj_labels(void); diff --git a/src/likwid.c b/src/likwid.c index 0f72bbcf8ad463c7bf1eb0c335928db7b459f21e..9ce0027edc0c4e9a2f3b82c346a079d69bcb9f34 100644 --- a/src/likwid.c +++ b/src/likwid.c @@ -61,7 +61,7 @@ void _get_likwid(Likwid *likwid, uint64_t *values) } } -void label_likwid(char **labels, void *ptr) +void label_likwid(const char **labels, void *ptr) { Likwid *state = (Likwid *) ptr; diff --git a/src/likwid.h b/src/likwid.h index 7a529da1b8c1e74b362f82c91288f3efae11a0d6..c2e6b75e195aa8f76947ad4f860ad9b10142a072 100644 --- a/src/likwid.h +++ b/src/likwid.h @@ -21,7 +21,7 @@ unsigned int init_likwid(char *, void **); unsigned int get_likwid(uint64_t *results, void *); void clean_likwid(void *); -void label_likwid(char **labels, void *); +void label_likwid(const char **labels, void *); void *show_all_likwid(void *, size_t); Sensor likwid = { diff --git a/src/load.c b/src/load.c index a38886d9e3da986b0648aa7cba29a9a323c20dea..c5684996362209a7e1be8644b4c5ca378ceeeb43 100644 --- a/src/load.c +++ b/src/load.c @@ -98,7 +98,7 @@ char *_labels[LOAD_VALUES_SIZE] = { "user", "nice", "system", "idle", "iowait", "irq", "softirq", "steal", "guest", "guest_nice" }; -void label_load(char **labels, void *none) +void label_load(const char **labels, void *none) { UNUSED(none); diff --git a/src/load.h b/src/load.h index 333f778103ba0a330216e027676fb4a3140b2aeb..38d1395b785c9ec38a89081c585b5e6355c81e79 100644 --- a/src/load.h +++ b/src/load.h @@ -21,7 +21,7 @@ unsigned int init_load(char *, void **); unsigned int get_load(uint64_t *results, void *); void clean_load(void *); -void label_load(char **labels, void *); +void label_load(const char **labels, void *); Sensor load = { .init = init_load, diff --git a/src/manager.h b/src/manager.h index 65ab8c8ca9b67905f783c7c09afa6576dd91b51c..d6f9885d0e0c098d62167f0827843eb6ed681992 100644 --- a/src/manager.h +++ b/src/manager.h @@ -1,4 +1,4 @@ -void init_manager(char** labels, int nb_sensors, int stat_mode); +void init_manager(const char** labels, int nb_sensors, int stat_mode); void use_manager(struct timespec ts, const uint64_t* values, int nb_sensors, uint64_t stat_data); diff --git a/src/memory.c b/src/memory.c index 3356a82323d3ff8d4a79391c2bb0f36663ece9e2..799cf19c1ada3732374abb7337d47b97a89f16d6 100644 --- a/src/memory.c +++ b/src/memory.c @@ -83,7 +83,7 @@ unsigned int get_memory(uint64_t *results, void *none) return MEMORY_COUNT; } -void label_memory(char **labels, void *none) +void label_memory(const char **labels, void *none) { UNUSED(none); memcpy(labels, memory_labels, sizeof(char *) * MEMORY_COUNT); diff --git a/src/memory.h b/src/memory.h index 8a73fac5df8fcb2ab9672c6b99613f42813b0079..5a739404fa40df25ee5059924472f6dcb46f178a 100644 --- a/src/memory.h +++ b/src/memory.h @@ -21,7 +21,7 @@ unsigned int init_memory(char *, void **); unsigned int get_memory(uint64_t *results, void *); void clean_memory(void *); -void label_memory(char **labels, void *); +void label_memory(const char **labels, void *); Sensor memory = { diff --git a/src/memory_counters.c b/src/memory_counters.c index 564fb9c9916705916047732504c9e60f570a6ab8..8b52fe55684cd408557f6fca4e2d9076bba31be5 100644 --- a/src/memory_counters.c +++ b/src/memory_counters.c @@ -101,7 +101,7 @@ unsigned int get_memory_counters(uint64_t *results, void *ptr) return counters->count; } -void label_memory_counters(char **labels, void *ptr) +void label_memory_counters(const char **labels, void *ptr) { MemoryCounters *counters = (MemoryCounters *)ptr; for (unsigned int i = 0; i < counters->count; i++) { diff --git a/src/memory_counters.h b/src/memory_counters.h index 27198faf9e560809885799229b5b6e24ff2587f3..11514e24787b1a942321300f5e8ef908b1de49fc 100644 --- a/src/memory_counters.h +++ b/src/memory_counters.h @@ -20,7 +20,7 @@ unsigned int init_memory_counters(char *args, void **ptr); unsigned int get_memory_counters(uint64_t *results, void *ptr); -void label_memory_counters(char **labels, void *ptr); +void label_memory_counters(const char **labels, void *ptr); void clean_memory_counters(void *ptr); void *show_all_memory_counters(void *, size_t); diff --git a/src/mojitos.c b/src/mojitos.c index 52be05723e1c0d28354b9b37fc0fb7ac4d128b7f..668c9914df40469198cc28c3a9d659f5dc583843 100644 --- a/src/mojitos.c +++ b/src/mojitos.c @@ -210,7 +210,7 @@ int main(int argc, char **argv) struct timespec ts; struct timespec ts_ref; - char** labels = moj_labels(); + const char** labels = moj_labels(); init_manager(labels, nb_sensors, stat_mode); uint64_t stat_data = 0; diff --git a/src/network.c b/src/network.c index 54c5f3d4cab6aa74b731e0def0b63aaf4cef526a..31dc1a132dadd80a8860ecd8c27861f36797ccad 100644 --- a/src/network.c +++ b/src/network.c @@ -242,7 +242,7 @@ void clean_network(void *ptr) free(state); } -void label_network(char **labels, void *ptr) +void label_network(const char **labels, void *ptr) { struct Network *state = (struct Network *) ptr; diff --git a/src/network.h b/src/network.h index f6ba9a109ccd677932d2df08aa940f3779864442..c802fd4d3df573c497de4039d57f8b193f0ead06 100644 --- a/src/network.h +++ b/src/network.h @@ -21,7 +21,7 @@ unsigned int init_network(char *, void **); unsigned int get_network(uint64_t *results, void *); void clean_network(void *); -void label_network(char **labels, void *); +void label_network(const char **labels, void *); Sensor network = { .init = init_network, diff --git a/src/rapl.c b/src/rapl.c index fce6b2b98635df1f205f77e369dea2d14a53e67f..557a0629854fad4cfe9d0691ca36ea6017fcc958 100644 --- a/src/rapl.c +++ b/src/rapl.c @@ -206,7 +206,7 @@ void clean_rapl(void *ptr) } -void label_rapl(char **labels, void *ptr) +void label_rapl(const char **labels, void *ptr) { IntelRapl *rapl = (IntelRapl *) ptr; diff --git a/src/rapl.h b/src/rapl.h index ef9c8b68365ce9d912067efc8d48a26918465629..cd5b2add9daaa760c0fd469a1be8278a168ea204 100644 --- a/src/rapl.h +++ b/src/rapl.h @@ -21,7 +21,7 @@ unsigned int init_rapl(char *, void **); unsigned int get_rapl(uint64_t *results, void *); void clean_rapl(void *); -void label_rapl(char **labels, void *); +void label_rapl(const char **labels, void *); Sensor rapl = { .init = init_rapl, diff --git a/src/temperature.c b/src/temperature.c index 185367a7bdf4d0d7ae21ca5144dc8e75b3bd2c92..8f40468ede14972af3412d70a3b045cc9bf260d0 100644 --- a/src/temperature.c +++ b/src/temperature.c @@ -167,7 +167,7 @@ void clean_temperature(void *ptr) free(state); } -void label_temperature(char **labels, void *ptr) +void label_temperature(const char **labels, void *ptr) { Temperature *state = (Temperature *)ptr; diff --git a/src/temperature.h b/src/temperature.h index 129febc8075ab9e1834bd48316f1cdb423dcad25..52e01ace77b1634bf65659e32ec6b3ec067729e9 100644 --- a/src/temperature.h +++ b/src/temperature.h @@ -21,7 +21,7 @@ unsigned int init_temperature(char *, void **); unsigned int get_temperature(uint64_t *results, void *); void clean_temperature(void *); -void label_temperature(char **labels, void *); +void label_temperature(const char **labels, void *); Sensor temperature = { .init = init_temperature,