> -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Jerin Jacob > Sent: Wednesday, October 30, 2019 1:33 PM > > On Wed, Oct 30, 2019 at 3:25 PM Gavin Hu (Arm Technology China) > <gavin...@arm.com> wrote: > > > > Hi Thomas, > > > > > -----Original Message----- > > > From: Thomas Monjalon <tho...@monjalon.net> > > > Sent: Wednesday, October 30, 2019 12:43 AM > > > > > > 23/10/2019 04:54, Joyce Kong: > > > > There are a lot functions of bit operations scattered in PMDs, > > > > consolidate them into a common API family and applied in different > > > > PMDs to reduce code duplication. > > > > > > Please, could you look at what Adrien did in the Mellanox PMD? > > > > > > > http://code.dpdk.org/dpdk/latest/source/drivers/net/mlx5/mlx5_utils.h#L28 > > The code has less duplication, but it requires a less natural declaration > of variables > > http://code.dpdk.org/dpdk/latest/source/drivers/net/mlx5/mlx5.h#L607 > > Should we take this way? > > > IMO, We need to consider the MACRO based scheme only as of the last resort. >
I agree. The EAL library already has an I/O device memory access API, i.e. with functionality closely related to the proposed I/O device bit operation API: http://code.dpdk.org/dpdk/latest/source/lib/librte_eal/common/include/generic/rte_io.h I would prefer a similar approach, and API familiarity would be my strongest argument.