*/
#include <dlfcn.h>
+#include <errno.h>
#include <libnvme.h>
__u64 *slbas, __u64 *eilbrts, __u32 *elbatms,
__u32 *elbats, __u16 nr),
ARGS(copy, nlbs, slbas, eilbrts, elbatms, elbats, nr))
+
+FN(nvme_get_feature_length2,
+ int,
+ PROTO(int fid, __u32 cdw11, enum nvme_data_tfr dir,
+ __u32 *len),
+ ARGS(fid, cdw11, dir, len),
+ -EEXIST)
return -ENODEV;
}
+int nvme_cli_get_feature_length2(int fid, __u32 cdw11, enum nvme_data_tfr dir,
+ __u32 *len)
+{
+ int err;
+
+ err = nvme_get_feature_length2(fid, cdw11, dir, len);
+ if (err != -EEXIST)
+ return err;
+ return nvme_get_feature_length(fid, cdw11, len);
+}
int nvme_cli_fw_commit(struct nvme_dev *dev,
struct nvme_fw_commit_args *args);
+
+int nvme_cli_get_feature_length2(int fid, __u32 cdw11, enum nvme_data_tfr dir,
+ __u32 *len);
+
#endif /* _NVME_WRAP_H */
}
if (!cfg.data_len)
- nvme_get_feature_length(cfg.feature_id, cfg.value,
- &cfg.data_len);
+ nvme_cli_get_feature_length2(cfg.feature_id, cfg.value,
+ NVME_DATA_TFR_HOST_TO_CTRL,
+ &cfg.data_len);
if (cfg.data_len) {
if (posix_memalign(&buf, getpagesize(), cfg.data_len)) {