X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=6a5ead4d453dfa288dffdece1b5191afb8d9ac73;hb=c58b33b4e0940f3ec89d6e302a0c90e2ec1f1fbc;hp=b3ba5db2e95ac9e16cd0633bc8912b125c08e333;hpb=1368d95b060802f3032bb662144faa99bd521b56;p=fio.git diff --git a/fio.h b/fio.h index b3ba5db2..6a5ead4d 100644 --- a/fio.h +++ b/fio.h @@ -36,6 +36,8 @@ #include "lib/rand.h" #include "lib/rbtree.h" #include "lib/num2str.h" +#include "lib/memalign.h" +#include "smalloc.h" #include "client.h" #include "server.h" #include "stat.h" @@ -245,7 +247,7 @@ struct thread_data { void *iolog_buf; FILE *iolog_f; - unsigned long rand_seeds[FIO_RAND_NR_OFFS]; + uint64_t rand_seeds[FIO_RAND_NR_OFFS]; struct frand_state bsrange_state[DDIR_RWDIR_CNT]; struct frand_state verify_state; @@ -660,8 +662,14 @@ extern const char *runstate_to_name(int runstate); */ #define FIO_REAP_TIMEOUT 300 -#define TERMINATE_ALL (-1U) -extern void fio_terminate_threads(unsigned int); +enum { + TERMINATE_NONE = 0, + TERMINATE_GROUP = 1, + TERMINATE_STONEWALL = 2, + TERMINATE_ALL = -1, +}; + +extern void fio_terminate_threads(unsigned int, unsigned int); extern void fio_mark_td_terminate(struct thread_data *); /* @@ -705,16 +713,6 @@ extern void lat_target_reset(struct thread_data *); (i) < (td)->o.nr_files && ((f) = (td)->files[i]) != NULL; \ (i)++) -#define fio_assert(td, cond) do { \ - if (!(cond)) { \ - int *__foo = NULL; \ - fprintf(stderr, "file:%s:%d, assert %s failed\n", __FILE__, __LINE__, #cond); \ - td_set_runstate((td), TD_EXITED); \ - (td)->error = EFAULT; \ - *__foo = 0; \ - } \ -} while (0) - static inline bool fio_fill_issue_time(struct thread_data *td) { if (td->o.read_iolog_file || @@ -860,4 +858,14 @@ extern void check_trigger_file(void); extern bool in_flight_overlap(struct io_u_queue *q, struct io_u *io_u); extern pthread_mutex_t overlap_check; +static inline void *fio_memalign(size_t alignment, size_t size, bool shared) +{ + return __fio_memalign(alignment, size, shared ? smalloc : malloc); +} + +static inline void fio_memfree(void *ptr, size_t size, bool shared) +{ + return __fio_memfree(ptr, size, shared ? sfree : free); +} + #endif