[PATCH] Don't segfault on missing argument data
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 434c34b237ed718cb1c8312fc77629281d35c39f..9f5201b657ec219f078fde8c5a1a39354e84d88c 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -348,7 +348,6 @@ 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 int rate_quit;
 extern int exitall_on_terminate;
 extern int thread_number;
 extern int shm_id;
@@ -566,6 +565,7 @@ static inline void fio_sem_up(volatile int *sem)
        } while (0)
 
 struct ioengine_ops {
+       struct list_head list;
        char name[16];
        int version;
        int flags;
@@ -584,12 +584,16 @@ struct ioengine_ops {
 #define FIO_IOOPS_VERSION      3
 
 extern struct ioengine_ops *load_ioengine(struct thread_data *, const char *);
+extern int register_ioengine(struct ioengine_ops *);
+extern void unregister_ioengine(struct ioengine_ops *);
 extern void close_ioengine(struct thread_data *);
 
 /*
  * Mark unused variables passed to ops functions as unused, to silence gcc
  */
 #define fio_unused     __attribute((__unused__))
+#define fio_init       __attribute__((constructor))
+#define fio_exit       __attribute__((destructor))
 
 #define for_each_td(td, i)     \
        for ((i) = 0, (td) = &threads[0]; (i) < (int) thread_number; (i)++, (td)++)