summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/score/interr.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-10-14score: INTERNAL_ERROR_IDLE_THREAD_STACK_TOO_SMALLSebastian Huber1-1/+2
Ensure that the IDLE storage allocator did allocate a suffiently large area. Update #3835. Update #4524.
2022-10-14config: Add CONFIGURE_IDLE_TASK_STORAGE_SIZESebastian Huber1-1/+2
By default, allocate the IDLE task storage areas from the RTEMS Workspace. This avoids having to estimate the thread-local storage size in the default configuration. Add the application configuration option CONFIGURE_IDLE_TASK_STORAGE_SIZE to request a static allocation of the task storage area for IDLE tasks. Update #3835. Update #4524.
2022-10-14score: INTERNAL_ERROR_IDLE_THREAD_CREATE_FAILEDSebastian Huber1-0/+1
Add the INTERNAL_ERROR_IDLE_THREAD_CREATE_FAILED fatal error in case the creation of an idle thread fails. This may happen due to a failing create extension provided by the application.
2022-08-30score: Do not expose <limits.h> to <rtems.h>Sebastian Huber1-3/+1
The <rtems.h> header file should not unnecessarily include standard C header files. The <string.h> and <limits.h> header includes were removed in 2017. Update #4662.
2022-08-19interr.h: Fix gcc 12 warningRyan Long1-1/+3
The warning that this fixes states that "ISO C restricts enumerator values to range of 'int'." Updates #4662
2022-02-28cpukit/include/rtems/score/[a-r]*.h: Change license to BSD-2Joel Sherrill1-3/+22
Updates #3053.
2022-01-27Remove obsolete rtems_gxx_*() implementationSebastian Huber1-2/+2
GCC versions prior to 6.1 used a RTEMS thread model based on rtems_gxx_*() functions. GCC version 6.1 or later uses the self-contained synchronization objects of Newlib <sys/lock.h> for the RTEMS thread model. Remove the obsolete implementation. Close #3143.
2021-07-28score: Remove _Internal_errors_What_happenedSebastian Huber1-17/+1
Users have access to the fatal error source and code though the fatal error extension. The user-specific fatal error handling should be done in statically initialized fatal error handlers. The _Internal_errors_What_happened was updated after the fatal error extension. In addition, there was no API to get the information stored in _Internal_errors_What_happened. In SMP configurations, this object could contain a mix of different fatal errors. Remove this object to save some bytes of storage.
2021-07-26rtems: Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPTSebastian Huber1-0/+7
Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPT as the fatal source for spurious interrupts. Use the interrupt vector number of the spurious interrupt for the fatal code. Update #3269.
2020-12-02score: Canonicalize Doxygen @file commentsSebastian Huber1-4/+2
Use common phrases for the file brief descriptions. Update #3706.
2020-12-02score: Canonicalize Doxygen groupsSebastian Huber1-3/+2
Adjust group identifier and names to be in line with a common pattern. Use common phrases for the group brief descriptions. Update #3706.
2020-11-26config: CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZESebastian Huber1-1/+2
In order to better support applications which use the new rtems_task_construct() directive add the CONFIGURE_INIT_TASK_CONSTURCT_STORAGE_SIZE configuration option. If this option is specified, then the Classic API initialization task is constructed with rtems_task_construct(). Update #4181.
2020-11-26Avoid INTERNAL_ERROR_RTEMS_INIT_TASK_ENTRY_IS_NULLSebastian Huber1-1/+1
Replace a runtime check with a compile time assertion. This makes the INTERNAL_ERROR_RTEMS_INIT_TASK_ENTRY_IS_NULL obsolete. Update #4181.
2020-11-19config: Simplify task stack allocator initSebastian Huber1-1/+1
Replace runtime checks with compile time assertions. This makes the INTERNAL_ERROR_BAD_STACK_HOOK obsolete.
2020-10-10rtems: Improve RTEMS_NO_RETURN attributeSebastian Huber1-3/+3
Provide RTEMS_NO_RETURN also in case RTEMS_DEBUG is defined to prevent errors like this: error: no return statement in function returning non-void [-Werror=return-type] Use C11 and C++11 standard means to declare a no-return function. Close #4122.
2020-09-17CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZESebastian Huber1-1/+2
Add this application configuration option. This configuration option can be used to reserve space for the dynamic linking of modules with thread-local storage objects. Add RTEMS_TASK_STORAGE_ALIGNMENT to define the minium alignment of a thread-local storage size. Update #4074.
2020-02-25libio: Add POSIX user environment pointer to TCBSebastian Huber1-1/+1
The IO library used a POSIX key to store an optional POSIX user environment pointer. This pulled in the POSIX keys support in every application configuration. Add a user environment pointer to the thread control block (TCB) instead. Applications which do not need the POSIX user environment will just get an overhead of one pointer per thread. Close #3882.
2019-12-13score: Remove _Workspace_Allocate_or_fatal_error()Sebastian Huber1-1/+1
This function is unused. Update #3735.
2019-11-05rtems-5: Improve heap fatal error informationsebastian.huber1-0/+7
Update #3806.
2019-07-06score/interr: Fix comments.Chris Johns1-2/+2
2019-05-13doxygen: score: adjust doc in interr.h to doxygen guidelinesAndreas Dachsberger1-13/+18
Update #3706.
2019-04-04doxygen: Rename Score* groups in RTEMSScore*Sebastian Huber1-2/+2
Update #3706
2019-03-14Remove superfluous <rtems/system.h> includesSebastian Huber1-4/+1
2019-02-28Remove explicit file names from @fileSebastian Huber1-1/+1
This makes the @file documentation independent of the actual file name. Update #3707.
2018-12-18score: Fix per-CPU data allocationSebastian Huber1-1/+2
Allocate the per-CPU data for secondary processors directly from the heap areas before heap initialization and not via _Workspace_Allocate_aligned(). This avoids dependency on the workspace allocator. It fixes also a problem on some platforms (e.g. QorIQ) where at this early point in the system initialization the top of the RAM is used by low-level startup code on secondary processors (boot pages). Update #3507.
2018-12-14score: Static Objects_Information initializationSebastian Huber1-1/+1
Statically allocate the objects information together with the initial set of objects either via <rtems/confdefs.h>. Provide default object informations with zero objects via librtemscpu.a. This greatly simplifies the workspace size estimate. RTEMS applications which do not use the unlimited objects option are easier to debug since all objects reside now in statically allocated objects of the right types. Close #3621.
2018-09-21Remove INTERNAL_ERROR_INTERRUPT_STACK_TOO_SMALLSebastian Huber1-1/+1
The configured interrupt stack size (CONFIGURE_INTERRUPT_STACK_SIZE) is checked against the minimum task stack size. The minium tasks task stack size is also a configuration option (CONFIGURE_MINIMUM_TASK_STACK_SIZE). So, this check does not really help in case of configuration errors. In addition, the interrupt stack is also re-used as the initialization stack in most BSPs. It is probably better to use a stack checker to detect problems. Update #3459.
2018-06-05Add RTEMS_FATAL_SOURCE_INVALID_HEAP_FREESebastian Huber1-0/+7
An invalid heap usage such as a double free is usually a fatal error since this indicates a use after free. Replace the use of printk() in free() with a fatal error. Update #3437.
2018-01-25Remove make preinstallChris Johns1-0/+0
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
2017-12-06libio: Use API mutexSebastian Huber1-1/+1
2017-11-22sapi: New implementation of rtems_panic()Sebastian Huber1-0/+7
The previous rtems_panic() implementation was quite heavy weight. It depended on _exit() which calls the global destructors. It used fprintf(stderr, ...) for output which depends on an initialized console device and the complex fprintf(). Introduce a new fatal source RTEMS_FATAL_SOURCE_PANIC for rtems_panic() and output via vprintk(). Update #3244.
2017-11-22INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULLSebastian Huber1-1/+1
Delete superfluous INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULL. Update #3243.
2017-11-17cpukit: Add _arc4random_getentropy_fail.Christian Mauderer1-1/+2
Add a default implementation of _arc4random_getentropy_fail with an internal error. Update #3239.
2017-07-25INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNITSebastian Huber1-1/+2
Add new fatal error INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT. Update #3077.
2016-12-12Add INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_LIBIO_SEM_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12INTERNAL_ERROR_LIBIO_USER_ENV_KEY_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12score: Introduce _Internal_error()Sebastian Huber1-0/+10
2016-12-12Add INTERNAL_ERROR_POSIX_INIT_THREAD_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-12Add INTERNAL_ERROR_RTEMS_INIT_TASK_CREATE_FAILEDSebastian Huber1-1/+2
Update #2825.
2016-12-09score: Remove fatal is internal indicatorSebastian Huber1-6/+1
The fatal is internal indicator is redundant since the fatal source and error code uniquely identify a fatal error. Keep the fatal user extension is internal parameter for backward compatibility and set it to false always. Update #2825.
2016-11-23score: Explicitly define the fatal source numbersSebastian Huber1-11/+11
Update #2825.
2016-11-23score: Uncomment unused internal error codesSebastian Huber1-33/+37
Update #2825.
2016-11-23score: Add thread queue enqueue calloutSebastian Huber1-1/+1
Replace the expected thread dispatch disable level with a thread queue enqueue callout. This enables the use of _Thread_Dispatch_direct() in the thread queue enqueue procedure. This avoids impossible exection paths, e.g. Per_CPU_Control::dispatch_necessary is always true.
2016-11-23score: Robust thread dispatchSebastian Huber1-1/+2
On SMP configurations, it is a fatal error to call blocking operating system with interrupts disabled, since this prevents delivery of inter-processor interrupts. This could lead to executing threads which are not allowed to execute resulting in undefined behaviour. The ARM Cortex-M port has a similar problem, since the interrupt state is not a part of the thread context. Update #2811.
2016-11-18score: Add and use _Thread_Dispatch_direct()Sebastian Huber1-1/+2
This function is useful for operations which synchronously block, e.g. self restart, self deletion, yield, sleep. It helps to detect if these operations are called in the wrong context. Since the thread dispatch necessary indicator is not used, this is more robust in some SMP situations. Update #2751.
2016-11-02score: First part of new MrsP implementationSebastian Huber1-1/+2
Update #2556.
2016-07-27score: Add deadlock detectionSebastian Huber1-1/+2
The mutex objects use the owner field of the thread queues for the mutex owner. Use this and add a deadlock detection to _Thread_queue_Enqueue_critical() for thread queues with an owner. Update #2412. Update #2556. Close #2765.
2016-07-06score: Do not disable ISR in _Terminate()Sebastian Huber1-3/+1
This partially reverts 38ee75853f674977609bd078c69fb53420afdd08. Let the calling context decide if interrupts must be disabled or not. The goal is to enable fatal extensions to continue program execution after some fatal errors.