Remove all comments and copyrightable content from the moved content. Use BSD-2-Clause license for new file.
Update #3053. Update #3875. --- cpukit/headers.am | 1 + cpukit/include/rtems/confdefs.h | 58 +----------------- cpukit/include/rtems/confdefs/initthread.h | 97 ++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 56 deletions(-) create mode 100644 cpukit/include/rtems/confdefs/initthread.h diff --git a/cpukit/headers.am b/cpukit/headers.am index ae235a3f32..7a9cf1adae 100644 --- a/cpukit/headers.am +++ b/cpukit/headers.am @@ -188,6 +188,7 @@ include_rtems_confdefs_HEADERS += include/rtems/confdefs/bsp.h include_rtems_confdefs_HEADERS += include/rtems/confdefs/clock.h include_rtems_confdefs_HEADERS += include/rtems/confdefs/extensions.h include_rtems_confdefs_HEADERS += include/rtems/confdefs/inittask.h +include_rtems_confdefs_HEADERS += include/rtems/confdefs/initthread.h include_rtems_confdefs_HEADERS += include/rtems/confdefs/libio.h include_rtems_confdefs_HEADERS += include/rtems/confdefs/libpci.h include_rtems_confdefs_HEADERS += include/rtems/confdefs/malloc.h diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h index d31c125f7e..4ae6580754 100644 --- a/cpukit/include/rtems/confdefs.h +++ b/cpukit/include/rtems/confdefs.h @@ -52,6 +52,7 @@ #include <rtems/confdefs/clock.h> #include <rtems/confdefs/extensions.h> #include <rtems/confdefs/inittask.h> +#include <rtems/confdefs/initthread.h> #include <rtems/confdefs/libio.h> #include <rtems/confdefs/libpci.h> #include <rtems/confdefs/malloc.h> @@ -605,24 +606,6 @@ extern "C" { #define _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS 0 #endif -#ifdef CONFIGURE_POSIX_INIT_THREAD_TABLE - #ifndef CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT - #define CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT POSIX_Init - #endif - - #ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \ - CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE - #endif -#endif /* CONFIGURE_POSIX_INIT_THREAD_TABLE */ - -/** - * This configuration parameter specifies the stack size of the - * POSIX API Initialization thread (if used). - */ -#ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE 0 -#endif /**@}*/ /* end of POSIX API Configuration */ /** @@ -700,31 +683,13 @@ extern "C" { _CONFIGURE_HEAP_HANDLER_OVERHEAD \ ) -/* - * Now account for any extra memory that initialization tasks or threads - * may have requested. - */ - -/* - * This accounts for any extra memory required by the POSIX API - * Initialization Thread. - */ -#if (CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE > \ - CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE) - #define _CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART \ - (CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - \ - CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE) -#else - #define _CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART 0 -#endif - /* * This macro provides a summation of the various initialization task * and thread stack requirements. */ #define _CONFIGURE_INITIALIZATION_THREADS_EXTRA_STACKS \ (_CONFIGURE_INIT_TASK_STACK_EXTRA + \ - _CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART) + _CONFIGURE_POSIX_INIT_THREAD_STACK_EXTRA) /* * This macro is calculated to specify the memory required for @@ -1054,25 +1019,6 @@ extern "C" { #endif #endif -/* - * If the user has configured a set of POSIX Initialization Threads, - * then we need to install the code that runs that loop. - */ -#ifdef CONFIGURE_INIT - #if defined(CONFIGURE_POSIX_INIT_THREAD_TABLE) - const posix_initialization_threads_table _POSIX_Threads_User_thread_table = { - CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT, - CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - }; - - RTEMS_SYSINIT_ITEM( - _POSIX_Threads_Initialize_user_thread, - RTEMS_SYSINIT_POSIX_USER_THREADS, - RTEMS_SYSINIT_ORDER_MIDDLE - ); - #endif -#endif - #ifdef __cplusplus } #endif diff --git a/cpukit/include/rtems/confdefs/initthread.h b/cpukit/include/rtems/confdefs/initthread.h new file mode 100644 index 0000000000..9d924d3aea --- /dev/null +++ b/cpukit/include/rtems/confdefs/initthread.h @@ -0,0 +1,97 @@ +/* + * 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. + */ + +/** + * @file + * + * @ingroup RTEMSApplicationConfiguration + * + * @brief Evaluate POSIX Initialization Thread Configuration Options + * + * This header file defines _CONFIGURE_POSIX_INIT_THREAD_STACK_EXTRA for use by + * other configuration header files. + */ + +#ifndef _RTEMS_CONFDEFS_INITTHREAD_H +#define _RTEMS_CONFDEFS_INITTHREAD_H + +#ifndef __CONFIGURATION_TEMPLATE_h +#error "Do not include this file directly, use <rtems/confdefs.h> instead" +#endif + +#ifdef CONFIGURE_INIT + +#ifdef CONFIGURE_POSIX_INIT_THREAD_TABLE + +#include <rtems/confdefs/percpu.h> +#include <rtems/posix/pthread.h> +#include <rtems/sysinit.h> + +#ifndef CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT + #define CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT POSIX_Init +#endif + +#ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE + #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \ + CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE +#endif + +#if CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \ + > CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE + #define _CONFIGURE_POSIX_INIT_THREAD_STACK_EXTRA \ + ( CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - \ + CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE ) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +const posix_initialization_threads_table _POSIX_Threads_User_thread_table = { + CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT, + CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE +}; + +RTEMS_SYSINIT_ITEM( + _POSIX_Threads_Initialize_user_thread, + RTEMS_SYSINIT_POSIX_USER_THREADS, + RTEMS_SYSINIT_ORDER_MIDDLE +); + +#ifdef __cplusplus +} +#endif + +#endif /* CONFIGURE_POSIX_INIT_THREAD_TABLE */ + +#ifndef _CONFIGURE_POSIX_INIT_THREAD_STACK_EXTRA + #define _CONFIGURE_POSIX_INIT_THREAD_STACK_EXTRA 0 +#endif + +#endif /* CONFIGURE_INIT */ + +#endif /* _RTEMS_CONFDEFS_INITTHREAD_H */ -- 2.16.4 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel