-/*****************************************************************************\
+/*
* ZPIOS is a heavily modified version of the original PIOS test code.
* It is designed to have the test code running in the Linux kernel
* against ZFS while still being flexibly controled from user space.
*
* You should have received a copy of the GNU General Public License along
* with ZPIOS. If not, see <http://www.gnu.org/licenses/>.
-\*****************************************************************************/
+ */
#ifndef _ZPIOS_INTERNAL_H
-#define _ZPIOS_INTERNAL_H
+#define _ZPIOS_INTERNAL_H
#include "zpios-ctl.h"
-#define OBJ_SIZE 64
+#define OBJ_SIZE 64
struct run_args;
int thread_no;
int rc;
zpios_stats_t stats;
- kmutex_t lock;
+ kmutex_t lock;
} thread_data_t;
/* region for IO data */
__u64 max_offset;
dmu_obj_t obj;
zpios_stats_t stats;
- kmutex_t lock;
+ kmutex_t lock;
} zpios_region_t;
/* arguments for one run */
/* Control data */
objset_t *os;
- wait_queue_head_t waitq;
+ wait_queue_head_t waitq;
volatile uint64_t threads_done;
- kmutex_t lock_work;
+ kmutex_t lock_work;
kmutex_t lock_ctl;
__u32 region_next;
zpios_region_t regions[0]; /* Must be last element */
} run_args_t;
-#define ZPIOS_INFO_BUFFER_SIZE 65536
-#define ZPIOS_INFO_BUFFER_REDZONE 1024
+#define ZPIOS_INFO_BUFFER_SIZE 65536
+#define ZPIOS_INFO_BUFFER_REDZONE 1024
typedef struct zpios_info {
- spinlock_t info_lock;
- int info_size;
- char *info_buffer;
- char *info_head; /* Internal kernel use only */
+ spinlock_t info_lock;
+ int info_size;
+ char *info_buffer;
+ char *info_head; /* Internal kernel use only */
} zpios_info_t;
-#define zpios_print(file, format, args...) \
-({ zpios_info_t *_info_ = (zpios_info_t *)file->private_data; \
- int _rc_; \
- \
- ASSERT(_info_); \
- ASSERT(_info_->info_buffer); \
- \
- spin_lock(&_info_->info_lock); \
- \
- /* Don't allow the kernel to start a write in the red zone */ \
- if ((int)(_info_->info_head - _info_->info_buffer) > \
- (_info_->info_size - ZPIOS_INFO_BUFFER_REDZONE)) { \
- _rc_ = -EOVERFLOW; \
- } else { \
- _rc_ = sprintf(_info_->info_head, format, args); \
- if (_rc_ >= 0) \
- _info_->info_head += _rc_; \
- } \
- \
- spin_unlock(&_info_->info_lock); \
- _rc_; \
-})
-
-#define zpios_vprint(file, test, format, args...) \
- zpios_print(file, "%*s: " format, ZPIOS_NAME_SIZE, test, args)
-
#endif /* _ZPIOS_INTERNAL_H */