|
|
|
@ -77,8 +77,6 @@ void add_init_windows() {
|
|
|
|
|
philos_set_active_widgets(add_widgets->chkSevereRestrictionAdd, add_widgets->spinSevereRestrictionAdd, add_widgets->cmbSevereRestrictionAdd,0 , CMD_RAW);
|
|
|
|
|
philos_set_active_widgets(add_widgets->chkPaddingFLAdd, add_widgets->spinPaddingFLAdd, add_widgets->cmbPaddingFLAdd,0 , CMD_SWAP);
|
|
|
|
|
philos_set_active_widgets(add_widgets->chkCPULimitAdd, add_widgets->spinCPULimitAdd, add_widgets->lblCPULimitAdd,1 , CMD_CPU);
|
|
|
|
|
philos_set_active_widgets_device_io(add_widgets->cbtAddDevice, add_widgets->chbAddWrite, add_widgets->spinAddWrite, add_widgets->cbtAddWrite);
|
|
|
|
|
philos_set_active_widgets_device_io(add_widgets->cbtAddDevice, add_widgets->chbAddRead, add_widgets->spinAddRead, add_widgets->cbtAddRead);
|
|
|
|
|
add_generate_cmd();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
@ -89,7 +87,7 @@ void add_init_windows() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int check_activ_disk() {
|
|
|
|
|
char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(&add_widgets->cbtAddDevice));
|
|
|
|
|
char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice));
|
|
|
|
|
disk = yon_char_divide_search(disk," ", -1);
|
|
|
|
|
int bool_read = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead));
|
|
|
|
|
int bool_write = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite));
|
|
|
|
@ -101,12 +99,13 @@ int check_activ_disk() {
|
|
|
|
|
|
|
|
|
|
void add_del_disk() {
|
|
|
|
|
char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice));
|
|
|
|
|
disk = yon_char_divide_search(disk, " ", -1);
|
|
|
|
|
int bool_read = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead));
|
|
|
|
|
int bool_write = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite));
|
|
|
|
|
if (check_activ_disk() == 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (obj_add_config.disk != NULL && obj_add_config.size != 0) {
|
|
|
|
|
if (obj_add_config.disk && obj_add_config.size) {
|
|
|
|
|
int index_find = 0;
|
|
|
|
|
for (int index = 0; index < obj_add_config.size; index++) {
|
|
|
|
|
char* disk_cfg = yon_char_new(obj_add_config.disk[index]);
|
|
|
|
@ -116,24 +115,52 @@ void add_del_disk() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ((bool_read == 0 && bool_write == 0 && index_find != 0)) {
|
|
|
|
|
yon_char_parsed_shrink(obj_add_config.disk,&obj_add_config.size, index_find);
|
|
|
|
|
obj_add_config.disk = yon_char_parsed_shrink(obj_add_config.disk,&obj_add_config.size, index_find);
|
|
|
|
|
obj_add_config.size++;
|
|
|
|
|
remove_element_int_array(obj_add_config.i_o_limit_read_size,&obj_add_config.size, index_find);
|
|
|
|
|
obj_add_config.i_o_limit_read_size = remove_element_int_array(obj_add_config.i_o_limit_read_size,&obj_add_config.size, index_find);
|
|
|
|
|
obj_add_config.size++;
|
|
|
|
|
remove_element_int_array(obj_add_config.i_o_limit_write_size,&obj_add_config.size, index_find);
|
|
|
|
|
obj_add_config.i_o_limit_write_size = remove_element_int_array(obj_add_config.i_o_limit_write_size,&obj_add_config.size, index_find);
|
|
|
|
|
obj_add_config.size++;
|
|
|
|
|
yon_char_parsed_shrink(obj_add_config.i_o_limit_read,&obj_add_config.size, index_find);
|
|
|
|
|
obj_add_config.i_o_limit_read = yon_char_parsed_shrink(obj_add_config.i_o_limit_read,&obj_add_config.size, index_find);
|
|
|
|
|
obj_add_config.size++;
|
|
|
|
|
yon_char_parsed_shrink(obj_add_config.i_o_limit_write,&obj_add_config.size, index_find);
|
|
|
|
|
obj_add_config.i_o_limit_write = yon_char_parsed_shrink(obj_add_config.i_o_limit_write,&obj_add_config.size, index_find);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
char* pard_array_edit_cmd(char* cmd, char* key, char** array_io, int* array_io_pow_size) {
|
|
|
|
|
char* split_simvol = g_malloc0(sizeof(char)*2);
|
|
|
|
|
if (obj_add_config.disk && obj_add_config.size && array_io && array_io_pow_size) {
|
|
|
|
|
int index_find = 0;
|
|
|
|
|
for (int index = 0; index < obj_add_config.size; index++) {
|
|
|
|
|
if (index==0) {
|
|
|
|
|
if (strlen(cmd)>1) {
|
|
|
|
|
cmd = yon_char_unite(cmd, ",", key, NULL);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
cmd = yon_char_unite(cmd, key, NULL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (array_io_pow_size[index] != -1) {
|
|
|
|
|
cmd = yon_char_unite(cmd, split_simvol, obj_add_config.disk[index], philos_format_cfg_str_size_memory(" ", array_io[index], array_io_pow_size[index]), NULL);
|
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
free(split_simvol);
|
|
|
|
|
return cmd;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void add_disk_all(){
|
|
|
|
|
char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice));
|
|
|
|
|
if (check_activ_disk() == 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (obj_add_config.disk != NULL && obj_add_config.size !=0) {
|
|
|
|
|
disk = yon_char_divide_search(disk, " ", -1);
|
|
|
|
|
int disk_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddDevice));
|
|
|
|
|
int bool_read = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead));
|
|
|
|
|
int bool_write = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite));
|
|
|
|
|
if (disk_id >= 0 && obj_add_config.size !=0) {
|
|
|
|
|
int index_find = 0;
|
|
|
|
|
for (int index = 0; index < obj_add_config.size; index++) {
|
|
|
|
|
char* disk_cfg = yon_char_new(obj_add_config.disk[index]);
|
|
|
|
@ -143,29 +170,32 @@ void add_disk_all(){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (index_find == 0) {
|
|
|
|
|
yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
|
|
|
|
|
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead)));
|
|
|
|
|
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead)));
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite)));
|
|
|
|
|
obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite)));
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,philos_get_size_bite(add_widgets->chbAddRead, add_widgets->spinAddRead,add_widgets->cbtAddRead));
|
|
|
|
|
obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddRead)));
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,philos_get_size_bite(add_widgets->chbAddWrite, add_widgets->spinAddWrite,add_widgets->cbtAddWrite));
|
|
|
|
|
obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddWrite)));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
|
|
|
|
|
if (bool_read == 1 || bool_write == 1) {
|
|
|
|
|
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead)));
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead)));
|
|
|
|
|
obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddRead)));
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite)));
|
|
|
|
|
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,philos_get_size_bite(add_widgets->chbAddRead, add_widgets->spinAddRead, add_widgets->cbtAddRead));
|
|
|
|
|
obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite)));
|
|
|
|
|
obj_add_config.size--;
|
|
|
|
|
yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,philos_get_size_bite(add_widgets->chbAddWrite, add_widgets->spinAddWrite,add_widgets->cbtAddWrite));
|
|
|
|
|
obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddWrite)));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void event_check_io_device() {
|
|
|
|
@ -190,15 +220,15 @@ void add_event(add_window *widgets) {
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->spinSevereRestrictionAdd),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->spinPaddingFLAdd),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->spinCPULimitAdd),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->spinAddRead),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->spinAddWrite),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->spinAddRead),"changed",G_CALLBACK(event_check_io_device), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->spinAddWrite),"changed",G_CALLBACK(event_check_io_device), NULL);
|
|
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cmSevereRestrictionAdd),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cmbSevereRestrictionAdd),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cmbPaddingFLAdd),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cbtAddRead),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cbtAddWrite),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cbtAddDevice),"changed",G_CALLBACK(add_init_windows), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cbtAddRead),"changed",G_CALLBACK(event_check_io_device), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cbtAddWrite),"changed",G_CALLBACK(event_check_io_device), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cbtAddDevice),"changed",G_CALLBACK(event_check_io_device), NULL);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -405,33 +435,9 @@ void add_generate_cmd() {
|
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
|
}
|
|
|
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) {
|
|
|
|
|
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddDevice));
|
|
|
|
|
if (menu_id != -1) {
|
|
|
|
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinAddRead));
|
|
|
|
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
|
|
|
|
"IOReadBandwidthMax=\"",
|
|
|
|
|
get_device_cfg()->name_disk[menu_id],
|
|
|
|
|
" ",
|
|
|
|
|
yon_char_from_int(size_bite),
|
|
|
|
|
philos_str_size_pow_byte(add_widgets->cbtAddRead),"\"", NULL);
|
|
|
|
|
}
|
|
|
|
|
split_simvol[0] = ',';
|
|
|
|
|
split_simvol[1] = '\0';
|
|
|
|
|
str_cmd = pard_array_edit_cmd(str_cmd, "IOReadBandwidthMax=", obj_add_config.i_o_limit_read, obj_add_config.i_o_limit_read_size);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite))) {
|
|
|
|
|
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddDevice));
|
|
|
|
|
if (menu_id != -1) {
|
|
|
|
|
size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinAddWrite));
|
|
|
|
|
str_cmd = yon_char_unite(str_cmd, split_simvol,
|
|
|
|
|
"IOWriteBandwidthMax=\"",
|
|
|
|
|
get_device_cfg()->name_disk[menu_id],
|
|
|
|
|
" ",
|
|
|
|
|
yon_char_from_int(size_bite),
|
|
|
|
|
philos_str_size_pow_byte(add_widgets->cbtAddWrite),"\"", NULL);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
str_cmd = pard_array_edit_cmd(str_cmd, "IOWriteBandwidthMax=", obj_add_config.i_o_limit_write, obj_add_config.i_o_limit_write_size);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(add_widgets->entryAddCmd), str_cmd);
|
|
|
|
|
free(split_simvol);
|
|
|
|
|
}
|
|
|
|
|