*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#include <locale.h>
-#include <malloc.h>
+#include <stdlib.h>
#include <string.h>
+#include <libgen.h>
#include <glib.h>
#include <cairo.h>
#include "gclient.h"
#include "graph.h"
-static int gfio_server_running;
+struct gui main_ui;
+
+static bool gfio_server_running;
static unsigned int gfio_graph_limit = 100;
GdkColor gfio_color_white;
switch (ge->state) {
default:
gfio_report_error(ge, "Bad client state: %u\n", ge->state);
- /* fall through to new state */
+ /* fall-through */
case GE_STATE_NEW:
connect_state = 1;
edit_state = 1;
static void *server_thread(void *arg)
{
- is_backend = 1;
- gfio_server_running = 1;
+ fio_server_create_sk_key();
+ is_backend = true;
+ gfio_server_running = true;
fio_start_server(NULL);
- gfio_server_running = 0;
+ gfio_server_running = false;
+ fio_server_destroy_sk_key();
return NULL;
}
static void gfio_start_server(struct gui *ui)
{
if (!gfio_server_running) {
- gfio_server_running = 1;
+ gfio_server_running = true;
pthread_create(&ui->server_t, NULL, server_thread, NULL);
pthread_detach(ui->server_t);
}
{
struct gui_entry *ge;
- ge = malloc(sizeof(*ge));
- memset(ge, 0, sizeof(*ge));
+ ge = calloc(1, sizeof(*ge));
ge->state = GE_STATE_NEW;
ge->ui = ui;
return ge;
{
const char *authors[] = {
"Jens Axboe <axboe@kernel.dk>",
- "Stephen Carmeron <stephenmcameron@gmail.com>",
+ "Stephen Cameron <stephenmcameron@gmail.com>",
NULL
};
const char *license[] = {
"program-name", "gfio",
"comments", "Gtk2 UI for fio",
"license", license_trans,
- "website", "http://git.kernel.dk/?p=fio.git;a=summary",
+ "website", "http://git.kernel.dk/cgit/fio/",
"authors", authors,
"version", fio_version_string,
- "copyright", "© 2012 Jens Axboe <axboe@kernel.dk>",
+ "copyright", "© 2012-2017 Jens Axboe <axboe@kernel.dk>",
"logo-icon-name", "fio",
/* Must be last: */
"wrap-license", TRUE,
{ "Quit", GTK_STOCK_QUIT, NULL, "<Control>Q", NULL, G_CALLBACK(quit_clicked) },
{ "About", GTK_STOCK_ABOUT, NULL, NULL, NULL, G_CALLBACK(about_dialog) },
};
-static gint nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);
+static gint nmenu_items = FIO_ARRAY_SIZE(menu_items);
static const gchar *ui_string = " \
<ui> \
g_signal_connect(ge->eta.names, "changed", G_CALLBACK(combo_entry_changed), ge);
g_signal_connect(ge->eta.names, "destroy", G_CALLBACK(combo_entry_destroy), ge);
ge->eta.iotype.entry = new_info_entry_in_frame(probe_box, "IO");
- ge->eta.bs.entry = new_info_entry_in_frame(probe_box, "Blocksize (Read/Write)");
+ ge->eta.bs.entry = new_info_entry_in_frame(probe_box, "Blocksize (Read/Write/Trim)");
ge->eta.ioengine.entry = new_info_entry_in_frame(probe_box, "IO Engine");
ge->eta.iodepth.entry = new_info_entry_in_frame(probe_box, "IO Depth");
ge->eta.jobs = new_info_entry_in_frame(probe_box, "Jobs");
probe_box = gtk_hbox_new(FALSE, 3);
gtk_box_pack_start(GTK_BOX(probe_frame), probe_box, FALSE, FALSE, 3);
ge->eta.read_bw = new_info_entry_in_frame_rgb(probe_box, "Read BW", GFIO_READ_R, GFIO_READ_G, GFIO_READ_B);
- ge->eta.read_iops = new_info_entry_in_frame_rgb(probe_box, "IOPS", GFIO_READ_R, GFIO_READ_G, GFIO_READ_B);
+ ge->eta.read_iops = new_info_entry_in_frame_rgb(probe_box, "Read IOPS", GFIO_READ_R, GFIO_READ_G, GFIO_READ_B);
ge->eta.write_bw = new_info_entry_in_frame_rgb(probe_box, "Write BW", GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B);
- ge->eta.write_iops = new_info_entry_in_frame_rgb(probe_box, "IOPS", GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B);
+ ge->eta.write_iops = new_info_entry_in_frame_rgb(probe_box, "Write IOPS", GFIO_WRITE_R, GFIO_WRITE_G, GFIO_WRITE_B);
ge->eta.trim_bw = new_info_entry_in_frame_rgb(probe_box, "Trim BW", GFIO_TRIM_R, GFIO_TRIM_G, GFIO_TRIM_B);
- ge->eta.trim_iops = new_info_entry_in_frame_rgb(probe_box, "IOPS", GFIO_TRIM_R, GFIO_TRIM_G, GFIO_TRIM_B);
+ ge->eta.trim_iops = new_info_entry_in_frame_rgb(probe_box, "Trim IOPS", GFIO_TRIM_R, GFIO_TRIM_G, GFIO_TRIM_B);
/*
* Only add this if we have a commit rate
gtk_container_add(GTK_CONTAINER(bottom_align), ge->buttonbox);
gtk_box_pack_start(GTK_BOX(main_vbox), bottom_align, FALSE, FALSE, 0);
- add_buttons(ge, buttonspeclist, ARRAY_SIZE(buttonspeclist));
+ add_buttons(ge, buttonspeclist, FIO_ARRAY_SIZE(buttonspeclist));
/*
* Set up thread status progress bar