2736fc7fcf
APIs in 'memif_per_thread_' namespace are used to split the global database into separate databases, to improve multi-thread use cases. Using 'memif_per_thread_init' client can create separate libmemif databases (libmemif_main_t). Client will reference these databases using memif_per_thread_handle_t. Each database requires unique socket. Created interface will be stored in the same database as the socket passed in connection arguments. Example code: extras/libmemif/examples/icmp_responder_3-1/main.c Type: feature Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: I261563ecc34761a76e94f20c20015394398ddfd7 Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> (cherry picked from commit 17f2a7bbf25f54dbd71aa8f377875828b7b88e35)
37 lines
1.3 KiB
CMake
37 lines
1.3 KiB
CMake
# Copyright (c) 2017 Cisco and/or its affiliates.
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at:
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
|
|
|
|
set(HEADERS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/icmp_responder)
|
|
|
|
set(COMMON_SOURCE_FILES
|
|
icmp_responder/icmp_proto.c)
|
|
|
|
list(APPEND EXAMPLES_LIST
|
|
icmp_responder/main.c
|
|
icmp_responder-epoll/main.c
|
|
icmp_responder-mt/main.c
|
|
icmp_responder-mt_3-1/main.c
|
|
icmp_responder-eb/main.c
|
|
icmp_responder-zero-copy-slave/main.c
|
|
)
|
|
|
|
foreach (EXAMPLE_SRC ${EXAMPLES_LIST})
|
|
string(FIND ${EXAMPLE_SRC} "/" INDEX)
|
|
string(SUBSTRING ${EXAMPLE_SRC} 0 ${INDEX} EXECUTABLE)
|
|
add_executable(${EXECUTABLE} ${COMMON_SOURCE_FILES} ${EXAMPLE_SRC})
|
|
target_include_directories(${EXECUTABLE} PRIVATE $<BUILD_INTERFACE:${HEADERS_DIR}>)
|
|
target_link_libraries(${EXECUTABLE} ${LIBMEMIF} ${CMAKE_THREAD_LIBS_INIT})
|
|
endforeach()
|