summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-20 07:22:48 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-25 07:18:37 +0100
commit691b61498ed32cef1e83cd9917c8567329286cfa (patch)
tree8d8c2217e31ab47aa01c55ceb70877d2b1f8659f
parentconfig: Add <rtems/confdefs/scheduler.h> (diff)
downloadrtems-691b61498ed32cef1e83cd9917c8567329286cfa.tar.bz2
config: Add <rtems/confdefs/bdbuf.h>
Remove all comments and copyrightable content from the moved content. Use BSD-2-Clause license for new file. Update #3053. Update #3875.
-rw-r--r--cpukit/headers.am1
-rw-r--r--cpukit/include/rtems/confdefs.h100
-rw-r--r--cpukit/include/rtems/confdefs/bdbuf.h161
3 files changed, 164 insertions, 98 deletions
diff --git a/cpukit/headers.am b/cpukit/headers.am
index 2cb59165bf..10014ee489 100644
--- a/cpukit/headers.am
+++ b/cpukit/headers.am
@@ -183,6 +183,7 @@ include_rtems_HEADERS += include/rtems/userenv.h
include_rtems_HEADERS += include/rtems/version.h
include_rtems_HEADERS += include/rtems/vmeintr.h
include_rtems_HEADERS += include/rtems/watchdogdrv.h
+include_rtems_confdefs_HEADERS += include/rtems/confdefs/bdbuf.h
include_rtems_confdefs_HEADERS += include/rtems/confdefs/bsp.h
include_rtems_confdefs_HEADERS += include/rtems/confdefs/libio.h
include_rtems_confdefs_HEADERS += include/rtems/confdefs/libpci.h
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index ba37f0abe7..15e921629b 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -50,6 +50,7 @@
#include <rtems/posix/shm.h>
#include <rtems/posix/timer.h>
#include <rtems/confdefs/obsolete.h>
+#include <rtems/confdefs/bdbuf.h>
#include <rtems/confdefs/libio.h>
#include <rtems/confdefs/libpci.h>
#include <rtems/confdefs/percpu.h>
@@ -464,103 +465,6 @@ extern "C" {
/**@}*/ /* end of Device Driver Table Configuration */
/**
- * @defgroup ConfigurationLibBlock Configuration of LIBBLOCK
- *
- * @addtogroup Configuration
- *
- * This module contains parameters related to the LIBBLOCK buffering
- * and caching subsystem. It requires tasks to swap out data to be
- * written to non-volatile storage.
- */
-/**@{*/
-#ifdef CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
- #include <rtems/bdbuf.h>
- /*
- * configure the bdbuf cache parameters
- */
- #ifndef CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
- #define CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS \
- RTEMS_BDBUF_MAX_READ_AHEAD_BLOCKS_DEFAULT
- #endif
- #ifndef CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
- #define CONFIGURE_BDBUF_MAX_WRITE_BLOCKS \
- RTEMS_BDBUF_MAX_WRITE_BLOCKS_DEFAULT
- #endif
- #ifndef CONFIGURE_SWAPOUT_TASK_PRIORITY
- #define CONFIGURE_SWAPOUT_TASK_PRIORITY \
- RTEMS_BDBUF_SWAPOUT_TASK_PRIORITY_DEFAULT
- #endif
- #ifndef CONFIGURE_SWAPOUT_SWAP_PERIOD
- #define CONFIGURE_SWAPOUT_SWAP_PERIOD \
- RTEMS_BDBUF_SWAPOUT_TASK_SWAP_PERIOD_DEFAULT
- #endif
- #ifndef CONFIGURE_SWAPOUT_BLOCK_HOLD
- #define CONFIGURE_SWAPOUT_BLOCK_HOLD \
- RTEMS_BDBUF_SWAPOUT_TASK_BLOCK_HOLD_DEFAULT
- #endif
- #ifndef CONFIGURE_SWAPOUT_WORKER_TASKS
- #define CONFIGURE_SWAPOUT_WORKER_TASKS \
- RTEMS_BDBUF_SWAPOUT_WORKER_TASKS_DEFAULT
- #endif
- #ifndef CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
- #define CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY \
- RTEMS_BDBUF_SWAPOUT_WORKER_TASK_PRIORITY_DEFAULT
- #endif
- #ifndef CONFIGURE_BDBUF_TASK_STACK_SIZE
- #define CONFIGURE_BDBUF_TASK_STACK_SIZE \
- RTEMS_BDBUF_TASK_STACK_SIZE_DEFAULT
- #endif
- #ifndef CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
- #define CONFIGURE_BDBUF_CACHE_MEMORY_SIZE \
- RTEMS_BDBUF_CACHE_MEMORY_SIZE_DEFAULT
- #endif
- #ifndef CONFIGURE_BDBUF_BUFFER_MIN_SIZE
- #define CONFIGURE_BDBUF_BUFFER_MIN_SIZE \
- RTEMS_BDBUF_BUFFER_MIN_SIZE_DEFAULT
- #endif
- #ifndef CONFIGURE_BDBUF_BUFFER_MAX_SIZE
- #define CONFIGURE_BDBUF_BUFFER_MAX_SIZE \
- RTEMS_BDBUF_BUFFER_MAX_SIZE_DEFAULT
- #endif
- #ifndef CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
- #define CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY \
- RTEMS_BDBUF_READ_AHEAD_TASK_PRIORITY_DEFAULT
- #endif
- #ifdef CONFIGURE_INIT
- const rtems_bdbuf_config rtems_bdbuf_configuration = {
- CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS,
- CONFIGURE_BDBUF_MAX_WRITE_BLOCKS,
- CONFIGURE_SWAPOUT_TASK_PRIORITY,
- CONFIGURE_SWAPOUT_SWAP_PERIOD,
- CONFIGURE_SWAPOUT_BLOCK_HOLD,
- CONFIGURE_SWAPOUT_WORKER_TASKS,
- CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY,
- CONFIGURE_BDBUF_TASK_STACK_SIZE,
- CONFIGURE_BDBUF_CACHE_MEMORY_SIZE,
- CONFIGURE_BDBUF_BUFFER_MIN_SIZE,
- CONFIGURE_BDBUF_BUFFER_MAX_SIZE,
- CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
- };
- #endif
-
- #define _CONFIGURE_LIBBLOCK_TASKS \
- (1 + CONFIGURE_SWAPOUT_WORKER_TASKS + \
- (CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS != 0))
-
- #define _CONFIGURE_LIBBLOCK_TASK_EXTRA_STACKS \
- (_CONFIGURE_LIBBLOCK_TASKS * \
- (CONFIGURE_BDBUF_TASK_STACK_SIZE <= CONFIGURE_MINIMUM_TASK_STACK_SIZE ? \
- 0 : CONFIGURE_BDBUF_TASK_STACK_SIZE - CONFIGURE_MINIMUM_TASK_STACK_SIZE))
-#else
- /** This specifies the number of libblock tasks. */
- #define _CONFIGURE_LIBBLOCK_TASKS 0
- /** This specifies the extra stack space configured for libblock tasks. */
- #define _CONFIGURE_LIBBLOCK_TASK_EXTRA_STACKS 0
- /** This specifies the number of Classic API semaphores needed by libblock. */
-#endif /* CONFIGURE_APPLICATION_NEEDS_LIBBLOCK */
-/**@}*/
-
-/**
* @defgroup ConfigurationMultiprocessing Multiprocessing Configuration
*
* @addtogroup Configuration
@@ -1243,7 +1147,7 @@ struct _reent *__getreent(void)
_CONFIGURE_INITIALIZATION_THREADS_EXTRA_STACKS + \
_CONFIGURE_TASKS_STACK + \
_CONFIGURE_POSIX_THREADS_STACK + \
- _CONFIGURE_LIBBLOCK_TASK_EXTRA_STACKS + \
+ _CONFIGURE_LIBBLOCK_TASKS_STACK_EXTRA + \
CONFIGURE_EXTRA_TASK_STACKS + \
_CONFIGURE_HEAP_HANDLER_OVERHEAD \
)
diff --git a/cpukit/include/rtems/confdefs/bdbuf.h b/cpukit/include/rtems/confdefs/bdbuf.h
new file mode 100644
index 0000000000..bef1cb8072
--- /dev/null
+++ b/cpukit/include/rtems/confdefs/bdbuf.h
@@ -0,0 +1,161 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
+/**
+ * @file
+ *
+ * @ingroup RTEMSApplicationConfiguration
+ *
+ * @brief Evaluate Block Device Cache Configuration Options
+ *
+ * It defines
+ *
+ * - _CONFIGURE_LIBBLOCK_TASKS and
+ *
+ * - _CONFIGURE_LIBBLOCK_TASKS_STACK_EXTRA
+ *
+ * for use by other configuration header files.
+ */
+
+/*
+ * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTEMS_CONFDEFS_BDBUF_H
+#define _RTEMS_CONFDEFS_BDBUF_H
+
+#ifndef __CONFIGURATION_TEMPLATE_h
+#error "Do not include this file directly, use <rtems/confdefs.h> instead"
+#endif
+
+#ifdef CONFIGURE_INIT
+
+#ifdef CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
+
+#include <rtems/confdefs/percpu.h>
+#include <rtems/bdbuf.h>
+
+#ifndef CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
+ #define CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS \
+ RTEMS_BDBUF_MAX_READ_AHEAD_BLOCKS_DEFAULT
+#endif
+
+#ifndef CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
+ #define CONFIGURE_BDBUF_MAX_WRITE_BLOCKS \
+ RTEMS_BDBUF_MAX_WRITE_BLOCKS_DEFAULT
+#endif
+
+#ifndef CONFIGURE_SWAPOUT_TASK_PRIORITY
+ #define CONFIGURE_SWAPOUT_TASK_PRIORITY \
+ RTEMS_BDBUF_SWAPOUT_TASK_PRIORITY_DEFAULT
+#endif
+
+#ifndef CONFIGURE_SWAPOUT_SWAP_PERIOD
+ #define CONFIGURE_SWAPOUT_SWAP_PERIOD \
+ RTEMS_BDBUF_SWAPOUT_TASK_SWAP_PERIOD_DEFAULT
+#endif
+
+#ifndef CONFIGURE_SWAPOUT_BLOCK_HOLD
+ #define CONFIGURE_SWAPOUT_BLOCK_HOLD \
+ RTEMS_BDBUF_SWAPOUT_TASK_BLOCK_HOLD_DEFAULT
+#endif
+
+#ifndef CONFIGURE_SWAPOUT_WORKER_TASKS
+ #define CONFIGURE_SWAPOUT_WORKER_TASKS \
+ RTEMS_BDBUF_SWAPOUT_WORKER_TASKS_DEFAULT
+#endif
+
+#ifndef CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
+ #define CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY \
+ RTEMS_BDBUF_SWAPOUT_WORKER_TASK_PRIORITY_DEFAULT
+#endif
+
+#ifndef CONFIGURE_BDBUF_TASK_STACK_SIZE
+ #define CONFIGURE_BDBUF_TASK_STACK_SIZE \
+ RTEMS_BDBUF_TASK_STACK_SIZE_DEFAULT
+#endif
+
+#ifndef CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
+ #define CONFIGURE_BDBUF_CACHE_MEMORY_SIZE \
+ RTEMS_BDBUF_CACHE_MEMORY_SIZE_DEFAULT
+#endif
+
+#ifndef CONFIGURE_BDBUF_BUFFER_MIN_SIZE
+ #define CONFIGURE_BDBUF_BUFFER_MIN_SIZE \
+ RTEMS_BDBUF_BUFFER_MIN_SIZE_DEFAULT
+#endif
+
+#ifndef CONFIGURE_BDBUF_BUFFER_MAX_SIZE
+ #define CONFIGURE_BDBUF_BUFFER_MAX_SIZE \
+ RTEMS_BDBUF_BUFFER_MAX_SIZE_DEFAULT
+#endif
+
+#ifndef CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
+ #define CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY \
+ RTEMS_BDBUF_READ_AHEAD_TASK_PRIORITY_DEFAULT
+#endif
+
+#define _CONFIGURE_LIBBLOCK_TASKS \
+ ( 1 + CONFIGURE_SWAPOUT_WORKER_TASKS \
+ + ( CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS != 0 ) )
+
+#define _CONFIGURE_LIBBLOCK_TASKS_STACK_EXTRA \
+ ( _CONFIGURE_LIBBLOCK_TASKS \
+ * ( CONFIGURE_BDBUF_TASK_STACK_SIZE <= CONFIGURE_MINIMUM_TASK_STACK_SIZE ? \
+ 0 : \
+ CONFIGURE_BDBUF_TASK_STACK_SIZE - CONFIGURE_MINIMUM_TASK_STACK_SIZE ) )
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+const rtems_bdbuf_config rtems_bdbuf_configuration = {
+ CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS,
+ CONFIGURE_BDBUF_MAX_WRITE_BLOCKS,
+ CONFIGURE_SWAPOUT_TASK_PRIORITY,
+ CONFIGURE_SWAPOUT_SWAP_PERIOD,
+ CONFIGURE_SWAPOUT_BLOCK_HOLD,
+ CONFIGURE_SWAPOUT_WORKER_TASKS,
+ CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY,
+ CONFIGURE_BDBUF_TASK_STACK_SIZE,
+ CONFIGURE_BDBUF_CACHE_MEMORY_SIZE,
+ CONFIGURE_BDBUF_BUFFER_MIN_SIZE,
+ CONFIGURE_BDBUF_BUFFER_MAX_SIZE,
+ CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#else /* !CONFIGURE_APPLICATION_NEEDS_LIBBLOCK */
+
+#define _CONFIGURE_LIBBLOCK_TASKS 0
+
+#define _CONFIGURE_LIBBLOCK_TASKS_STACK_EXTRA 0
+
+#endif /* CONFIGURE_APPLICATION_NEEDS_LIBBLOCK */
+
+#endif /* CONFIGURE_INIT */
+
+#endif /* _RTEMS_CONFDEFS_BDBUF_H */