|
|
|
@ -281,8 +281,7 @@ void clear_array() {
|
|
|
|
|
philos_free_string_array(&main_config.cpu_limit, main_config.size_tree_view);
|
|
|
|
|
philos_free_string_array_n3(&main_config.i_o_limit_read, main_config.size_tree_view);
|
|
|
|
|
philos_free_string_array_n3(&main_config.i_o_limit_write, 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_n3(&main_config.disk, main_config.size_tree_view);
|
|
|
|
|
|
|
|
|
|
philos_free_string_array(&main_config.array_del_line, main_config.size_array_del_line);
|
|
|
|
|
main_config.size_array_del_line = 0;
|
|
|
|
@ -300,8 +299,7 @@ void clear_array() {
|
|
|
|
|
main_config.i_o_limit_read_size = NULL;
|
|
|
|
|
main_config.i_o_limit_write = NULL;
|
|
|
|
|
main_config.i_o_limit_write_size = NULL;
|
|
|
|
|
main_config.disk_read = NULL;
|
|
|
|
|
main_config.disk_write = NULL;
|
|
|
|
|
main_config.disk = NULL;
|
|
|
|
|
|
|
|
|
|
main_config.size_tree_view = 0;
|
|
|
|
|
}
|
|
|
|
@ -505,18 +503,18 @@ void get_param_io_limit(char** arr_values, int index_start, int size, int index_
|
|
|
|
|
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
|
|
|
|
|
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (index_n1 + 1) * sizeof(char**));
|
|
|
|
|
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (index_n1 + 1) * sizeof(int*));
|
|
|
|
|
main_config.disk_read = yon_remalloc(main_config.disk_read, (index_n1 + 1) * sizeof(char**));
|
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
|
|
|
|
|
yon_char_parsed_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);
|
|
|
|
|
yon_char_parsed_copy(&main_config.disk_read[index_n1], &array_disk);
|
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (index_n1 + 1) * sizeof(char**));
|
|
|
|
|
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (index_n1 + 1) * sizeof(int*));
|
|
|
|
|
main_config.disk_write = yon_remalloc(main_config.disk_write, (index_n1 + 1) * sizeof(char**));
|
|
|
|
|
main_config.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
|
|
|
|
|
yon_char_parsed_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);
|
|
|
|
|
yon_char_parsed_copy(&main_config.disk_write[index_n1], &array_disk);
|
|
|
|
|
yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
|
|
|
|
|
}
|
|
|
|
|
philos_free_string_array(&array_limit, index_n2);
|
|
|
|
|
philos_free_string_array(&array_disk, index_n2);
|
|
|
|
@ -670,8 +668,8 @@ void fill_tree_view(int start, int size, int flag_gui_add) {
|
|
|
|
|
for (int index = start; index < size; index++) {
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
gtk_list_store_append(main_config.list,&iter);
|
|
|
|
|
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_write, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
|
|
|
|
|
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_write = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
|
|
|
|
|
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
|
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
|
|
2,main_config.soft_raw_limit[index],
|
|
|
|
@ -845,17 +843,17 @@ void wrapper_edit_show() {
|
|
|
|
|
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
|
|
|
|
|
int index = atoi(str_iter);
|
|
|
|
|
edit_show(NULL, glade_path);
|
|
|
|
|
//edit_set_select_device(main_config.disk[index]);
|
|
|
|
|
edit_set_select_device(&main_config.disk[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_limit_cpu(main_config.cpu_limit[index], main_config.cpu_limit_size[index]);
|
|
|
|
|
edit_set_soft(main_config.soft_raw_limit[index], main_config.soft_raw_limit_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_write_device(&main_config.i_o_limit_write[index], &main_config.i_o_limit_write_size[index]);
|
|
|
|
|
edit_init_windows();
|
|
|
|
|
edit_set_limit_swap(main_config.swap[index], main_config.swap_size[index]);
|
|
|
|
|
edit_event(get_widget_edit());
|
|
|
|
|
// edit_set_select_device(main_config.cpu_limit[index]);
|
|
|
|
|
g_signal_connect(G_OBJECT(get_widget_edit()->btnSaveEditSave), "clicked", G_CALLBACK(main_edit_btn_save), NULL);
|
|
|
|
|
edit_init_windows();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -992,8 +990,8 @@ char* save_format_value(int index) {
|
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
|
}
|
|
|
|
|
value = add_io_str_format_ubconfig(value, "IOReadBandwidthMax", main_config.i_o_limit_read, main_config.disk_read, index);
|
|
|
|
|
value = add_io_str_format_ubconfig(value, "IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.disk_write, index);
|
|
|
|
|
value = add_io_str_format_ubconfig(value, "IOReadBandwidthMax", main_config.i_o_limit_read, main_config.disk, index);
|
|
|
|
|
value = add_io_str_format_ubconfig(value, "IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.disk, index);
|
|
|
|
|
//if (strstr(main_config.i_o_limit_read[index], "-") == NULL) {
|
|
|
|
|
//value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("IOReadBandwidthMax", main_config.i_o_limit_read[index],main_config.i_o_limit_read_size[index]), NULL);
|
|
|
|
|
// split_simvol[0] = ',';
|
|
|
|
@ -1004,7 +1002,7 @@ char* save_format_value(int index) {
|
|
|
|
|
//}
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
char* add_io_str_format_ubconfig(char* cmd_io, char* key, char*** i_o_limit, char*** disk_read, int index) {
|
|
|
|
|
char* add_io_str_format_ubconfig(char* cmd_io, char* key, char*** i_o_limit, char*** disk, int index) {
|
|
|
|
|
char split_simvol[2] = {0};
|
|
|
|
|
if (i_o_limit != NULL) {
|
|
|
|
|
if (i_o_limit[index] != NULL) {
|
|
|
|
@ -1014,7 +1012,7 @@ char* add_io_str_format_ubconfig(char* cmd_io, char* key, char*** i_o_limit, ch
|
|
|
|
|
cmd_io = yon_char_unite(cmd_io, ",", key, "=");
|
|
|
|
|
}
|
|
|
|
|
char* read_limit = i_o_limit[index][i];
|
|
|
|
|
char* read_limit_disk = disk_read[index][i];
|
|
|
|
|
char* read_limit_disk = disk[index][i];
|
|
|
|
|
cmd_io = yon_char_unite(cmd_io, split_simvol, read_limit_disk, " ", read_limit);
|
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
|