@@ -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+
122134int 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+
127153int nvme_cli_ns_mgmt_delete (struct nvme_dev * dev , __u32 nsid , __u32 timeout )
128154{
129155 if (dev -> type == NVME_DEV_DIRECT )
0 commit comments