#ifndef _LIBNVME_TEST_COMMON_H
#define _LIBNVME_TEST_COMMON_H
#include <stdbool.h>
#include <libnvme.h>
#include <sys/ccompile.h>
#ifdef __cplusplus
extern "C" {
#endif
#define NVME_TEST_DEV_ENVVAR "NVME_TEST_DEVICE"
#define NVME_TEST_LBA_SIZE 4096
#define NVME_TEST_NS_SIZE (1ULL * 1024ULL * 1024ULL * 1024ULL)
extern void libnvme_test_init(nvme_t **, nvme_ctrl_t **);
extern void libnvme_test_hdl_warn(nvme_t *, const char *,
...) __PRINTFLIKE(2);
extern void libnvme_test_ctrl_warn(nvme_ctrl_t *, const char *,
...) __PRINTFLIKE(2);
extern void libnvme_test_ctrl_info_warn(nvme_ctrl_info_t *, const char *,
...) __PRINTFLIKE(2);
extern void libnvme_test_ns_info_warn(nvme_ns_info_t *, const char *,
...) __PRINTFLIKE(2);
extern void libnvme_test_hdl_fatal(nvme_t *, const char *,
...) __PRINTFLIKE(2) __NORETURN;
extern void libnvme_test_ctrl_fatal(nvme_ctrl_t *, const char *,
...) __PRINTFLIKE(2) __NORETURN;
extern void libnvme_test_ctrl_info_fatal(nvme_ctrl_info_t *, const char *,
...) __PRINTFLIKE(2) __NORETURN;
extern bool libnvme_test_ctrl_err(nvme_ctrl_t *, uint32_t, uint32_t,
const char *);
extern bool libnvme_test_lbaf(nvme_ctrl_info_t *, uint32_t, uint32_t *);
extern bool libnvme_test_setup_ns(nvme_ctrl_t *, nvme_ns_disc_level_t,
uint32_t, uint32_t);
extern bool libnvme_test_ns_delete(nvme_ctrl_t *, uint32_t, nvme_err_t *);
extern bool libnvme_test_ns_create(nvme_ctrl_t *, uint64_t, uint32_t,
uint32_t *, nvme_err_t *);
extern bool libnvme_test_ctrl_attach(nvme_ctrl_t *, uint32_t, uint32_t,
nvme_err_t *);
extern bool libnvme_test_ns_blkdev(nvme_ctrl_t *, uint32_t, bool, nvme_err_t *);
#ifdef __cplusplus
}
#endif
#endif