rate_submit: synchronize accesses to io_u_queue->nr
[fio.git] / gfio.h
diff --git a/gfio.h b/gfio.h
index d115f7c75b7a204df68b5bc279a3be6c6e974e24..aa14e3c7d961108c7759bbe9449c2fbea7b65d57 100644 (file)
--- a/gfio.h
+++ b/gfio.h
@@ -3,7 +3,11 @@
 
 #include <gtk/gtk.h>
 
+#include "gcompat.h"
+#include "stat.h"
+#include "thread_options.h"
 #include "ghelpers.h"
+#include "graph.h"
 
 struct probe_widget {
        GtkWidget *hostname;
@@ -28,6 +32,8 @@ struct eta_widget {
        GtkWidget *write_iops;
        GtkWidget *cw_bw;
        GtkWidget *cw_iops;
+       GtkWidget *trim_bw;
+       GtkWidget *trim_iops;
 };
 
 struct gfio_graphs {
@@ -35,7 +41,13 @@ struct gfio_graphs {
 #define DRAWING_AREA_YDIM 400
        GtkWidget *drawing_area;
        struct graph *iops_graph;
+       graph_label_t read_iops;
+       graph_label_t write_iops;
+       graph_label_t trim_iops;
        struct graph *bandwidth_graph;
+       graph_label_t read_bw;
+       graph_label_t write_bw;
+       graph_label_t trim_bw;
 };
 
 /*
@@ -65,7 +77,7 @@ struct gui {
        pthread_t t;
        int handler_running;
 
-       struct flist_head list;
+       GHashTable *ge_hash;
 } main_ui;
 
 enum {
@@ -88,7 +100,6 @@ enum {
  * Notebook entry
  */
 struct gui_entry {
-       struct flist_head list;
        struct gui *ui;
 
        GtkWidget *vbox;
@@ -118,8 +129,11 @@ struct gui_entry {
        struct graph *lat_bucket_graph;
 
        struct gfio_client *client;
-       int nr_job_files;
-       char **job_files;
+       char *job_file;
+       char *host;
+       int port;
+       int type;
+       int server_start;
 };
 
 struct end_results {
@@ -127,21 +141,39 @@ struct end_results {
        struct thread_stat ts;
 };
 
+struct gfio_client_options {
+       struct flist_head list;
+       struct thread_options o;
+};
+
 struct gfio_client {
        struct gui_entry *ge;
        struct fio_client *client;
        GtkWidget *err_entry;
-       struct thread_options o;
+       uint32_t client_cpus;
+       uint64_t client_flags;
+
+       struct flist_head o_list;
+       unsigned int o_list_nr;
 
        struct end_results *results;
        unsigned int nr_results;
 
+       uint32_t update_job_status;
+       volatile uint32_t update_job_done;
+
        struct cmd_du_pdu *du;
        unsigned int nr_du;
 };
 
-#define ARRAYSIZE(x) (sizeof((x)) / (sizeof((x)[0])))
-
 #define GFIO_MIME      "text/fio"
 
+extern void gfio_view_log(struct gui *ui);
+extern void gfio_set_state(struct gui_entry *ge, unsigned int state);
+extern void clear_ge_ui_info(struct gui_entry *ge);
+
+extern const char *gfio_graph_font;
+extern GdkColor gfio_color_white;
+extern GdkColor gfio_color_lightyellow;
+
 #endif