Skip to content

Commit 089c63d

Browse files
ikegami-tigaw
authored andcommitted
nvme-wrap: add power management and arbitration features functions
Since mi functions added in libnvme. Signed-off-by: Tokunori Ikegami <[email protected]>
1 parent 52bc5c8 commit 089c63d

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

nvme-wrap.c

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,37 @@ int nvme_cli_get_features(struct nvme_dev *dev,
119119
return do_admin_args_op(get_features, dev, args);
120120
}
121121

122+
int nvme_cli_get_features_arbitration(struct nvme_dev *dev, enum nvme_get_features_sel sel,
123+
__u32 *result)
124+
{
125+
return do_admin_op(get_features_arbitration, dev, sel, result);
126+
}
127+
128+
int nvme_cli_get_features_power_mgmt(struct nvme_dev *dev, enum nvme_get_features_sel sel,
129+
__u32 *result)
130+
{
131+
return do_admin_op(get_features_power_mgmt, dev, sel, result);
132+
}
133+
122134
int nvme_cli_set_features(struct nvme_dev *dev, struct nvme_set_features_args *args)
123135
{
124136
return do_admin_args_op(set_features, dev, args);
125137
}
126138

139+
int nvme_cli_set_features_arbitration(struct nvme_dev *dev, __u8 ab, __u8 lpw, __u8 mpw, __u8 hpw,
140+
bool save, __u32 *result)
141+
{
142+
if (dev->type == NVME_DEV_DIRECT)
143+
return nvme_set_features_arbitration(dev_fd(dev), ab, lpw, mpw, hpw, save, result);
144+
145+
return -ENODEV;
146+
}
147+
148+
int nvme_cli_features_power_mgmt(struct nvme_dev *dev, __u8 ps, __u8 wh, bool save, __u32 *result)
149+
{
150+
return do_admin_op(set_features_power_mgmt, dev, ps, wh, save, result);
151+
}
152+
127153
int nvme_cli_ns_mgmt_delete(struct nvme_dev *dev, __u32 nsid, __u32 timeout)
128154
{
129155
if (dev->type == NVME_DEV_DIRECT)

nvme-wrap.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,14 @@ int nvme_cli_sanitize_nvm(struct nvme_dev *dev,
4848

4949
int nvme_cli_get_features(struct nvme_dev *dev,
5050
struct nvme_get_features_args *args);
51-
51+
int nvme_cli_get_features_arbitration(struct nvme_dev *dev, enum nvme_get_features_sel sel,
52+
__u32 *result);
53+
int nvme_cli_get_features_power_mgmt(struct nvme_dev *dev, enum nvme_get_features_sel sel,
54+
__u32 *result);
5255
int nvme_cli_set_features(struct nvme_dev *dev, struct nvme_set_features_args *args);
56+
int nvme_cli_set_features_arbitration(struct nvme_dev *dev, __u8 ab, __u8 lpw, __u8 mpw, __u8 hpw,
57+
bool save, __u32 *result);
58+
int nvme_set_features_power_mgmt(int fd, __u8 ps, __u8 wh, bool save, __u32 *result);
5359

5460
int nvme_cli_get_log(struct nvme_dev *dev, struct nvme_get_log_args *args);
5561
int nvme_cli_get_log_page(struct nvme_dev *dev,

0 commit comments

Comments
 (0)