blob: 1bd93a9926e5d41ad6827a5120191f1470919328 [file] [log] [blame]
Radek Krejcid0d19522015-09-02 13:49:25 +02001/**
2 * \file config.h
3 * \author Radek Krejci <rkrejci@cesnet.cz>
4 * \brief libnetconf2 various configuration settings.
5 *
Michal Vaskof471fa02017-02-15 10:48:12 +01006 * Copyright (c) 2015 - 2017 CESNET, z.s.p.o.
Radek Krejcid0d19522015-09-02 13:49:25 +02007 *
Radek Krejci9b81f5b2016-02-24 13:14:49 +01008 * This source code is licensed under BSD 3-Clause License (the "License").
9 * You may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
Michal Vaskoafd416b2016-02-25 14:51:46 +010011 *
Radek Krejci9b81f5b2016-02-24 13:14:49 +010012 * https://opensource.org/licenses/BSD-3-Clause
Radek Krejcid0d19522015-09-02 13:49:25 +020013 */
14
15#ifndef NC_CONFIG_H_
16#define NC_CONFIG_H_
17
18/*
David Sedlákaae4df32018-10-08 22:27:22 +020019 * Mark all objects as hidden and export only objects explicitly marked to be part of the public API or
20 * those marked as mock objects for testing purpose
Radek Krejcid0d19522015-09-02 13:49:25 +020021 */
22#define API __attribute__((visibility("default")))
David Sedlákddde4492018-09-30 21:34:38 +020023#define MOCK __attribute__((visibility("default")))
24
Michal Vasko05ba9df2016-01-13 14:40:27 +010025#ifdef __GNUC__
26# define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
27#else
28# define UNUSED(x) UNUSED_ ## x
29#endif
30
Radek Krejci14b14032015-10-21 15:19:43 +020031/*
Radek Krejci32898d52016-07-14 17:37:02 +020032 * Support for spinlocks
33 */
34#cmakedefine HAVE_SPINLOCK
35#ifndef HAVE_SPINLOCK
36# define pthread_spinlock_t pthread_mutex_t
37# define pthread_spin_init(s, opt) pthread_mutex_init(s, NULL)
38# define pthread_spin_lock pthread_mutex_lock
39# define pthread_spin_trylock pthread_mutex_trylock
40# define pthread_spin_unlock pthread_mutex_unlock
41# define pthread_spin_destroy pthread_mutex_destroy
42#endif
43
44/*
Radek Krejci28472922016-07-15 11:51:16 +020045 * support for pthread_mutex_timedlock
46 */
47#cmakedefine HAVE_PTHREAD_MUTEX_TIMEDLOCK
48
49/*
Radek Krejci14b14032015-10-21 15:19:43 +020050 * Location of installed basic YIN/YANG schemas
51 */
Michal Vaskoff7e3562018-02-15 13:41:22 +010052#define NC_SCHEMAS_DIR "@SCHEMAS_DIR@"
Radek Krejci14b14032015-10-21 15:19:43 +020053
Michal Vasko6b7c42e2016-03-02 15:46:41 +010054/*
Michal Vaskof471fa02017-02-15 10:48:12 +010055 * Inactive read timeout
Michal Vasko6b7c42e2016-03-02 15:46:41 +010056 */
Michal Vaskof471fa02017-02-15 10:48:12 +010057#define NC_READ_INACT_TIMEOUT @READ_INACTIVE_TIMEOUT@
58
59/*
60 * Active read timeout in seconds
61 * (also used for internal <get-schema> RPC reply timeout)
62 */
63#define NC_READ_ACT_TIMEOUT @READ_ACTIVE_TIMEOUT@
Michal Vasko6b7c42e2016-03-02 15:46:41 +010064
Michal Vaskoafdb8ec2017-02-15 11:25:36 +010065/*
66 * pspoll structure queue size (also found in nc_server.h)
67 */
68#define NC_PS_QUEUE_SIZE @MAX_PSPOLL_THREAD_COUNT@
69
Radek Krejcid0d19522015-09-02 13:49:25 +020070#endif /* NC_CONFIG_H_ */