diff --git a/load.c b/load.c index 43eae25654c3de8c3b83f52c027bb51fc2e7b78e..8fd418da0fd86b72b045bdbc1781ad5b6a2ec8d6 100644 --- a/load.c +++ b/load.c @@ -43,7 +43,7 @@ void _get_load(uint64_t* results) { // Public interface -unsigned int init_load(void **state) { +unsigned int init_load(char* argument, void **state) { load_fid = open("/proc/stat", O_RDONLY); _get_load(load_values); return 10; diff --git a/load.h b/load.h index fef0eb64c71bdf89f0c228508d1a3b917e841e4b..363e07ad8adb5606a71f44a7f48fd733e518c68b 100644 --- a/load.h +++ b/load.h @@ -18,7 +18,7 @@ *******************************************************/ -unsigned int init_load(void **); +unsigned int init_load(char*, void **); unsigned int get_load(uint64_t* results, void*); void clean_load(void *); void label_load(char **labels); diff --git a/mojitos.c b/mojitos.c index a1925ded7f5fca4fb3e0317aea8c58241b07bbc1..924c685cff1c2359a8efc35d7e84ec8d30ac4899 100644 --- a/mojitos.c +++ b/mojitos.c @@ -111,7 +111,7 @@ void flushexit() { fclose(output); } -typedef unsigned int (initializer_t)(void **); +typedef unsigned int (initializer_t)(char*, void **); typedef void (labeler_t)(char **); typedef unsigned int (*getter_t)(uint64_t*, void*); typedef void (*cleaner_t)(void*); @@ -125,7 +125,7 @@ unsigned int nb_sensors=0; char **labels=NULL; uint64_t *values=NULL; -void add_source(initializer_t init, labeler_t labeler, +void add_source(initializer_t init, char* arg, labeler_t labeler, getter_t get, cleaner_t clean) { nb_sources++; states = realloc(states, nb_sources*sizeof(void*)); @@ -133,7 +133,7 @@ void add_source(initializer_t init, labeler_t labeler, getter[nb_sources-1] = get; cleaner = realloc(cleaner, nb_sources*sizeof(void*)); cleaner[nb_sources-1] = clean; - int nb = init(&states[nb_sources-1]); + int nb = init(arg, &states[nb_sources-1]); labels = realloc(labels, (nb_sensors+nb)*sizeof(char*)); labeler(labels+nb_sensors); @@ -152,7 +152,6 @@ int main(int argc, char **argv) { int rapl_mode = -1; int perf_mode = -1; - int load_mode = -1; int stat_mode = -1; if(argc==1) @@ -198,7 +197,7 @@ int main(int argc, char **argv) { rapl_mode=0; break; case 'u': - load_mode=0; + add_source(init_load, NULL, label_load, get_load, clean_load); break; case 's': stat_mode=0; @@ -210,9 +209,6 @@ int main(int argc, char **argv) { usage(argv); } - // Load initialization - if(load_mode == 0) - add_source(init_load, label_load, get_load, clean_load); // Network initialization int *network_sources = NULL; @@ -388,8 +384,7 @@ int main(int argc, char **argv) { } for(int i=0; i<nb_sources;i++) cleaner[i](states[i]); - // if(load_mode == 0) - // clean_load(load_state); + if(dev!=NULL) clean_network(network_sources); if(infi_path!=NULL)