#ifndef NVME_LIB_H
#define NVME_LIB_H
#include "nvme.h"
int log_nvme_errcode(int err, const char *dev, const char *msg);
int libmp_nvme_get_nsid(int fd);
int libmp_nvme_identify_ctrl(int fd, struct nvme_id_ctrl *ctrl);
int libmp_nvme_identify_ns(int fd, __u32 nsid, bool present,
struct nvme_id_ns *ns);
int libmp_nvme_ana_log(int fd, void *ana_log, size_t ana_log_len, int rgo);
/*
* Identify controller, and return true if ANA is supported
* ctrl will be filled in if controller is identified, even w/o ANA
* ctrl may be NULL
*/
int nvme_id_ctrl_ana(int fd, struct nvme_id_ctrl *ctrl);
#ifndef _NVME_LIB_C
/*
* In all files except nvme-lib.c, the nvme functions can be called
* by their usual name.
*/
#define nvme_get_nsid libmp_nvme_get_nsid
#define nvme_identify_ctrl libmp_nvme_identify_ctrl
#define nvme_identify_ns libmp_nvme_identify_ns
#define nvme_ana_log libmp_nvme_ana_log
/*
* Undefine these to avoid clashes with libmultipath's byteorder.h
*/
#undef cpu_to_le16
#undef cpu_to_le32
#undef cpu_to_le64
#undef le16_to_cpu
#undef le32_to_cpu
#undef le64_to_cpu
#endif
#endif /* NVME_LIB_H */