debug.h revision c223da83e253b0057bb029bf4fbb55a05844215c
1a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe#ifndef FIO_DEBUG_H 2a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe#define FIO_DEBUG_H 3a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe 4a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe#include <assert.h> 5a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe#include "log.h" 6a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe 7a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboeenum { 8a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe FD_PROCESS = 0, 9a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe FD_FILE, 10a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe FD_IO, 11a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe FD_MEM, 12a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe FD_BLKTRACE, 13a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe FD_VERIFY, 14a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe FD_RANDOM, 15a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe FD_PARSE, 16cd991b9e36b18903f1564a4bfafdc83a9f165219Jens Axboe FD_DISKUTIL, 175e1d306e4f9a6337d07cc2d536d77c53e083226fJens Axboe FD_JOB, 1829adda3ce304f16036cafee6c099aa08444a7db1Jens Axboe FD_MUTEX, 1979d16311c8d0c7188d73df77838fb1b4b6ff58dbJens Axboe FD_PROFILE, 20c223da83e253b0057bb029bf4fbb55a05844215cJens Axboe FD_TIME, 21a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe FD_DEBUG_MAX, 22a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe}; 23a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe 2469b98d4c9945bed6b3446a9e73bfaf8e557cf033Jens Axboeextern unsigned int fio_debug_jobno, *fio_debug_jobp; 2569b98d4c9945bed6b3446a9e73bfaf8e557cf033Jens Axboe 26a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe#ifdef FIO_INC_DEBUG 27a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboestruct debug_level { 28a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe const char *name; 29a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe unsigned long shift; 305e1d306e4f9a6337d07cc2d536d77c53e083226fJens Axboe unsigned int jobno; 31a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe}; 32a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboeextern struct debug_level debug_levels[]; 33a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe 34a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboeextern unsigned long fio_debug; 35a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe 36bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboevoid __dprint(int type, const char *str, ...); 37bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboe 38bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboe#define dprint(type, str, args...) \ 39bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboe do { \ 40bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboe if ((((1 << type)) & fio_debug) == 0) \ 41bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboe break; \ 42bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboe __dprint((type), (str), ##args); \ 43bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboe } while (0) \ 44a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe 45a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe#else 46a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe 47bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboestatic inline void dprint(int type, const char *str, ...) 48bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboe{ 49bf84eacbfc91a952eb5b781ad2955109c862d41eJens Axboe} 50a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe#endif 51a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe 52a3d741fa3bc3120d5b62a56826a97524daa32803Jens Axboe#endif 53