History log of /dpdk/lib/eal/include/rte_bitops.h (Results 1 – 13 of 13)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 21cab84f 24-Jan-2025 Tyler Retzlaff <roretzla@linux.microsoft.com>

bitops: find first set bit

Provide toolchain abstraction for __builtin_ffs{,l,ll} gcc built-in
intrinsics.
Add associated unit tests.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Si

bitops: find first set bit

Provide toolchain abstraction for __builtin_ffs{,l,ll} gcc built-in
intrinsics.
Add associated unit tests.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>

show more ...


Revision tags: v24.11, v24.11-rc4, v24.11-rc3, v24.11-rc2, v24.11-rc1
# 8b65ddc0 15-Oct-2024 David Marchand <david.marchand@redhat.com>

bitops: fix build for GCC without experimental API

Building OVS against current DPDK fails with following warnings:

In file included from .../ovs/dpdk-dir/include/rte_memory.h:18,

bitops: fix build for GCC without experimental API

Building OVS against current DPDK fails with following warnings:

In file included from .../ovs/dpdk-dir/include/rte_memory.h:18,
from .../ovs/dpdk-dir/include/rte_ring_core.h:29,
from .../ovs/dpdk-dir/include/rte_ring.h:37,
from .../ovs/dpdk-dir/include/rte_mempool.h:49,
from .../ovs/dpdk-dir/include/rte_mbuf.h:38,
from lib/dp-packet.h:25,
from lib/ofp-packet.c:20:
.../ovs/dpdk-dir/include/rte_bitops.h: In function ‘__rte_bit_assign32’:
.../ovs/dpdk-dir/include/rte_bitops.h:528:1: error:
‘__rte_bit_set32’ is deprecated: Symbol is not yet part of
stable ABI [-Werror=deprecated-declarations]
...

This comes from the fact that some (experimental) inline helpers
are calling other experimental API.
Hide those calls.

Fixes: 471de107ae23 ("bitops: add new bit manipulation API")

Reported-by: Kevin Traynor <ktraynor@redhat.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>

show more ...


# 0883d736 20-Sep-2024 Mattias Rönnblom <mattias.ronnblom@ericsson.com>

bitops: support volatile pointers in new API

Have rte_bit_[test|set|clear|assign|flip]() and rte_bit_atomic_*()
handle volatile-marked pointers.

Bugzilla ID: 1385

Signed-off-by: Mattias Rönnblom <

bitops: support volatile pointers in new API

Have rte_bit_[test|set|clear|assign|flip]() and rte_bit_atomic_*()
handle volatile-marked pointers.

Bugzilla ID: 1385

Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Jack Bond-Preston <jack.bond-preston@foss.arm.com>

show more ...


# 35326b61 20-Sep-2024 Mattias Rönnblom <mattias.ronnblom@ericsson.com>

bitops: add atomic bit operations in new API

Add atomic bit test/set/clear/assign/flip and
test-and-set/clear/assign/flip functions.

All atomic bit functions allow (and indeed, require) the caller

bitops: add atomic bit operations in new API

Add atomic bit test/set/clear/assign/flip and
test-and-set/clear/assign/flip functions.

All atomic bit functions allow (and indeed, require) the caller to
specify a memory order.

Bugzilla ID: 1385

Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Jack Bond-Preston <jack.bond-preston@foss.arm.com>

show more ...


# 471de107 20-Sep-2024 Mattias Rönnblom <mattias.ronnblom@ericsson.com>

bitops: add new bit manipulation API

Add functionality to test and modify the value of individual bits in
32-bit or 64-bit words.

These functions have no implications on memory ordering, atomicity

bitops: add new bit manipulation API

Add functionality to test and modify the value of individual bits in
32-bit or 64-bit words.

These functions have no implications on memory ordering, atomicity and
does not use volatile and thus does not prevent any compiler
optimizations.

Bugzilla ID: 1385

Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Jack Bond-Preston <jack.bond-preston@foss.arm.com>

show more ...


Revision tags: v24.07, v24.07-rc4, v24.07-rc3, v24.07-rc2, v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2, v24.03-rc1
# 1d8f2285 26-Jan-2024 Chengwen Feng <fengchengwen@huawei.com>

eal: introduce more macros for bit definition

Introduce macros:
1. RTE_SHIFT_VAL64: get the uint64_t value which shifted by nr.
2. RTE_SHIFT_VAL32: get the uint32_t value which shifted by nr.
3. RTE

eal: introduce more macros for bit definition

Introduce macros:
1. RTE_SHIFT_VAL64: get the uint64_t value which shifted by nr.
2. RTE_SHIFT_VAL32: get the uint32_t value which shifted by nr.
3. RTE_GENMASK64: generate a contiguous 64bit bitmask starting at bit
position low and ending at position high.
4. RTE_GENMASK32: generate a contiguous 32bit bitmask starting at bit
position low and ending at position high.
5. RTE_FIELD_GET64: extract a 64bit field element.
6. RTE_FIELD_GET32: extract a 32bit field element.

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>

show more ...


Revision tags: v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2
# 30764c0f 20-Oct-2023 Stephen Hemminger <stephen@networkplumber.org>

bitops: promote some functions as stable

These were added in 20.05 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Joyce Kong <joyce.kong@arm.com>


# 2a0557d1 18-Oct-2023 David Marchand <david.marchand@redhat.com>

bitops: promote new symbols as stable

Calling an experimental symbol from an inline helper triggers a warning
when such code is not compiled with experimental API.
This can be seen when rte_bitops.h

bitops: promote new symbols as stable

Calling an experimental symbol from an inline helper triggers a warning
when such code is not compiled with experimental API.
This can be seen when rte_bitops.h gets (indirectly) included in OVS
builds.

On the other hand, rte_clz32, rte_clz64, rte_ctz32, rte_ctz64,
rte_popcount32, rte_popcount64 are inline helpers for abstracting common
bit counting functions. This part of the API is unlikely to change.

Mark those symbols as stable (as discussed and agreed during the
2023/10/18 DPDK Techboard meeting).

Fixes: 18898c4d06f9 ("eal: use abstracted bit count functions")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Joyce Kong <joyce.kong@arm.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>

show more ...


Revision tags: v23.11-rc1
# 18898c4d 16-Oct-2023 Tyler Retzlaff <roretzla@linux.microsoft.com>

eal: use abstracted bit count functions

Use DPDK abstracted bitcount functions instead of gcc __builtin_'s

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>


Revision tags: v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2, v23.07-rc1
# 916c50dd 04-Apr-2023 Tyler Retzlaff <roretzla@linux.microsoft.com>

bitops: add more bit count functions

Provide abstracted bit counting functions for count, leading and
trailing bits in v to hide compiler specific intrinsics and builtins.

Include basic unit test o

bitops: add more bit count functions

Provide abstracted bit counting functions for count, leading and
trailing bits in v to hide compiler specific intrinsics and builtins.

Include basic unit test of following functions added.

rte_clz32
rte_clz64
rte_ctz32
rte_ctz64
rte_popcount32
rte_popcount64

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>

show more ...


# 7253e3d2 04-Apr-2023 Tyler Retzlaff <roretzla@linux.microsoft.com>

bitops: move bit count functions

Move the following inline functions from rte_common.h to rte_bitops.h

rte_combine32ms1b
rte_combine64ms1b
rte_bsf32
rte_bsf32_safe
rte_bsf64
rte_bsf64_s

bitops: move bit count functions

Move the following inline functions from rte_common.h to rte_bitops.h

rte_combine32ms1b
rte_combine64ms1b
rte_bsf32
rte_bsf32_safe
rte_bsf64
rte_bsf64_safe
rte_fls_u32
rte_fls_u64
rte_is_power_of_2
rte_align32pow2
rte_align32prevpow2
rte_align64pow2
rte_align64prevpow2
rte_log2_u32
rte_log2_u64

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>

show more ...


Revision tags: v23.03, v23.03-rc4, v23.03-rc3, v23.03-rc2, v23.03-rc1, v22.11, v22.11-rc4, v22.11-rc3, v22.11-rc2, v22.11-rc1, v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2, v22.07-rc1, v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2
# d7e9c02c 16-Feb-2022 Brian Dooley <brian.dooley@intel.com>

eal: add missing C++ guards

Some public header files were missing 'extern "C"' C++ guards,
and couldn't be used by C++ applications. Add the missing guards.

Fixes: af75078fece3 ("first public relea

eal: add missing C++ guards

Some public header files were missing 'extern "C"' C++ guards,
and couldn't be used by C++ applications. Add the missing guards.

Fixes: af75078fece3 ("first public release")
Fixes: 7f3aa0863903 ("eal: introduce bit operations API")
Fixes: 166a743c53fa ("compat: add infrastructure to support symbol versioning")
Fixes: 8f40ee0734c8 ("eal/x86: get hypervisor name")
Fixes: 75583b0d1efd ("eal: add keep alive monitoring")
Fixes: 88701645c98c ("eal: move interrupt type out of igb_uio")
Fixes: f04519d8092e ("lib: add missing include dependencies")
Fixes: f58880682c81 ("trace: implement register API")
Fixes: 428eb983f5f7 ("eal: add OS specific header file")
Cc: stable@dpdk.org

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>

show more ...


Revision tags: v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1, v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1
# 99a2dd95 20-Apr-2021 Bruce Richardson <bruce.richardson@intel.com>

lib: remove librte_ prefix from directory names

There is no reason for the DPDK libraries to all have 'librte_' prefix on
the directory names. This prefix makes the directory names longer and also
m

lib: remove librte_ prefix from directory names

There is no reason for the DPDK libraries to all have 'librte_' prefix on
the directory names. This prefix makes the directory names longer and also
makes it awkward to add features referring to individual libraries in the
build - should the lib names be specified with or without the prefix.
Therefore, we can just remove the library prefix and use the library's
unique name as the directory name, i.e. 'eal' rather than 'librte_eal'

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

show more ...