/** Static server configuration
 *
 * This file contains some compiled-in settings.
 * This settings are not part of the configuration file.
 *
 * Author: Steffen Vogel <post@steffenvogel.de>
 * SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
 * SPDX-License-Identifier: Apache-2.0
 */

#pragma once

#include <villas/config.hpp>

/** Default number of values in a sample */
#define DEFAULT_SAMPLE_LENGTH		64u
#define DEFAULT_QUEUE_LENGTH		1024u
#define MAX_SAMPLE_LENGTH		512u
#define DEFAULT_FORMAT_BUFFER_LENGTH 	4096u

/** Number of hugepages which are requested from the the kernel.
 * @see https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt */
#define DEFAULT_NR_HUGEPAGES	100

/** Socket priority */
#define SOCKET_PRIO		7

/* Protocol numbers */
#define IPPROTO_VILLAS		137
#define ETH_P_VILLAS		0xBABE

/* Required kernel version */
#define KERNEL_VERSION_MAJ	3
#define KERNEL_VERSION_MIN	6

/* Available Features */
#cmakedefine WITH_WEB
#cmakedefine WITH_NODE_WEBSOCKET
#cmakedefine WITH_NODE_WEBRTC
#cmakedefine WITH_API
#cmakedefine WITH_HOOKS
#cmakedefine WITH_CONFIG
#cmakedefine WITH_GRAPHVIZ
#cmakedefine WITH_FPGA

/* OS Headers */
#cmakedefine HAS_EVENTFD
#cmakedefine HAS_SEMAPHORE

/* Available Libraries */
#cmakedefine PROTOBUF_FOUND
#cmakedefine LIBNL3_ROUTE_FOUND
#cmakedefine IBVERBS_FOUND
#cmakedefine LUAJIT_FOUND

/* Library features */
#cmakedefine LWS_DEFLATE_FOUND
#cmakedefine REDISPP_WITH_TLS
#cmakedefine REDISPP_WITH_URI
#cmakedefine RABBITMQ_C_NEW_INCLUDE_DIR

/* Library versions */
#define RTC_VERSION_NUM ((@LibDataChannel_VERSION_MAJOR@ << 16) | (@LibDataChannel_VERSION_MINOR@ << 8) | (@LibDataChannel_VERSION_PATCH@ << 0))