##############################################################################
# Generate vppinfra/config.h
##############################################################################
-set(LOG2_CACHE_LINE_BYTES 6)
-option(VPP_USE_DLMALLOC "Use dlmalloc memory allocator." ON)
-if(VPP_USE_DLMALLOC)
- set(DLMALLOC 1)
-else(VPP_USE_DLMALLOC)
- set(DLMALLOC 0)
-endif(VPP_USE_DLMALLOC)
+set(LOG2_CACHE_LINE_BYTES ${VPP_LOG2_CACHE_LINE_SIZE})
+
+option(VPP_VECTOR_GROW_BY_ONE "Vectors grow by one, instead of 3/2" OFF)
+if(VPP_VECTOR_GROW_BY_ONE)
+ set(VECTOR_GROW_BY_ONE 1)
+else(VPP_VECTOR_GROW_BY_ONE)
+ set(VECTOR_GROW_BY_ONE 0)
+endif(VPP_VECTOR_GROW_BY_ONE)
configure_file(
${CMAKE_SOURCE_DIR}/vppinfra/config.h.in
install(
FILES ${CMAKE_BINARY_DIR}/vppinfra/config.h
DESTINATION include/vppinfra
- COMPONENT dev
+ COMPONENT vpp-dev
)
##############################################################################
# vppinfra sources
##############################################################################
set(VPPINFRA_SRCS
- asm_x86.c
backtrace.c
+ bihash_all_vector.c
cpu.c
cuckoo_template.c
dlmalloc.c
elf.c
- elf_clib.c
elog.c
error.c
fheap.c
maplog.c
mem_dlmalloc.c
mhash.c
+ mpcap.c
+ pcap.c
+ pmalloc.c
pool.c
ptclosure.c
- qsort.c
- random.c
random_buffer.c
+ random.c
random_isaac.c
+ rbtree.c
serialize.c
slist.c
socket.c
string.c
time.c
time_range.c
- timer.c
timing_wheel.c
- tw_timer_2t_1w_2048sl.c
- tw_timer_16t_2w_512sl.c
tw_timer_16t_1w_2048sl.c
- tw_timer_4t_3w_256sl.c
+ tw_timer_16t_2w_512sl.c
tw_timer_1t_3w_1024sl_ov.c
+ tw_timer_2t_1w_2048sl.c
+ tw_timer_4t_3w_256sl.c
unformat.c
unix-formats.c
unix-misc.c
vec.c
vector.c
zvec.c
- linux/mem.c
- linux/sysfs.c
)
-add_library(vppinfra SHARED ${VPPINFRA_SRCS})
-target_link_libraries(vppinfra m)
-install(TARGETS vppinfra DESTINATION lib)
-
-##############################################################################
-# vppinfra headers
-##############################################################################
-vpp_add_header_files(vppinfra
- asm_mips.h
- asm_x86.h
+set(VPPINFRA_HEADERS
+ sanitizer.h
bihash_16_8.h
bihash_24_8.h
bihash_40_8.h
bitops.h
byte_order.h
cache.h
+ callback.h
clib_error.h
clib.h
cpu.h
hash.h
heap.h
lb_hash_hash.h
+ llist.h
lock.h
longjmp.h
macros.h
memcpy_sse3.h
mem.h
mhash.h
- mheap_bootstrap.h
mheap.h
+ mpcap.h
os.h
+ pcap.h
+ pcap_funcs.h
pipeline.h
+ pmalloc.h
pool.h
+ pmc.h
ptclosure.h
random_buffer.h
random.h
random_isaac.h
+ rbtree.h
serialize.h
+ sha2.h
slist.h
smp.h
socket.h
string.h
time.h
time_range.h
- timer.h
timing_wheel.h
tw_timer_16t_1w_2048sl.h
tw_timer_16t_2w_512sl.h
tw_timer_template.c
tw_timer_template.h
types.h
+ atomics.h
unix.h
- valgrind.h
valloc.h
vec_bootstrap.h
vec.h
linux/sysfs.h
)
+if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+ list(APPEND VPPINFRA_SRCS
+ elf_clib.c
+ linux/mem.c
+ linux/sysfs.c
+ )
+endif()
+
+add_vpp_library(vppinfra
+ SOURCES ${VPPINFRA_SRCS}
+ LINK_LIBRARIES m
+ INSTALL_HEADERS ${VPPINFRA_HEADERS}
+ COMPONENT libvppinfra
+)
+
+##############################################################################
+# vppinfra headers
+##############################################################################
option(VPP_BUILD_VPPINFRA_TESTS "Build vppinfra tests." OFF)
if(VPP_BUILD_VPPINFRA_TESTS)
- set(VPPINFRA_TESTS
- bihash_template
+ foreach(test
bihash_vec88
- cuckoo_bihash
cuckoo_template
dlist
elf
longjmp
macros
maplog
+ pmalloc
pool_iterate
ptclosure
random
random_isaac
+ rwlock
serialize
slist
socket
+ spinlock
time
time_range
timing_wheel
tw_timer
valloc
vec
- vhash
zvec
)
- foreach(test ${VPPINFRA_TESTS})
- add_executable(test_${test} test_${test}.c)
- target_link_libraries(test_${test} vppinfra)
+ add_vpp_executable(test_${test}
+ SOURCES test_${test}.c
+ LINK_LIBRARIES vppinfra pthread
+ )
endforeach()
- target_link_libraries(test_bihash_template Threads::Threads)
- target_link_libraries(test_cuckoo_bihash Threads::Threads)
+ foreach(test bihash_template cuckoo_bihash)
+ add_vpp_executable(test_${test}
+ SOURCES test_${test}.c
+ LINK_LIBRARIES vppinfra Threads::Threads
+ )
+ endforeach()
endif(VPP_BUILD_VPPINFRA_TESTS)