Hi Tom, > -----Original Message----- > From: Tom Rix <t...@redhat.com> > Subject: Re: [PATCH v4 1/7] bbdev: allow operation type enum for growth > > > On 7/5/22 5:23 PM, Nicolas Chautru wrote: > > Updating the enum for rte_bbdev_op_type to allow to keep ABI > > compatible for enum insertion while adding padded maximum value for > > array need. > > Removing RTE_BBDEV_OP_TYPE_COUNT and instead exposing > > RTE_BBDEV_OP_TYPE_PADDED_MAX. > > > > Signed-off-by: Nicolas Chautru <nicolas.chau...@intel.com> > > --- > > app/test-bbdev/test_bbdev.c | 2 +- > > app/test-bbdev/test_bbdev_perf.c | 4 ++-- > > examples/bbdev_app/main.c | 2 +- > > lib/bbdev/rte_bbdev.c | 9 +++++---- > > lib/bbdev/rte_bbdev_op.h | 2 +- > > 5 files changed, 10 insertions(+), 9 deletions(-) > > > > diff --git a/app/test-bbdev/test_bbdev.c b/app/test-bbdev/test_bbdev.c > > index ac06d73..1063f6e 100644 > > --- a/app/test-bbdev/test_bbdev.c > > +++ b/app/test-bbdev/test_bbdev.c > > @@ -521,7 +521,7 @@ struct bbdev_testsuite_params { > > rte_mempool_free(mp); > > > > TEST_ASSERT((mp = rte_bbdev_op_pool_create("Test_INV", > > - RTE_BBDEV_OP_TYPE_COUNT, size, cache_size, 0)) == > NULL, > > + RTE_BBDEV_OP_TYPE_PADDED_MAX, size, cache_size, > 0)) == NULL, > > "Failed test for rte_bbdev_op_pool_create: " > > "returned value is not NULL for invalid type"); > > > > diff --git a/app/test-bbdev/test_bbdev_perf.c > > b/app/test-bbdev/test_bbdev_perf.c > > index fad3b1e..1abda2d 100644 > > --- a/app/test-bbdev/test_bbdev_perf.c > > +++ b/app/test-bbdev/test_bbdev_perf.c > > @@ -2428,13 +2428,13 @@ typedef int (test_case_function)(struct > > active_device *ad, > > > > /* Find capabilities */ > > const struct rte_bbdev_op_cap *cap = info.drv.capabilities; > > - for (i = 0; i < RTE_BBDEV_OP_TYPE_COUNT; i++) { > > + do { > > if (cap->type == test_vector.op_type) { > > capabilities = cap; > > break; > > } > > cap++; > > - } > > + } while (cap->type != RTE_BBDEV_OP_NONE); > > TEST_ASSERT_NOT_NULL(capabilities, > > "Couldn't find capabilities"); > > > > diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c > > index fc7e8b8..ef0ba76 100644 > > --- a/examples/bbdev_app/main.c > > +++ b/examples/bbdev_app/main.c > > @@ -1041,7 +1041,7 @@ uint16_t bbdev_parse_number(const char *mask) > > void *sigret; > > struct app_config_params app_params = def_app_config; > > struct rte_mempool *ethdev_mbuf_mempool, > *bbdev_mbuf_mempool; > > - struct rte_mempool *bbdev_op_pools[RTE_BBDEV_OP_TYPE_COUNT]; > > + struct rte_mempool > *bbdev_op_pools[RTE_BBDEV_OP_TYPE_PADDED_MAX]; > > struct lcore_conf lcore_conf[RTE_MAX_LCORE] = { {0} }; > > struct lcore_statistics lcore_stats[RTE_MAX_LCORE] = { {0} }; > > struct stats_lcore_params stats_lcore; diff --git > > a/lib/bbdev/rte_bbdev.c b/lib/bbdev/rte_bbdev.c index aaee7b7..22bd894 > > 100644 > > --- a/lib/bbdev/rte_bbdev.c > > +++ b/lib/bbdev/rte_bbdev.c > > @@ -23,6 +23,8 @@ > > > > #define DEV_NAME "BBDEV" > > > > +/* Number of supported operation types */ #define > BBDEV_OP_TYPE_COUNT > > +5 > > > > /* BBDev library logging ID */ > > RTE_LOG_REGISTER_DEFAULT(bbdev_logtype, NOTICE); @@ -890,10 > +892,10 > > @@ struct rte_mempool * > > return NULL; > > } > > > > - if (type >= RTE_BBDEV_OP_TYPE_COUNT) { > > + if (type >= BBDEV_OP_TYPE_COUNT) { > > rte_bbdev_log(ERR, > > "Invalid op type (%u), should be less than %u", > > - type, RTE_BBDEV_OP_TYPE_COUNT); > > + type, BBDEV_OP_TYPE_COUNT); > > return NULL; > > } > > > > @@ -1122,10 +1124,9 @@ struct rte_mempool * > > "RTE_BBDEV_OP_TURBO_DEC", > > "RTE_BBDEV_OP_TURBO_ENC", > > "RTE_BBDEV_OP_LDPC_DEC", > > - "RTE_BBDEV_OP_LDPC_ENC", > > }; > > > > - if (op_type < RTE_BBDEV_OP_TYPE_COUNT) > > + if (op_type < BBDEV_OP_TYPE_COUNT) > > return op_types[op_type]; > > > > rte_bbdev_log(ERR, "Invalid operation type"); diff --git > > a/lib/bbdev/rte_bbdev_op.h b/lib/bbdev/rte_bbdev_op.h index > > 6d56133..cd82418 100644 > > --- a/lib/bbdev/rte_bbdev_op.h > > +++ b/lib/bbdev/rte_bbdev_op.h > > @@ -748,7 +748,7 @@ enum rte_bbdev_op_type { > > RTE_BBDEV_OP_TURBO_ENC, /**< Turbo encode */ > > RTE_BBDEV_OP_LDPC_DEC, /**< LDPC decode */ > > RTE_BBDEV_OP_LDPC_ENC, /**< LDPC encode */ > > - RTE_BBDEV_OP_TYPE_COUNT, /**< Count of different op types */ > > Why not keep this enum so you don't have to make the > BBDEV_OP_TYPE_COUNT #define ?
We are announcing that we are deprecating that enum. We want to make sure this is not being used by application, only the PADDED one should be used moving forward But I think I will use your suggestion in other commit not to use #define for this and instead just check for array size. Thanks Nic > > Tom > > > + RTE_BBDEV_OP_TYPE_PADDED_MAX = 8, /**< Maximum op type > number > > +including padding */ > > }; > > > > /** Bit indexes of possible errors reported through status field */