summaryrefslogtreecommitdiffstats
path: root/cpukit/include
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-14 13:26:17 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-25 07:15:19 +0100
commitc70d112599b1688d954f6566bfa29d5988d82464 (patch)
tree7630fae9977ca3d6fa413fa0ddfbb8f919a06091 /cpukit/include
parentconfig: Add _Watchdog_Ticks_per_timeslice (diff)
downloadrtems-c70d112599b1688d954f6566bfa29d5988d82464.tar.bz2
config: Add _Thread_Idle_stack_size
Move the idle thread stack size configuration constant out of the configuration table. Add THREAD_IDLE_STACK_SIZE_DEFAULT and use it to provide a default definition of the idle thread stack size constant. Update #3875.
Diffstat (limited to 'cpukit/include')
-rw-r--r--cpukit/include/rtems/confdefs.h5
-rw-r--r--cpukit/include/rtems/config.h10
-rw-r--r--cpukit/include/rtems/score/threadidledata.h65
3 files changed, 71 insertions, 9 deletions
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index b1c3a4a2d2..442ee7af92 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -1139,6 +1139,10 @@ extern "C" {
#error "CONFIGURE_IDLE_TASK_STACK_SIZE less than CONFIGURE_MINIMUM_TASK_STACK_SIZE"
#endif
+#ifdef CONFIGURE_INIT
+ const size_t _Thread_Idle_stack_size = CONFIGURE_IDLE_TASK_STACK_SIZE;
+#endif
+
/*
* Interrupt stack configuration.
*
@@ -2633,7 +2637,6 @@ struct _reent *__getreent(void)
const rtems_configuration_table Configuration = {
CONFIGURE_EXECUTIVE_RAM_SIZE, /* required RTEMS workspace */
CONFIGURE_IDLE_TASK_BODY, /* user's IDLE task */
- CONFIGURE_IDLE_TASK_STACK_SIZE, /* IDLE task stack size */
#ifdef CONFIGURE_UNIFIED_WORK_AREAS /* true for unified work areas */
true,
#else
diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h
index 31a667a1d6..62804be41c 100644
--- a/cpukit/include/rtems/config.h
+++ b/cpukit/include/rtems/config.h
@@ -32,6 +32,7 @@
#include <rtems/score/memory.h>
#include <rtems/score/stack.h>
#include <rtems/score/userextdata.h>
+#include <rtems/score/threadidledata.h>
#include <rtems/score/watchdogticks.h>
#include <rtems/rtems/config.h>
#include <rtems/extension.h>
@@ -92,13 +93,6 @@ typedef struct {
*/
void *(*idle_task)( uintptr_t );
- /**
- * This field specifies the size of the IDLE task's stack. If less than or
- * equal to the minimum stack size, then the IDLE task will have the minimum
- * stack size.
- */
- uint32_t idle_task_stack_size;
-
/**
* @brief Specifies if a unified work area is used or not.
*
@@ -164,7 +158,7 @@ uint32_t rtems_configuration_get_maximum_extensions( void );
(Configuration.idle_task)
#define rtems_configuration_get_idle_task_stack_size() \
- (Configuration.idle_task_stack_size)
+ (_Thread_Idle_stack_size)
#define rtems_configuration_get_interrupt_stack_size() \
((size_t) _ISR_Stack_size)
diff --git a/cpukit/include/rtems/score/threadidledata.h b/cpukit/include/rtems/score/threadidledata.h
new file mode 100644
index 0000000000..0011776ffa
--- /dev/null
+++ b/cpukit/include/rtems/score/threadidledata.h
@@ -0,0 +1,65 @@
+/**
+ * @file
+ *
+ * @ingroup RTEMSScoreThread
+ *
+ * @brief Constants for the idle threads.
+ */
+
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * 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_SCORE_THREADIDLEDATA_H
+#define _RTEMS_SCORE_THREADIDLEDATA_H
+
+#include <rtems/score/basedefs.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @addtogroup RTEMSScoreThread
+ *
+ * @{
+ */
+
+/**
+ * @brief The idle thread stack size in bytes.
+ *
+ * This constant is defined by the application configuration via
+ * <rtems/confdefs.h>.
+ */
+extern const size_t _Thread_Idle_stack_size;
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTEMS_SCORE_THREADIDLEDATA_H */