Fix struct jobs_eta packing on 32 vs 64-bit archs
[fio.git] / stat.h
diff --git a/stat.h b/stat.h
index 3f68305adb2841c3aac8f98de942be94b8e23d5b..fb1485dfb46eb86ec8335e6fb8a4c986cd340ce4 100644 (file)
--- a/stat.h
+++ b/stat.h
@@ -186,9 +186,13 @@ struct thread_stat {
 struct jobs_eta {
        uint32_t nr_running;
        uint32_t nr_ramp;
+
        uint32_t nr_pending;
        uint32_t nr_setting_up;
+
        uint32_t files_open;
+       uint32_t pad1;
+
        uint32_t m_rate[DDIR_RWDIR_CNT], t_rate[DDIR_RWDIR_CNT];
        uint32_t m_iops[DDIR_RWDIR_CNT], t_iops[DDIR_RWDIR_CNT];
        uint32_t rate[DDIR_RWDIR_CNT];
@@ -202,9 +206,12 @@ struct jobs_eta {
         * Network 'copy' of run_str[]
         */
        uint32_t nr_threads;
+       uint32_t pad2;
        uint8_t run_str[];
 };
 
+extern struct jobs_eta *get_jobs_eta(int force, size_t *size);
+
 extern void stat_init(void);
 extern void stat_exit(void);
 
@@ -240,5 +247,10 @@ static inline int usec_to_msec(unsigned long *min, unsigned long *max,
 
        return 1;
 }
+/*
+ * Worst level condensing would be 1:5, so allow enough room for that
+ */
+#define __THREAD_RUNSTR_SZ(nr) ((nr) * 5)
+#define THREAD_RUNSTR_SZ       __THREAD_RUNSTR_SZ(thread_number)
 
 #endif