fio: make client operations pluggable

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/client.h b/client.h
new file mode 100644
index 0000000..b91b742
--- /dev/null
+++ b/client.h
@@ -0,0 +1,32 @@
+#ifndef CLIENT_H
+#define CLIENT_H
+
+struct fio_client;
+struct fio_net_cmd;
+
+typedef void (*client_text_op_func)(struct fio_client *client,
+		FILE *f, __u16 pdu_len, const char *buf);
+
+typedef void (*client_disk_util_op_func)(struct fio_client *client, struct fio_net_cmd *cmd);
+
+typedef void (*client_thread_status_op)(struct fio_net_cmd *cmd);
+
+typedef void (*client_group_stats_op)(struct fio_net_cmd *cmd);
+
+typedef void (*client_eta_op)(struct fio_client *client, struct fio_net_cmd *cmd);
+
+typedef void (*client_probe_op)(struct fio_client *client, struct fio_net_cmd *cmd);
+
+struct client_ops {
+	client_text_op_func text_op;
+	client_disk_util_op_func disk_util;
+	client_thread_status_op thread_status;
+	client_group_stats_op group_stats;
+	client_eta_op eta; 
+	client_probe_op probe;
+};
+
+extern struct client_ops fio_client_ops;
+
+#endif
+