Skip to content

Commit e949369

Browse files
committed
cmds: move nvme_init_* implementations to header
These init functions were added to the .c file due to the use of the cpu_to_* macros. Move them to the header and use the hto* functions, since cmds.h already relies on them. Signed-off-by: Daniel Wagner <[email protected]>
1 parent 2ea920c commit e949369

3 files changed

Lines changed: 103 additions & 122 deletions

File tree

libnvme/src/libnvme.ld

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,7 @@ LIBNVME_3 {
8181
nvme_hostnqn_generate_from_hostid;
8282
nvme_import_tls_key;
8383
nvme_import_tls_key_versioned;
84-
nvme_init_copy_range;
85-
nvme_init_copy_range_f1;
86-
nvme_init_copy_range_f2;
87-
nvme_init_copy_range_f3;
8884
nvme_init_ctrl;
89-
nvme_init_ctrl_list;
90-
nvme_init_dsm_range;
9185
nvme_insert_tls_key;
9286
nvme_insert_tls_key_compat;
9387
nvme_insert_tls_key_versioned;

libnvme/src/nvme/cmds.c

Lines changed: 0 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -385,104 +385,6 @@ int nvme_get_logical_block_size(struct nvme_transport_handle *hdl,
385385
return 0;
386386
}
387387

388-
static inline void nvme_init_copy_range_elbt(__u8 *elbt, __u64 eilbrt)
389-
{
390-
int i;
391-
392-
for (i = 0; i < 8; i++)
393-
elbt[9 - i] = (eilbrt >> (8 * i)) & 0xff;
394-
elbt[1] = 0;
395-
elbt[0] = 0;
396-
}
397-
398-
void nvme_init_copy_range(struct nvme_copy_range *copy, __u16 *nlbs,
399-
__u64 *slbas, __u32 *eilbrts, __u32 *elbatms,
400-
__u32 *elbats, __u16 nr)
401-
{
402-
int i;
403-
404-
for (i = 0; i < nr; i++) {
405-
copy[i].nlb = cpu_to_le16(nlbs[i]);
406-
copy[i].slba = cpu_to_le64(slbas[i]);
407-
copy[i].eilbrt = cpu_to_le32(eilbrts[i]);
408-
copy[i].elbatm = cpu_to_le16(elbatms[i]);
409-
copy[i].elbat = cpu_to_le16(elbats[i]);
410-
}
411-
}
412-
413-
void nvme_init_copy_range_f1(struct nvme_copy_range_f1 *copy, __u16 *nlbs,
414-
__u64 *slbas, __u64 *eilbrts, __u32 *elbatms,
415-
__u32 *elbats, __u16 nr)
416-
{
417-
int i;
418-
419-
for (i = 0; i < nr; i++) {
420-
copy[i].nlb = cpu_to_le16(nlbs[i]);
421-
copy[i].slba = cpu_to_le64(slbas[i]);
422-
copy[i].elbatm = cpu_to_le16(elbatms[i]);
423-
copy[i].elbat = cpu_to_le16(elbats[i]);
424-
nvme_init_copy_range_elbt(copy[i].elbt, eilbrts[i]);
425-
}
426-
}
427-
428-
void nvme_init_copy_range_f2(struct nvme_copy_range_f2 *copy, __u32 *snsids,
429-
__u16 *nlbs, __u64 *slbas, __u16 *sopts,
430-
__u32 *eilbrts, __u32 *elbatms, __u32 *elbats,
431-
__u16 nr)
432-
{
433-
int i;
434-
435-
for (i = 0; i < nr; i++) {
436-
copy[i].snsid = cpu_to_le32(snsids[i]);
437-
copy[i].nlb = cpu_to_le16(nlbs[i]);
438-
copy[i].slba = cpu_to_le64(slbas[i]);
439-
copy[i].sopt = cpu_to_le16(sopts[i]);
440-
copy[i].eilbrt = cpu_to_le32(eilbrts[i]);
441-
copy[i].elbatm = cpu_to_le16(elbatms[i]);
442-
copy[i].elbat = cpu_to_le16(elbats[i]);
443-
}
444-
}
445-
446-
void nvme_init_copy_range_f3(struct nvme_copy_range_f3 *copy, __u32 *snsids,
447-
__u16 *nlbs, __u64 *slbas, __u16 *sopts,
448-
__u64 *eilbrts, __u32 *elbatms, __u32 *elbats,
449-
__u16 nr)
450-
{
451-
int i;
452-
453-
for (i = 0; i < nr; i++) {
454-
copy[i].snsid = cpu_to_le32(snsids[i]);
455-
copy[i].nlb = cpu_to_le16(nlbs[i]);
456-
copy[i].slba = cpu_to_le64(slbas[i]);
457-
copy[i].sopt = cpu_to_le16(sopts[i]);
458-
copy[i].elbatm = cpu_to_le16(elbatms[i]);
459-
copy[i].elbat = cpu_to_le16(elbats[i]);
460-
nvme_init_copy_range_elbt(copy[i].elbt, eilbrts[i]);
461-
}
462-
}
463-
464-
void nvme_init_dsm_range(struct nvme_dsm_range *dsm, __u32 *ctx_attrs,
465-
__u32 *llbas, __u64 *slbas, __u16 nr_ranges)
466-
{
467-
int i;
468-
469-
for (i = 0; i < nr_ranges; i++) {
470-
dsm[i].cattr = cpu_to_le32(ctx_attrs[i]);
471-
dsm[i].nlb = cpu_to_le32(llbas[i]);
472-
dsm[i].slba = cpu_to_le64(slbas[i]);
473-
}
474-
}
475-
476-
void nvme_init_ctrl_list(struct nvme_ctrl_list *cntlist, __u16 num_ctrls,
477-
__u16 *ctrlist)
478-
{
479-
int i;
480-
481-
cntlist->num = cpu_to_le16(num_ctrls);
482-
for (i = 0; i < num_ctrls; i++)
483-
cntlist->identifier[i] = cpu_to_le16(ctrlist[i]);
484-
}
485-
486388
int nvme_get_feature_length(int fid, __u32 cdw11, enum nvme_data_tfr dir,
487389
__u32 *len)
488390
{

libnvme/src/nvme/cmds.h

Lines changed: 103 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5222,8 +5222,16 @@ nvme_init_mi_cmd_flags(struct nvme_passthru_cmd *cmd, bool ish)
52225222
* This is intended to be used with any command that takes a controller list
52235223
* argument. See nvme_ns_attach_ctrls() and nvme_ns_detach().
52245224
*/
5225-
void nvme_init_ctrl_list(struct nvme_ctrl_list *cntlist, __u16 num_ctrls,
5226-
__u16 *ctrlist);
5225+
static inline void
5226+
nvme_init_ctrl_list(struct nvme_ctrl_list *cntlist, __u16 num_ctrls,
5227+
__u16 *ctrlist)
5228+
{
5229+
int i;
5230+
5231+
cntlist->num = htole16(num_ctrls);
5232+
for (i = 0; i < num_ctrls; i++)
5233+
cntlist->identifier[i] = htole16(ctrlist[i]);
5234+
}
52275235

52285236
/**
52295237
* nvme_init_dsm_range() - Constructs a data set range structure
@@ -5239,8 +5247,34 @@ void nvme_init_ctrl_list(struct nvme_ctrl_list *cntlist, __u16 num_ctrls,
52395247
* Return: The nvme command status if a response was received or -errno
52405248
* otherwise.
52415249
*/
5242-
void nvme_init_dsm_range(struct nvme_dsm_range *dsm, __u32 *ctx_attrs,
5243-
__u32 *llbas, __u64 *slbas, __u16 nr_ranges);
5250+
static inline void
5251+
nvme_init_dsm_range(struct nvme_dsm_range *dsm, __u32 *ctx_attrs,
5252+
__u32 *llbas, __u64 *slbas, __u16 nr_ranges)
5253+
{
5254+
int i;
5255+
5256+
for (i = 0; i < nr_ranges; i++) {
5257+
dsm[i].cattr = htole32(ctx_attrs[i]);
5258+
dsm[i].nlb = htole32(llbas[i]);
5259+
dsm[i].slba = htole64(slbas[i]);
5260+
}
5261+
}
5262+
5263+
/**
5264+
* nvme_init_copy_range_elbt() - Constructs a copy range elbt structure
5265+
* @elbt:
5266+
* @eilbrts: Expected initial logical block reference tag
5267+
*/
5268+
static inline void
5269+
nvme_init_copy_range_elbt(__u8 *elbt, __u64 eilbrt)
5270+
{
5271+
int i;
5272+
5273+
for (i = 0; i < 8; i++)
5274+
elbt[9 - i] = (eilbrt >> (8 * i)) & 0xff;
5275+
elbt[1] = 0;
5276+
elbt[0] = 0;
5277+
}
52445278

52455279
/**
52465280
* nvme_init_copy_range() - Constructs a copy range structure
@@ -5252,9 +5286,21 @@ void nvme_init_dsm_range(struct nvme_dsm_range *dsm, __u32 *ctx_attrs,
52525286
* @elbats: Expected logical block application tag
52535287
* @nr: Number of descriptors to construct
52545288
*/
5255-
void nvme_init_copy_range(struct nvme_copy_range *copy, __u16 *nlbs,
5256-
__u64 *slbas, __u32 *eilbrts, __u32 *elbatms,
5257-
__u32 *elbats, __u16 nr);
5289+
static inline void
5290+
nvme_init_copy_range(struct nvme_copy_range *copy, __u16 *nlbs,
5291+
__u64 *slbas, __u32 *eilbrts, __u32 *elbatms,
5292+
__u32 *elbats, __u16 nr)
5293+
{
5294+
int i;
5295+
5296+
for (i = 0; i < nr; i++) {
5297+
copy[i].nlb = htole16(nlbs[i]);
5298+
copy[i].slba = htole64(slbas[i]);
5299+
copy[i].eilbrt = htole32(eilbrts[i]);
5300+
copy[i].elbatm = htole16(elbatms[i]);
5301+
copy[i].elbat = htole16(elbats[i]);
5302+
}
5303+
}
52585304

52595305
/**
52605306
* nvme_init_copy_range_f1() - Constructs a copy range f1 structure
@@ -5266,9 +5312,21 @@ void nvme_init_copy_range(struct nvme_copy_range *copy, __u16 *nlbs,
52665312
* @elbats: Expected logical block application tag
52675313
* @nr: Number of descriptors to construct
52685314
*/
5269-
void nvme_init_copy_range_f1(struct nvme_copy_range_f1 *copy, __u16 *nlbs,
5270-
__u64 *slbas, __u64 *eilbrts, __u32 *elbatms,
5271-
__u32 *elbats, __u16 nr);
5315+
static inline void
5316+
nvme_init_copy_range_f1(struct nvme_copy_range_f1 *copy, __u16 *nlbs,
5317+
__u64 *slbas, __u64 *eilbrts, __u32 *elbatms,
5318+
__u32 *elbats, __u16 nr)
5319+
{
5320+
int i;
5321+
5322+
for (i = 0; i < nr; i++) {
5323+
copy[i].nlb = htole16(nlbs[i]);
5324+
copy[i].slba = htole64(slbas[i]);
5325+
copy[i].elbatm = htole16(elbatms[i]);
5326+
copy[i].elbat = htole16(elbats[i]);
5327+
nvme_init_copy_range_elbt(copy[i].elbt, eilbrts[i]);
5328+
}
5329+
}
52725330

52735331
/**
52745332
* nvme_init_copy_range_f2() - Constructs a copy range f2 structure
@@ -5282,10 +5340,24 @@ void nvme_init_copy_range_f1(struct nvme_copy_range_f1 *copy, __u16 *nlbs,
52825340
* @elbats: Expected logical block application tag
52835341
* @nr: Number of descriptors to construct
52845342
*/
5285-
void nvme_init_copy_range_f2(struct nvme_copy_range_f2 *copy, __u32 *snsids,
5286-
__u16 *nlbs, __u64 *slbas, __u16 *sopts,
5287-
__u32 *eilbrts, __u32 *elbatms, __u32 *elbats,
5288-
__u16 nr);
5343+
static inline void
5344+
nvme_init_copy_range_f2(struct nvme_copy_range_f2 *copy,
5345+
__u32 *snsids, __u16 *nlbs, __u64 *slbas, __u16 *sopts,
5346+
__u32 *eilbrts, __u32 *elbatms, __u32 *elbats,
5347+
__u16 nr)
5348+
{
5349+
int i;
5350+
5351+
for (i = 0; i < nr; i++) {
5352+
copy[i].snsid = htole32(snsids[i]);
5353+
copy[i].nlb = htole16(nlbs[i]);
5354+
copy[i].slba = htole64(slbas[i]);
5355+
copy[i].sopt = htole16(sopts[i]);
5356+
copy[i].eilbrt = htole32(eilbrts[i]);
5357+
copy[i].elbatm = htole16(elbatms[i]);
5358+
copy[i].elbat = htole16(elbats[i]);
5359+
}
5360+
}
52895361

52905362
/**
52915363
* nvme_init_copy_range_f3() - Constructs a copy range f3 structure
@@ -5299,11 +5371,24 @@ void nvme_init_copy_range_f2(struct nvme_copy_range_f2 *copy, __u32 *snsids,
52995371
* @elbats: Expected logical block application tag
53005372
* @nr: Number of descriptors to construct
53015373
*/
5302-
void nvme_init_copy_range_f3(struct nvme_copy_range_f3 *copy, __u32 *snsids,
5303-
__u16 *nlbs, __u64 *slbas, __u16 *sopts,
5304-
__u64 *eilbrts, __u32 *elbatms, __u32 *elbats,
5305-
__u16 nr);
5374+
static inline void
5375+
nvme_init_copy_range_f3(struct nvme_copy_range_f3 *copy, __u32 *snsids,
5376+
__u16 *nlbs, __u64 *slbas, __u16 *sopts,
5377+
__u64 *eilbrts, __u32 *elbatms, __u32 *elbats,
5378+
__u16 nr)
5379+
{
5380+
int i;
53065381

5382+
for (i = 0; i < nr; i++) {
5383+
copy[i].snsid = htole32(snsids[i]);
5384+
copy[i].nlb = htole16(nlbs[i]);
5385+
copy[i].slba = htole64(slbas[i]);
5386+
copy[i].sopt = htole16(sopts[i]);
5387+
copy[i].elbatm = htole16(elbatms[i]);
5388+
copy[i].elbat = htole16(elbats[i]);
5389+
nvme_init_copy_range_elbt(copy[i].elbt, eilbrts[i]);
5390+
}
5391+
}
53075392

53085393
/**
53095394
* nvme_get_log() - Get log page data

0 commit comments

Comments
 (0)