[PATCH] Move related code next to each other
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 67c2ec2179a9d24113e1e86f09e16d7e086b1539..03a2378d94c9451f13d8b2f9177d5602a91910c3 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -192,6 +192,8 @@ struct thread_data {
        unsigned char do_disk_util;
        unsigned char override_sync;
        unsigned char rand_repeatable;
+       unsigned char write_lat_log;
+       unsigned char write_bw_log;
 
        unsigned int bs;
        unsigned int min_bs;
@@ -333,12 +335,7 @@ struct thread_data {
 #define td_verror(td, err)     __td_verror((td), (err), strerror((err)))
 #define td_vmsg(td, err, msg)  __td_verror((td), (err), (msg))
 
-extern struct io_u *__get_io_u(struct thread_data *);
-extern void put_io_u(struct thread_data *, struct io_u *);
-
 extern int rate_quit;
-extern int write_lat_log;
-extern int write_bw_log;
 extern int exitall_on_terminate;
 extern int thread_number;
 extern int shm_id;
@@ -479,6 +476,32 @@ extern void populate_verify_io_u(struct thread_data *, struct io_u *);
 extern int get_next_verify(struct thread_data *td, struct io_u *);
 extern int do_io_u_verify(struct thread_data *, struct io_u **);
 
+/*
+ * Memory helpers
+ */
+extern int fio_pin_memory(void);
+extern void fio_unpin_memory(void);
+extern int allocate_io_mem(struct thread_data *);
+extern void free_io_mem(struct thread_data *);
+
+/*
+ * io unit handling
+ */
+#define queue_full(td) list_empty(&(td)->io_u_freelist)
+extern struct io_u *__get_io_u(struct thread_data *);
+extern struct io_u *get_io_u(struct thread_data *, struct fio_file *);
+extern void put_io_u(struct thread_data *, struct io_u *);
+extern void ios_completed(struct thread_data *, struct io_completion_data *);
+extern void io_completed(struct thread_data *, struct io_u *, struct io_completion_data *);
+
+/*
+ * io engine entry points
+ */
+extern int td_io_prep(struct thread_data *, struct io_u *);
+extern int td_io_queue(struct thread_data *, struct io_u *);
+extern int td_io_sync(struct thread_data *, struct fio_file *);
+extern int td_io_getevents(struct thread_data *, int, int, struct timespec *);
+
 /*
  * This is a pretty crappy semaphore implementation, but with the use that fio
  * has (just signalling start/go conditions), it doesn't have to be better.