|
|
@ -281,7 +281,8 @@ void clear_array() {
|
|
|
|
philos_free_int_array(&main_config.cpu_limit, main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.cpu_limit, main_config.size_tree_view);
|
|
|
|
philos_free_int_array_n2(&main_config.i_o_limit_read, main_config.size_tree_view);
|
|
|
|
philos_free_int_array_n2(&main_config.i_o_limit_read, main_config.size_tree_view);
|
|
|
|
philos_free_int_array_n2(&main_config.i_o_limit_write, main_config.size_tree_view);
|
|
|
|
philos_free_int_array_n2(&main_config.i_o_limit_write, main_config.size_tree_view);
|
|
|
|
philos_free_string_array_n3(&main_config.disk, main_config.size_tree_view);
|
|
|
|
philos_free_string_array_n3(&main_config.disk_read, main_config.size_tree_view);
|
|
|
|
|
|
|
|
philos_free_string_array_n3(&main_config.disk_write, main_config.size_tree_view);
|
|
|
|
|
|
|
|
|
|
|
|
philos_free_string_array(&main_config.array_del_line, main_config.size_array_del_line);
|
|
|
|
philos_free_string_array(&main_config.array_del_line, main_config.size_array_del_line);
|
|
|
|
main_config.size_array_del_line = 0;
|
|
|
|
main_config.size_array_del_line = 0;
|
|
|
@ -299,7 +300,8 @@ void clear_array() {
|
|
|
|
main_config.i_o_limit_read_size = NULL;
|
|
|
|
main_config.i_o_limit_read_size = NULL;
|
|
|
|
main_config.i_o_limit_write = NULL;
|
|
|
|
main_config.i_o_limit_write = NULL;
|
|
|
|
main_config.i_o_limit_write_size = NULL;
|
|
|
|
main_config.i_o_limit_write_size = NULL;
|
|
|
|
main_config.disk = NULL;
|
|
|
|
main_config.disk_write = NULL;
|
|
|
|
|
|
|
|
main_config.disk_read = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
main_config.size_tree_view = 0;
|
|
|
|
main_config.size_tree_view = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -364,18 +366,18 @@ void init_cfg_array(int index) {
|
|
|
|
index_n2 = 0;
|
|
|
|
index_n2 = 0;
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (index + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (index + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (index + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (index + 1) * sizeof(int*));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (index + 1) * sizeof(char**));
|
|
|
|
main_config.disk_read = yon_remalloc(main_config.disk_read, (index + 1) * sizeof(char**));
|
|
|
|
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (index + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (index + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (index + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (index + 1) * sizeof(int*));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (index + 1) * sizeof(char**));
|
|
|
|
main_config.disk_write = yon_remalloc(main_config.disk_write, (index + 1) * sizeof(char**));
|
|
|
|
|
|
|
|
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[index], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[index], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index], &array_limit);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index], &array_disk);
|
|
|
|
yon_char_parsed_copy(&main_config.disk_read[index], &array_disk);
|
|
|
|
|
|
|
|
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[main_config.size_tree_view], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[index], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[main_config.size_tree_view], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[index], &array_limit);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[main_config.size_tree_view], &array_disk);
|
|
|
|
yon_char_parsed_copy(&main_config.disk_write[index], &array_disk);
|
|
|
|
philos_free_int_array(&array_limit, 1);
|
|
|
|
philos_free_int_array(&array_limit, 1);
|
|
|
|
philos_free_string_array(&array_disk, 1);
|
|
|
|
philos_free_string_array(&array_disk, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -474,12 +476,16 @@ void get_param_io_limit(char** arr_values, int index_start, int size, int index_
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
array_limit = main_config.i_o_limit_read[index_n1];
|
|
|
|
array_limit = main_config.i_o_limit_read[index_n1];
|
|
|
|
array_limit_size = main_config.i_o_limit_read_size[index_n1];
|
|
|
|
array_limit_size = main_config.i_o_limit_read_size[index_n1];
|
|
|
|
|
|
|
|
array_disk = main_config.disk_read[index_n1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else if (strstr(key_find, "IOWriteBandwidthMax")!=NULL) {
|
|
|
|
array_limit = main_config.i_o_limit_write[index_n1];
|
|
|
|
array_limit = main_config.i_o_limit_write[index_n1];
|
|
|
|
array_limit_size = main_config.i_o_limit_write_size[index_n1];
|
|
|
|
array_limit_size = main_config.i_o_limit_write_size[index_n1];
|
|
|
|
|
|
|
|
array_disk = main_config.disk_write[index_n1];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
array_disk = main_config.disk[index_n1];
|
|
|
|
|
|
|
|
int index_n2 = 0;
|
|
|
|
int index_n2 = 0;
|
|
|
|
int flag_parsed = 0;
|
|
|
|
int flag_parsed = 0;
|
|
|
|
int flag_exit = 0;
|
|
|
|
int flag_exit = 0;
|
|
|
@ -521,12 +527,12 @@ void get_param_io_limit(char** arr_values, int index_start, int size, int index_
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[index_n1], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[index_n1], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index_n1], &array_limit_size);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index_n1], &array_limit_size);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
yon_char_parsed_copy(&main_config.disk_read[index_n1], &array_disk);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else if (strstr(key_find, "IOWriteBandwidthMax")!=NULL) {
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[index_n1], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[index_n1], &array_limit);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[index_n1], &array_limit_size);
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[index_n1], &array_limit_size);
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
yon_char_parsed_copy(&main_config.disk_write[index_n1], &array_disk);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
philos_free_int_array(&array_limit, index_n2);
|
|
|
|
philos_free_int_array(&array_limit, index_n2);
|
|
|
@ -620,11 +626,13 @@ void tree_view_add(int index) {
|
|
|
|
|
|
|
|
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (main_config.size_tree_view + 1) * sizeof(char**));
|
|
|
|
main_config.disk_read = yon_remalloc(main_config.disk_read, (main_config.size_tree_view + 1) * sizeof(char**));
|
|
|
|
|
|
|
|
yon_char_parsed_copy(&main_config.disk_read[main_config.size_tree_view], add_get_select_read_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[main_config.size_tree_view], add_get_read_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[main_config.size_tree_view], add_get_read_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[main_config.size_tree_view], add_get_read_device_size_pow());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[main_config.size_tree_view], add_get_read_device_size_pow());
|
|
|
|
yon_char_parsed_copy(&main_config.disk[main_config.size_tree_view], add_get_select_device());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
main_config.disk_write = yon_remalloc(main_config.disk_write, (main_config.size_tree_view + 1) * sizeof(char**));
|
|
|
|
|
|
|
|
yon_char_parsed_copy(&main_config.disk_write[main_config.size_tree_view], add_get_select_write_device());
|
|
|
|
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (main_config.size_tree_view + 1) * sizeof(int*));
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[main_config.size_tree_view], add_get_write_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[main_config.size_tree_view], add_get_write_device());
|
|
|
@ -655,8 +663,8 @@ void fill_tree_view(int start, int size, int flag_gui_add) {
|
|
|
|
for (int index = start; index < size; index++) {
|
|
|
|
for (int index = start; index < size; index++) {
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_list_store_append(main_config.list,&iter);
|
|
|
|
gtk_list_store_append(main_config.list,&iter);
|
|
|
|
char* str_io_read = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
|
|
|
|
char* str_io_read = format_io_limit_in_tree_view(main_config.disk_read, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
|
|
|
|
char* str_io_write = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
|
|
|
|
char* str_io_write = format_io_limit_in_tree_view(main_config.disk_write, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
|
|
|
|
gtk_list_store_set(main_config.list,&iter,
|
|
|
|
gtk_list_store_set(main_config.list,&iter,
|
|
|
|
0,main_config.type_quota[index],
|
|
|
|
0,main_config.type_quota[index],
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
@ -746,7 +754,8 @@ int tree_view_edit() {
|
|
|
|
|
|
|
|
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[index], edit_get_read_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read[index], edit_get_read_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index], edit_get_read_device_size_pow());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_read_size[index], edit_get_read_device_size_pow());
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index], edit_get_select_device());
|
|
|
|
yon_char_parsed_copy(&main_config.disk_read[index], edit_get_select_read_device());
|
|
|
|
|
|
|
|
yon_char_parsed_copy(&main_config.disk_write[index], edit_get_select_write_device());
|
|
|
|
|
|
|
|
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[index], edit_get_write_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write[index], edit_get_write_device());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[index], edit_get_write_device_size_pow());
|
|
|
|
philos_array_int_copy(&main_config.i_o_limit_write_size[index], edit_get_write_device_size_pow());
|
|
|
@ -756,8 +765,8 @@ int tree_view_edit() {
|
|
|
|
main_config.swap_size[index] = edit_get_limit_swap_size();
|
|
|
|
main_config.swap_size[index] = edit_get_limit_swap_size();
|
|
|
|
main_config.cpu_limit_size[index] = edit_get_limit_cpu_size();
|
|
|
|
main_config.cpu_limit_size[index] = edit_get_limit_cpu_size();
|
|
|
|
|
|
|
|
|
|
|
|
char* str_io_read = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
|
|
|
|
char* str_io_read = format_io_limit_in_tree_view(main_config.disk_read, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
|
|
|
|
char* str_io_write = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
|
|
|
|
char* str_io_write = format_io_limit_in_tree_view(main_config.disk_write, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
|
|
|
|
gtk_list_store_set(main_config.list,&iter,
|
|
|
|
gtk_list_store_set(main_config.list,&iter,
|
|
|
|
0,main_config.type_quota[index],
|
|
|
|
0,main_config.type_quota[index],
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
@ -864,14 +873,21 @@ void wrapper_edit_show() {
|
|
|
|
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
|
|
|
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
|
|
|
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
|
|
|
|
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
|
|
|
|
int index = atoi(str_iter);
|
|
|
|
int index = atoi(str_iter);
|
|
|
|
size_t size_disk_array = 0;
|
|
|
|
size_t size_disk_read_array = 0;
|
|
|
|
if (main_config.disk) {
|
|
|
|
size_t size_disk_write_array = 0;
|
|
|
|
for (size_disk_array; main_config.disk[index][size_disk_array]; size_disk_array++) {
|
|
|
|
if (main_config.disk_read) {
|
|
|
|
|
|
|
|
for (size_disk_read_array=0; main_config.disk_read[index][size_disk_read_array]; size_disk_read_array++) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (main_config.disk_write) {
|
|
|
|
|
|
|
|
for (size_disk_write_array; main_config.disk_write[index][size_disk_write_array]; size_disk_write_array++) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
edit_show(NULL, glade_path);
|
|
|
|
edit_show(NULL, glade_path);
|
|
|
|
edit_set_size_arrays(size_disk_array);
|
|
|
|
edit_set_size_arrays_read(size_disk_read_array);
|
|
|
|
edit_set_select_device(&main_config.disk[index]);
|
|
|
|
edit_set_size_arrays_write(size_disk_write_array);
|
|
|
|
|
|
|
|
edit_set_select_read_device(&main_config.disk_read[index]);
|
|
|
|
|
|
|
|
edit_set_select_write_device(&main_config.disk_write[index]);
|
|
|
|
edit_set_write_device(main_config.i_o_limit_write[index], main_config.i_o_limit_write_size[index]);
|
|
|
|
edit_set_write_device(main_config.i_o_limit_write[index], main_config.i_o_limit_write_size[index]);
|
|
|
|
edit_set_read_device(main_config.i_o_limit_read[index], main_config.i_o_limit_read_size[index]);
|
|
|
|
edit_set_read_device(main_config.i_o_limit_read[index], main_config.i_o_limit_read_size[index]);
|
|
|
|
edit_set_hard(main_config.hard_raw_limit[index], main_config.hard_raw_limit_size[index]);
|
|
|
|
edit_set_hard(main_config.hard_raw_limit[index], main_config.hard_raw_limit_size[index]);
|
|
|
@ -925,7 +941,9 @@ void tree_view_del_line() {
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.i_o_limit_write = remove_element_int_array_n3(main_config.i_o_limit_write, &main_config.size_tree_view,index);
|
|
|
|
main_config.i_o_limit_write = remove_element_int_array_n3(main_config.i_o_limit_write, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.disk = yon_char_parsed_shrink_n3(main_config.disk, &main_config.size_tree_view,index);
|
|
|
|
main_config.disk_read = yon_char_parsed_shrink_n3(main_config.disk_read, &main_config.size_tree_view,index);
|
|
|
|
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
|
|
|
|
main_config.disk_write = yon_char_parsed_shrink_n3(main_config.disk_write, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
|
|
|
|
|
|
|
|
main_config.i_o_limit_read_size = remove_element_int_array_n3(main_config.i_o_limit_read_size, &main_config.size_tree_view,index);
|
|
|
|
main_config.i_o_limit_read_size = remove_element_int_array_n3(main_config.i_o_limit_read_size, &main_config.size_tree_view,index);
|
|
|
@ -1038,8 +1056,8 @@ char* save_format_value(int index) {
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
char* value_read = add_io_str_format_ubconfig("IOReadBandwidthMax", main_config.i_o_limit_read, main_config.i_o_limit_read_size, main_config.disk, index);
|
|
|
|
char* value_read = add_io_str_format_ubconfig("IOReadBandwidthMax", main_config.i_o_limit_read, main_config.i_o_limit_read_size, main_config.disk_read, index);
|
|
|
|
char* value_write = add_io_str_format_ubconfig("IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.i_o_limit_write_size, main_config.disk, index);
|
|
|
|
char* value_write = add_io_str_format_ubconfig("IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.i_o_limit_write_size, main_config.disk_write, index);
|
|
|
|
if (strlen(value_read) > 5){
|
|
|
|
if (strlen(value_read) > 5){
|
|
|
|
if (strlen(value) > 5) {
|
|
|
|
if (strlen(value) > 5) {
|
|
|
|
value = yon_char_unite(value, ",", value_read, NULL);
|
|
|
|
value = yon_char_unite(value, ",", value_read, NULL);
|
|
|
@ -1165,8 +1183,8 @@ void main_fill_tree_view_after_remove() {
|
|
|
|
for (int index= 0; index < main_config.size_tree_view; index++) {
|
|
|
|
for (int index= 0; index < main_config.size_tree_view; index++) {
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_list_store_append(main_config.list,&iter);
|
|
|
|
gtk_list_store_append(main_config.list,&iter);
|
|
|
|
char* str_io_read = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
|
|
|
|
char* str_io_read = format_io_limit_in_tree_view(main_config.disk_read, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
|
|
|
|
char* str_io_write = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
|
|
|
|
char* str_io_write = format_io_limit_in_tree_view(main_config.disk_write, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
|
|
|
|
gtk_list_store_set(main_config.list,&iter,
|
|
|
|
gtk_list_store_set(main_config.list,&iter,
|
|
|
|
0,main_config.type_quota[index],
|
|
|
|
0,main_config.type_quota[index],
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
|