#ifndef _NVME_UNIT_H
#define _NVME_UNIT_H
#include <nvme_common.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
const char *nu_desc;
const nvme_field_info_t *nu_fields;
uint32_t nu_index;
const nvme_valid_ctrl_data_t *nu_data;
uint64_t nu_value;
nvme_field_error_t nu_ret;
} nvme_unit_field_test_t;
extern bool nvme_unit_field_test(const nvme_unit_field_test_t *, size_t);
extern const nvme_valid_ctrl_data_t nvme_ctrl_base_1v0;
extern const nvme_valid_ctrl_data_t nvme_ctrl_health_1v0;
extern const nvme_valid_ctrl_data_t nvme_ctrl_base_1v1;
extern const nvme_valid_ctrl_data_t nvme_ctrl_base_1v2;
extern const nvme_valid_ctrl_data_t nvme_ctrl_base_2v0;
extern const nvme_valid_ctrl_data_t nvme_ctrl_ns_1v2;
extern const nvme_valid_ctrl_data_t nvme_ctrl_ns_1v3;
extern const nvme_valid_ctrl_data_t nvme_ctrl_ns_1v4;
extern const nvme_valid_ctrl_data_t nvme_ctrl_ns_2v0;
extern const nvme_valid_ctrl_data_t nvme_ctrl_nolpa_1v4;
extern const nvme_valid_ctrl_data_t nvme_ctrl_nons_1v3;
extern const nvme_valid_ctrl_data_t nvme_ctrl_nons_1v4;
extern const nvme_valid_ctrl_data_t nvme_ctrl_nons_2v0;
extern const nvme_valid_ctrl_data_t nvme_ctrl_nocmds_1v0;
extern const nvme_valid_ctrl_data_t nvme_ctrl_nogran_1v3;
extern const nvme_valid_ctrl_data_t nvme_ctrl_8kgran_1v3;
#ifdef __cplusplus
}
#endif
#endif