X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=client.h;h=d77b6076f11c7dce2ec48b5a3c90bcfdfb75763f;hb=9f9340cc3a15bca2aa6e883bd5be3d0c9471f573;hp=394b685df70f608a9a7bb3535c2a4a92239684f5;hpb=e6fe02651641fc64d2fa4fcfe9b1013b2947d11b;p=fio.git diff --git a/client.h b/client.h index 394b685d..d77b6076 100644 --- a/client.h +++ b/client.h @@ -1,7 +1,6 @@ #ifndef CLIENT_H #define CLIENT_H -#include #include #include #include @@ -10,7 +9,6 @@ #include "stat.h" struct fio_net_cmd; -struct client_ops; enum { Client_created = 0, @@ -39,6 +37,7 @@ struct fio_client { int port; int fd; unsigned int refs; + unsigned int last_cmd; char *name; @@ -70,18 +69,23 @@ struct fio_client { uint16_t argc; char **argv; - struct client_ops *ops; + struct client_ops const *ops; void *client_data; struct client_file *files; unsigned int nr_files; + + struct buf_output buf; }; typedef void (client_cmd_op)(struct fio_client *, struct fio_net_cmd *); +typedef void (client_op)(struct fio_client *); typedef void (client_eta_op)(struct jobs_eta *je); typedef void (client_timed_out_op)(struct fio_client *); typedef void (client_jobs_eta_op)(struct fio_client *client, struct jobs_eta *je); +extern struct client_ops const fio_client_ops; + struct client_ops { client_cmd_op *text; client_cmd_op *disk_util; @@ -94,7 +98,7 @@ struct client_ops { client_cmd_op *add_job; client_cmd_op *update_job; client_timed_out_op *timed_out; - client_cmd_op *stop; + client_op *stop; client_cmd_op *start; client_cmd_op *job_start; client_timed_out_op *removed; @@ -104,8 +108,6 @@ struct client_ops { uint32_t client_type; }; -extern struct client_ops fio_client_ops; - struct client_eta { unsigned int pending; struct jobs_eta eta; @@ -126,8 +128,8 @@ extern int fio_start_client(struct fio_client *); extern int fio_start_all_clients(void); extern int fio_clients_send_ini(const char *); extern int fio_client_send_ini(struct fio_client *, const char *, bool); -extern int fio_handle_clients(struct client_ops *); -extern int fio_client_add(struct client_ops *, const char *, void **); +extern int fio_handle_clients(struct client_ops const*); +extern int fio_client_add(struct client_ops const*, const char *, void **); extern struct fio_client *fio_client_add_explicit(struct client_ops *, const char *, int, int); extern void fio_client_add_cmd_option(void *, const char *); extern int fio_client_add_ini_file(void *, const char *, bool);