|
|
@ -116,6 +116,10 @@ void config_init(){
|
|
|
|
main_config.flag_load = 0;
|
|
|
|
main_config.flag_load = 0;
|
|
|
|
main_config.size_array_del_line = 0;
|
|
|
|
main_config.size_array_del_line = 0;
|
|
|
|
main_config.flag_set_data = 0;
|
|
|
|
main_config.flag_set_data = 0;
|
|
|
|
|
|
|
|
main_config.i_o_limit_read_size=NULL;
|
|
|
|
|
|
|
|
main_config.i_o_limit_write_size=NULL;
|
|
|
|
|
|
|
|
main_config.i_o_limit_write=NULL;
|
|
|
|
|
|
|
|
main_config.i_o_limit_read=NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
main_window *setup_window(){
|
|
|
|
main_window *setup_window(){
|
|
|
@ -274,10 +278,11 @@ void clear_array() {
|
|
|
|
philos_free_string_array(&main_config.soft_raw_limit , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.soft_raw_limit , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.hard_raw_limit , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.hard_raw_limit , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.swap , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.swap , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.cpu_limit , main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.cpu_limit, main_config.size_tree_view);
|
|
|
|
philos_free_string_array(&main_config.i_o_limit_read , 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(&main_config.i_o_limit_write , 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(&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;
|
|
|
@ -288,8 +293,8 @@ void clear_array() {
|
|
|
|
philos_free_int_array(&main_config.hard_raw_limit_size, main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.hard_raw_limit_size, main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.swap_size, main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.swap_size, main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.cpu_limit_size, main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.cpu_limit_size, main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.i_o_limit_read_size, main_config.size_tree_view);
|
|
|
|
philos_free_int_array_n2(&main_config.i_o_limit_read_size, main_config.size_tree_view);
|
|
|
|
philos_free_int_array(&main_config.i_o_limit_write_size, main_config.size_tree_view);
|
|
|
|
philos_free_int_array_n2(&main_config.i_o_limit_write_size, main_config.size_tree_view);
|
|
|
|
gtk_list_store_clear(main_config.list);
|
|
|
|
gtk_list_store_clear(main_config.list);
|
|
|
|
main_config.size_tree_view = 0;
|
|
|
|
main_config.size_tree_view = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -306,7 +311,7 @@ void template_load_cfg(char* cmd, dictionary* load_cfg) {
|
|
|
|
if (str_key_value[0] == '\"') {
|
|
|
|
if (str_key_value[0] == '\"') {
|
|
|
|
yon_char_divide(str_key_value, 0);
|
|
|
|
yon_char_divide(str_key_value, 0);
|
|
|
|
size_t length = strlen(str_key_value);
|
|
|
|
size_t length = strlen(str_key_value);
|
|
|
|
str_key_value = yon_char_divide(str_key_value, length-2);
|
|
|
|
str_key_value = yon_char_divide(str_key_value, length-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
load_cfg = yon_dictionary_create_with_data_connected(load_cfg, str_key, str_key_value);
|
|
|
|
load_cfg = yon_dictionary_create_with_data_connected(load_cfg, str_key, str_key_value);
|
|
|
|
str_split_value(str_key_value, main_config.size_tree_view);
|
|
|
|
str_split_value(str_key_value, main_config.size_tree_view);
|
|
|
@ -322,8 +327,8 @@ void template_load_cfg(char* cmd, dictionary* load_cfg) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void init_cfg_array(int index) {
|
|
|
|
void init_cfg_array(int index) {
|
|
|
|
main_config.disk = yon_char_parsed_append(main_config.disk, &index, "-");
|
|
|
|
//main_config.disk = yon_char_parsed_append(main_config.disk, &index, "-");
|
|
|
|
index--;
|
|
|
|
//index--;
|
|
|
|
set_pow_size("-", &main_config.type_quota_size, &main_config.type_quota, index);
|
|
|
|
set_pow_size("-", &main_config.type_quota_size, &main_config.type_quota, index);
|
|
|
|
set_pow_size("-", &main_config.quota_volume_size, &main_config.quota_volume, index);
|
|
|
|
set_pow_size("-", &main_config.quota_volume_size, &main_config.quota_volume, index);
|
|
|
|
set_pow_size("-", &main_config.cpu_limit_size, &main_config.cpu_limit, index);
|
|
|
|
set_pow_size("-", &main_config.cpu_limit_size, &main_config.cpu_limit, index);
|
|
|
@ -331,8 +336,6 @@ void init_cfg_array(int index) {
|
|
|
|
set_pow_size("-", &main_config.soft_raw_limit_size, &main_config.soft_raw_limit, index);
|
|
|
|
set_pow_size("-", &main_config.soft_raw_limit_size, &main_config.soft_raw_limit, index);
|
|
|
|
set_pow_size("-", &main_config.hard_raw_limit_size, &main_config.hard_raw_limit, index);
|
|
|
|
set_pow_size("-", &main_config.hard_raw_limit_size, &main_config.hard_raw_limit, index);
|
|
|
|
set_pow_size("-", &main_config.swap_size, &main_config.swap, index);
|
|
|
|
set_pow_size("-", &main_config.swap_size, &main_config.swap, index);
|
|
|
|
set_pow_size("-", &main_config.i_o_limit_read_size, &main_config.i_o_limit_read, index);
|
|
|
|
|
|
|
|
set_pow_size("-", &main_config.i_o_limit_write_size, &main_config.i_o_limit_write, index);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void str_split_key(char* source_value, int index) {
|
|
|
|
void str_split_key(char* source_value, int index) {
|
|
|
@ -403,8 +406,14 @@ void str_split_value(char* values, int index) {
|
|
|
|
init_cfg_array(index);
|
|
|
|
init_cfg_array(index);
|
|
|
|
char* value_i = NULL;
|
|
|
|
char* value_i = NULL;
|
|
|
|
for (int index_1 = 0; index_1 < size; index_1++) {
|
|
|
|
for (int index_1 = 0; index_1 < size; index_1++) {
|
|
|
|
value = arr_values[index_1];
|
|
|
|
value = yon_char_new(arr_values[index_1]);
|
|
|
|
key = yon_char_divide_search(value, "=", -1);
|
|
|
|
key = yon_char_divide_search(value, "=", -1);
|
|
|
|
|
|
|
|
if (yon_char_find_count(key, "IOReadBandwidthMax") != 0) {
|
|
|
|
|
|
|
|
get_param_io_limit(arr_values, index_1, size,index, "IOReadBandwidthMax");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (yon_char_find_count(key, "IOWriteBandwidthMax") != 0) {
|
|
|
|
|
|
|
|
get_param_io_limit(arr_values, index_1, size,index, "IOWriteBandwidthMax");
|
|
|
|
|
|
|
|
}
|
|
|
|
if (yon_char_find_count(key, "MemoryHigh") != 0) {
|
|
|
|
if (yon_char_find_count(key, "MemoryHigh") != 0) {
|
|
|
|
set_pow_size(value, &main_config.soft_raw_limit_size, &main_config.soft_raw_limit, index);
|
|
|
|
set_pow_size(value, &main_config.soft_raw_limit_size, &main_config.soft_raw_limit, index);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -417,42 +426,85 @@ void str_split_value(char* values, int index) {
|
|
|
|
if (yon_char_find_count(key, "CPUQuota") != 0) {
|
|
|
|
if (yon_char_find_count(key, "CPUQuota") != 0) {
|
|
|
|
set_pow_size(value, &main_config.cpu_limit_size, &main_config.cpu_limit, index);
|
|
|
|
set_pow_size(value, &main_config.cpu_limit_size, &main_config.cpu_limit, index);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (yon_char_find_count(key, "IOReadBandwidthMax") != 0) {
|
|
|
|
|
|
|
|
set_pow_size(value, &main_config.i_o_limit_read_size, &main_config.i_o_limit_read, index);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (yon_char_find_count(key, "IOWriteBandwidthMax") != 0) {
|
|
|
|
|
|
|
|
set_pow_size(value, &main_config.i_o_limit_write_size, &main_config.i_o_limit_write, index);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
void get_param(char** arr_values, int index_start , int size) {
|
|
|
|
void get_param_io_limit(char** arr_values, int index_start, int size, int index_n1, char *key_find) {
|
|
|
|
int count = 0;
|
|
|
|
char** array_limit = NULL;
|
|
|
|
for (int index = index_start; index < size; index++) {
|
|
|
|
char** array_disk = NULL;
|
|
|
|
if (strstr(arr_values[index], "BandwidthMax")!=NULL) {
|
|
|
|
int* array_limit_size = NULL;
|
|
|
|
count = count + 1;
|
|
|
|
int index_n2 = 0;
|
|
|
|
|
|
|
|
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**));
|
|
|
|
|
|
|
|
array_disk = main_config.disk_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_disk = yon_remalloc(array_disk, sizeof(char*));
|
|
|
|
|
|
|
|
//array_limit_size = yon_remalloc(array_limit_size, sizeof(int));
|
|
|
|
|
|
|
|
//array_limit = yon_remalloc(array_limit, sizeof(char*));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
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_read_size, (index_n1 + 1) * sizeof(int*));
|
|
|
|
|
|
|
|
main_config.disk_write = yon_remalloc(main_config.disk_write, (index_n1 + 1) * sizeof(char**));
|
|
|
|
|
|
|
|
array_disk = main_config.disk_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_disk = yon_remalloc(array_disk, sizeof(char*));
|
|
|
|
|
|
|
|
//array_limit_size = yon_remalloc(array_limit_size, sizeof(int));
|
|
|
|
|
|
|
|
//array_limit = yon_remalloc(array_limit, sizeof(char*));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int flag_parsed = 0;
|
|
|
|
|
|
|
|
int flag_exit = 0;
|
|
|
|
|
|
|
|
for (int i = index_start; i < size; i++) {
|
|
|
|
|
|
|
|
if (strstr(arr_values[i], "BandwidthMax")!=NULL ) {
|
|
|
|
|
|
|
|
char* value = yon_char_new(arr_values[i]);
|
|
|
|
|
|
|
|
yon_char_divide_search(value, "=", -1);
|
|
|
|
|
|
|
|
if (strstr(arr_values[i], key_find)!=NULL) {
|
|
|
|
|
|
|
|
// Найден ключ в массив
|
|
|
|
|
|
|
|
char* disk = yon_char_divide_search(yon_char_new(value), " ", -1);
|
|
|
|
|
|
|
|
array_disk = yon_char_parsed_append(array_disk, &index_n2, yon_char_new(disk));
|
|
|
|
|
|
|
|
index_n2--;
|
|
|
|
|
|
|
|
set_pow_size(yon_char_new(value), &array_limit_size, &array_limit, index_n2);
|
|
|
|
|
|
|
|
flag_parsed = 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (strstr(arr_values[i], "BandwidthMax")!=NULL &&
|
|
|
|
|
|
|
|
strstr(arr_values[i], key_find)==NULL && flag_parsed == 1) {
|
|
|
|
|
|
|
|
// Найден ключ в массив, но не тот
|
|
|
|
|
|
|
|
flag_exit = 1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
free(value);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((index+1) == size) {
|
|
|
|
else if (flag_parsed == 1) {
|
|
|
|
|
|
|
|
char* disk = yon_char_divide_search(yon_char_new(arr_values[i]), " ", -1);
|
|
|
|
|
|
|
|
array_disk = yon_char_parsed_append(array_disk, &index_n2, yon_char_new(disk));
|
|
|
|
|
|
|
|
index_n2--;
|
|
|
|
|
|
|
|
set_pow_size(yon_char_new(arr_values[i]), &array_limit_size, &array_limit, index_n2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (flag_exit == 1) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
index_n2++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (index_n2 != 0 ) {
|
|
|
|
|
|
|
|
index_n2 += 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
array_limit = yon_char_parsed_append(array_limit, &index_n2, NULL);
|
|
|
|
|
|
|
|
index_n2--;
|
|
|
|
|
|
|
|
array_limit = yon_char_parsed_append(array_disk, &index_n2, NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
|
|
|
|
void set_pow_size(char* str_find, int** array_size, char*** array_data , int index) {
|
|
|
|
void set_pow_size(char* str_find, int** array_size, char*** array_data , int index) {
|
|
|
|
char* disk = NULL;
|
|
|
|
if (strstr(str_find, " ") != NULL) {
|
|
|
|
|
|
|
|
char* mem_s = yon_char_new(str_find);
|
|
|
|
if (strstr(str_find,"\"") != NULL) {
|
|
|
|
yon_char_divide_search(mem_s, " ", -1);
|
|
|
|
yon_char_divide(str_find, 0);
|
|
|
|
size_t len = strlen(mem_s);
|
|
|
|
size_t length = strlen(str_find);
|
|
|
|
mem_s = yon_char_divide(mem_s, len-1);
|
|
|
|
str_find = yon_char_divide(str_find, length-2);
|
|
|
|
*array_data = yon_char_parsed_append(*array_data, &index, mem_s);
|
|
|
|
if (str_find[0] == '\"') {
|
|
|
|
|
|
|
|
if (strstr(str_find, " ") != NULL) {
|
|
|
|
|
|
|
|
disk = yon_char_divide_search(str_find, " ", -1);
|
|
|
|
|
|
|
|
*array_data = yon_char_parsed_append(*array_data, &index, disk);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
size_t length = strlen(str_find);
|
|
|
|
size_t length = strlen(str_find);
|
|
|
|
if (strstr(str_find,"K") != NULL) {
|
|
|
|
if (strstr(str_find,"K") != NULL) {
|
|
|
@ -517,7 +569,6 @@ void main_cbx_2_event() {
|
|
|
|
if (menu_id >= 0) {
|
|
|
|
if (menu_id >= 0) {
|
|
|
|
free(cmd);
|
|
|
|
free(cmd);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void tree_view_select(GtkWidget *self, main_window *widgets) {
|
|
|
|
void tree_view_select(GtkWidget *self, main_window *widgets) {
|
|
|
@ -552,12 +603,14 @@ void tree_view_add(int index) {
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.cpu_limit = yon_char_parsed_append(main_config.cpu_limit, &main_config.size_tree_view, add_get_limit_cpu());
|
|
|
|
main_config.cpu_limit = yon_char_parsed_append(main_config.cpu_limit, &main_config.size_tree_view, add_get_limit_cpu());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
|
|
|
|
/*
|
|
|
|
main_config.i_o_limit_read = yon_char_parsed_append(main_config.i_o_limit_read, &main_config.size_tree_view, add_get_read_device());
|
|
|
|
main_config.i_o_limit_read = yon_char_parsed_append(main_config.i_o_limit_read, &main_config.size_tree_view, add_get_read_device());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.i_o_limit_write = yon_char_parsed_append(main_config.i_o_limit_write, &main_config.size_tree_view, add_get_write_device());
|
|
|
|
main_config.i_o_limit_write = yon_char_parsed_append(main_config.i_o_limit_write, &main_config.size_tree_view, add_get_write_device());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.disk = yon_char_parsed_append(main_config.disk, &main_config.size_tree_view, add_get_select_device());
|
|
|
|
main_config.disk = yon_char_parsed_append(main_config.disk, &main_config.size_tree_view, add_get_select_device());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
main_config.type_quota_size = philos_int_append(main_config.type_quota_size, &main_config.size_tree_view, add_get_quota_object_size());
|
|
|
|
main_config.type_quota_size = philos_int_append(main_config.type_quota_size, &main_config.size_tree_view, add_get_quota_object_size());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
@ -570,10 +623,10 @@ void tree_view_add(int index) {
|
|
|
|
main_config.swap_size = philos_int_append(main_config.swap_size, &main_config.size_tree_view, add_get_limit_swap_size());
|
|
|
|
main_config.swap_size = philos_int_append(main_config.swap_size, &main_config.size_tree_view, add_get_limit_swap_size());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
main_config.cpu_limit_size = philos_int_append(main_config.cpu_limit_size, &main_config.size_tree_view, add_get_limit_cpu_size());
|
|
|
|
main_config.cpu_limit_size = philos_int_append(main_config.cpu_limit_size, &main_config.size_tree_view, add_get_limit_cpu_size());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
//main_config.size_tree_view--;
|
|
|
|
main_config.i_o_limit_read_size = philos_int_append(main_config.i_o_limit_read_size, &main_config.size_tree_view, add_get_read_device_size());
|
|
|
|
//main_config.i_o_limit_read_size = philos_int_append(main_config.i_o_limit_read_size, &main_config.size_tree_view, add_get_read_device_size());
|
|
|
|
main_config.size_tree_view--;
|
|
|
|
///main_config.size_tree_view--;
|
|
|
|
main_config.i_o_limit_write_size = philos_int_append(main_config.i_o_limit_write_size, &main_config.size_tree_view, add_get_write_device_size());
|
|
|
|
// main_config.i_o_limit_write_size = philos_int_append(main_config.i_o_limit_write_size, &main_config.size_tree_view, add_get_write_device_size());
|
|
|
|
fill_tree_view(main_config.size_tree_view-1, main_config.size_tree_view, 1);
|
|
|
|
fill_tree_view(main_config.size_tree_view-1, main_config.size_tree_view, 1);
|
|
|
|
main_config.flag_set_data = 1;
|
|
|
|
main_config.flag_set_data = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -585,20 +638,57 @@ void fill_tree_view(int start, int size, int flag_gui_add) {
|
|
|
|
gtk_list_store_clear(main_config.list);
|
|
|
|
gtk_list_store_clear(main_config.list);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
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);
|
|
|
|
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[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);
|
|
|
|
1,main_config.quota_volume[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);
|
|
|
|
2,main_config.soft_raw_limit[index],
|
|
|
|
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
|
|
|
|
3,main_config.hard_raw_limit[index],
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
|
4,main_config.swap[index],
|
|
|
|
2,main_config.soft_raw_limit[index],
|
|
|
|
5,main_config.cpu_limit[index],
|
|
|
|
3,main_config.hard_raw_limit[index],
|
|
|
|
6,main_config.i_o_limit_read[index],
|
|
|
|
4,main_config.swap[index],
|
|
|
|
7,main_config.i_o_limit_write[index],-1);
|
|
|
|
5,main_config.cpu_limit[index],
|
|
|
|
|
|
|
|
6,str_io_read,
|
|
|
|
|
|
|
|
7,str_io_write,-1);
|
|
|
|
|
|
|
|
free(str_io_read);
|
|
|
|
|
|
|
|
free(str_io_write);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (flag_gui_add != 0) {
|
|
|
|
if (flag_gui_add != 0) {
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model);
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
char* format_io_limit_in_tree_view(config_str* disk, config_str* i_o_limit, int** i_o_limit_size, int index) {
|
|
|
|
|
|
|
|
int index_to_n2 = 0;
|
|
|
|
|
|
|
|
char* str = NULL;
|
|
|
|
|
|
|
|
while (1) {
|
|
|
|
|
|
|
|
if (i_o_limit[index]!= NULL) {
|
|
|
|
|
|
|
|
if (i_o_limit[index][index_to_n2] != NULL) {
|
|
|
|
|
|
|
|
if (index_to_n2!=0) {
|
|
|
|
|
|
|
|
str = yon_char_unite(str, ", ", disk[index][index_to_n2], " ", i_o_limit[index][index_to_n2], i_o_limit_size[index][index_to_n2], NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
str = yon_char_unite(str, disk[index][index_to_n2], " ", i_o_limit[index][index_to_n2], i_o_limit_size[index][index_to_n2], NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
index_to_n2++;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (str == NULL) {
|
|
|
|
|
|
|
|
str = (char*)malloc(sizeof(char*)*2);
|
|
|
|
|
|
|
|
str[0] = '-';
|
|
|
|
|
|
|
|
str[1] = '\0';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return str;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int tree_view_edit() {
|
|
|
|
int tree_view_edit() {
|
|
|
@ -615,23 +705,23 @@ int tree_view_edit() {
|
|
|
|
main_config.hard_raw_limit[index] = edit_get_hard();
|
|
|
|
main_config.hard_raw_limit[index] = edit_get_hard();
|
|
|
|
main_config.swap[index] = edit_get_limit_swap();
|
|
|
|
main_config.swap[index] = edit_get_limit_swap();
|
|
|
|
main_config.cpu_limit[index] = edit_get_limit_cpu();
|
|
|
|
main_config.cpu_limit[index] = edit_get_limit_cpu();
|
|
|
|
main_config.i_o_limit_read[index] = edit_get_read_device();
|
|
|
|
//main_config.i_o_limit_read[index] = edit_get_read_device();
|
|
|
|
main_config.i_o_limit_write[index] = edit_get_write_device();
|
|
|
|
//main_config.i_o_limit_write[index] = edit_get_write_device();
|
|
|
|
|
|
|
|
|
|
|
|
main_config.soft_raw_limit_size[index] = edit_get_soft_size();
|
|
|
|
main_config.soft_raw_limit_size[index] = edit_get_soft_size();
|
|
|
|
main_config.hard_raw_limit_size[index] = edit_get_hard_size();
|
|
|
|
main_config.hard_raw_limit_size[index] = edit_get_hard_size();
|
|
|
|
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();
|
|
|
|
main_config.i_o_limit_read_size[index] = edit_get_read_device_size();
|
|
|
|
//main_config.i_o_limit_read_size[index] = edit_get_read_device_size();
|
|
|
|
main_config.i_o_limit_write_size[index] = edit_get_write_device_size();
|
|
|
|
//main_config.i_o_limit_write_size[index] = edit_get_write_device_size();
|
|
|
|
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
|
|
|
|
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
|
1,main_config.quota_volume[index],
|
|
|
|
2,main_config.soft_raw_limit[index],
|
|
|
|
2,main_config.soft_raw_limit[index],
|
|
|
|
3,main_config.hard_raw_limit[index],
|
|
|
|
3,main_config.hard_raw_limit[index],
|
|
|
|
4,main_config.swap[index],
|
|
|
|
4,main_config.swap[index],
|
|
|
|
5,main_config.cpu_limit[index],
|
|
|
|
5,main_config.cpu_limit[index]
|
|
|
|
6,main_config.i_o_limit_read[index],
|
|
|
|
/*6,main_config.i_o_limit_read[index],
|
|
|
|
7,main_config.i_o_limit_write[index],-1);
|
|
|
|
7,main_config.i_o_limit_write[index],-1*/);
|
|
|
|
return 1;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
@ -725,12 +815,12 @@ void wrapper_edit_show() {
|
|
|
|
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);
|
|
|
|
edit_show(NULL, glade_path);
|
|
|
|
edit_show(NULL, glade_path);
|
|
|
|
edit_set_select_device(main_config.disk[index]);
|
|
|
|
//edit_set_select_device(main_config.disk[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]);
|
|
|
|
edit_set_limit_cpu(main_config.cpu_limit[index], main_config.cpu_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_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_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_init_windows();
|
|
|
|
edit_init_windows();
|
|
|
|
edit_set_limit_swap(main_config.swap[index], main_config.swap_size[index]);
|
|
|
|
edit_set_limit_swap(main_config.swap[index], main_config.swap_size[index]);
|
|
|
|
edit_event(get_widget_edit());
|
|
|
|
edit_event(get_widget_edit());
|
|
|
@ -774,10 +864,10 @@ void tree_view_del_line() {
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.cpu_limit = yon_char_parsed_shrink(main_config.cpu_limit, &main_config.size_tree_view,index);
|
|
|
|
main_config.cpu_limit = yon_char_parsed_shrink(main_config.cpu_limit, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.i_o_limit_read = yon_char_parsed_shrink(main_config.i_o_limit_read, &main_config.size_tree_view,index);
|
|
|
|
//main_config.i_o_limit_read = yon_char_parsed_shrink(main_config.i_o_limit_read, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
//main_config.size_tree_view++;
|
|
|
|
main_config.i_o_limit_write = yon_char_parsed_shrink(main_config.i_o_limit_write, &main_config.size_tree_view,index);
|
|
|
|
//main_config.i_o_limit_write = yon_char_parsed_shrink(main_config.i_o_limit_write, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
//main_config.size_tree_view++;
|
|
|
|
|
|
|
|
|
|
|
|
main_config.type_quota_size = remove_element_int_array(main_config.type_quota_size, &main_config.size_tree_view,index);
|
|
|
|
main_config.type_quota_size = remove_element_int_array(main_config.type_quota_size, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
@ -790,16 +880,17 @@ void tree_view_del_line() {
|
|
|
|
main_config.swap_size = remove_element_int_array(main_config.swap_size, &main_config.size_tree_view,index);
|
|
|
|
main_config.swap_size = remove_element_int_array(main_config.swap_size, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
main_config.cpu_limit_size = remove_element_int_array(main_config.cpu_limit_size, &main_config.size_tree_view,index);
|
|
|
|
main_config.cpu_limit_size = remove_element_int_array(main_config.cpu_limit_size, &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(main_config.i_o_limit_read_size, &main_config.size_tree_view,index);
|
|
|
|
//main_config.i_o_limit_read_size = remove_element_int_array(main_config.i_o_limit_read_size, &main_config.size_tree_view,index);
|
|
|
|
main_config.size_tree_view++;
|
|
|
|
//main_config.size_tree_view++;
|
|
|
|
main_config.i_o_limit_write_size = remove_element_int_array(main_config.i_o_limit_write_size, &main_config.size_tree_view,index);
|
|
|
|
//main_config.i_o_limit_write_size = remove_element_int_array(main_config.i_o_limit_write_size, &main_config.size_tree_view,index);
|
|
|
|
main_fill_tree_view_after_remove();
|
|
|
|
main_fill_tree_view_after_remove();
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model);
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model);
|
|
|
|
free(str_iter);
|
|
|
|
free(str_iter);
|
|
|
|
main_config.flag_set_data = 1;
|
|
|
|
main_config.flag_set_data = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void wrapper_all_save() {
|
|
|
|
void wrapper_all_save() {
|
|
|
|
int flag_mess_save = 0;
|
|
|
|
int flag_mess_save = 0;
|
|
|
|
if (main_config.flag_load == 0) {
|
|
|
|
if (main_config.flag_load == 0) {
|
|
|
@ -871,14 +962,14 @@ char* save_format_value(int index) {
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (strstr(main_config.i_o_limit_read[index], "-") == NULL) {
|
|
|
|
//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);
|
|
|
|
//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] = ',';
|
|
|
|
// split_simvol[0] = ',';
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
// split_simvol[1] = '\0';
|
|
|
|
}
|
|
|
|
//}
|
|
|
|
if (strstr(main_config.i_o_limit_write[index], "-") == NULL) {
|
|
|
|
//if (strstr(main_config.i_o_limit_write[index], "-") == NULL) {
|
|
|
|
value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("IOWriteBandwidthMax", main_config.i_o_limit_write[index],main_config.i_o_limit_write_size[index]), NULL);
|
|
|
|
//value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("IOWriteBandwidthMax", main_config.i_o_limit_write[index],main_config.i_o_limit_write_size[index]), NULL);
|
|
|
|
}
|
|
|
|
//}
|
|
|
|
return value;
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -978,9 +1069,9 @@ void main_fill_tree_view_after_remove() {
|
|
|
|
2,main_config.soft_raw_limit[index],
|
|
|
|
2,main_config.soft_raw_limit[index],
|
|
|
|
3,main_config.hard_raw_limit[index],
|
|
|
|
3,main_config.hard_raw_limit[index],
|
|
|
|
4,main_config.swap[index],
|
|
|
|
4,main_config.swap[index],
|
|
|
|
5,main_config.cpu_limit[index],
|
|
|
|
5,main_config.cpu_limit[index]
|
|
|
|
6,main_config.i_o_limit_read[index],
|
|
|
|
/*6,main_config.i_o_limit_read[index],
|
|
|
|
7,main_config.i_o_limit_write[index],-1);
|
|
|
|
7,main_config.i_o_limit_write[index],-1*/);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1001,7 +1092,6 @@ void main_localization(main_window *widgets) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int main(int argc, char *argv[]){
|
|
|
|
int main(int argc, char *argv[]){
|
|
|
|
// printf("%f\n", get_size_pow_memory(get_mem_total(), 3));
|
|
|
|
|
|
|
|
local=setlocale(LC_ALL, "");
|
|
|
|
local=setlocale(LC_ALL, "");
|
|
|
|
textdomain (LocaleName);
|
|
|
|
textdomain (LocaleName);
|
|
|
|
config_init();
|
|
|
|
config_init();
|
|
|
@ -1095,7 +1185,7 @@ int main(int argc, char *argv[]){
|
|
|
|
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
|
|
|
|
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
|
|
|
|
GTK_STYLE_PROVIDER(css),
|
|
|
|
GTK_STYLE_PROVIDER(css),
|
|
|
|
-1);
|
|
|
|
-1);
|
|
|
|
load_global_cfg();
|
|
|
|
//load_global_cfg();
|
|
|
|
load_system_cfg();
|
|
|
|
load_system_cfg();
|
|
|
|
gtk_main();
|
|
|
|
gtk_main();
|
|
|
|
}
|
|
|
|
}
|
|
|
|