summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/confdefs.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-02-12score: Split stack allocator configurationSebastian Huber1-38/+25
This allows the linker garbage collection to perform its work. Update #3835.
2020-02-12score: Simplify TLS area allocationSebastian Huber1-1/+2
Use the stack area to allocate the TLS area. Update #3835.
2020-02-12score: Simplify FP context allocationSebastian Huber1-41/+3
Use the stack area to allocate the FP context. This considerably simplifies the application configuration since the task count no longer influences the configured work space size. With this change the stack space size is overestimated since an FP context for each thread is accounted. Memory constraint applications can use the stack size for fine tuning. Update #3835.
2020-02-06config: Add CONFIGURE_DIRTY_MEMORYSebastian Huber1-0/+8
Replace the BSP_DIRTY_MEMORY BSP option with a CONFIGURE_DIRTY_MEMORY configuration option. Update #3843.
2020-02-06sysinit: Add RTEMS_SYSINIT_ZERO_MEMORYSebastian Huber1-5/+10
Use a dedicate system initialization step to zero the memory used for the workspace and C program heap. This avoids dead code in case CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is not configured.
2020-02-06config: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLYSebastian Huber1-10/+5
Canonicalize CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY and use defined/undefined instead of TRUE/FALSE. Close #3862.
2020-02-06config: Remove BSP_ZERO_WORKSPACE_AUTOMATICALLYSebastian Huber1-7/+1
Update #3863.
2020-02-04config: Add CONFIGURE_VERBOSE_SYSTEM_INITIALIZATIONSebastian Huber1-0/+8
Update #3861.
2020-02-04bsps: Rework work area initializationSebastian Huber1-15/+0
The work area initialization was done by the BSP through bsp_work_area_initialize(). This approach predated the system initialization through the system initialization linker set. The workspace and C program heap were unconditionally initialized. The aim is to support RTEMS application configurations which do not need the workspace and C program heap. In these configurations, the workspace and C prgram heap should not get initialized. Change all bsp_work_area_initialize() to implement _Memory_Get() instead. Move the dirty memory, sbrk(), per-CPU data, workspace, and malloc() heap initialization into separate system initialization steps. This makes it also easier to test the individual initialization steps. This change adds a dependency to _Heap_Extend() to all BSPs. This dependency will be removed in a follow up change. Update #3838.
2020-01-28record: Fix configurationSebastian Huber1-2/+4
2019-12-19config: Improve EDF SMP scheduler configurationSebastian Huber1-2/+1
Use CONFIGURE_MAXIMUM_PROCESSORS to configure the EDF SMP scheduler context. This avoids hard to debug configuration errors resulting in memory corruptions. Close #3815.
2019-12-19config: Fix CONFIGURE_MAXIMUM_POSIX_THREADSSebastian Huber1-1/+1
Bug was introduced by previous commit. Update #3845.
2019-12-19config: Remove Ada configuration optionsSebastian Huber1-62/+18
Update #3845.
2019-12-19config: CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORSSebastian Huber1-3/+8
Rename CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS into CONFIGURE_MAXIMUM_FILE_DESCRIPTORS. Update #3753.
2019-12-19config: CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLESebastian Huber1-30/+28
Remove CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE. Update #3844.
2019-12-13config: Statically allocate MP object controlsSebastian Huber1-16/+4
Update #3735.
2019-12-13config: Statically allocate MP thread proxiesSebastian Huber1-6/+13
Update #3735.
2019-12-13config: Add _MPCI_ConfigurationSebastian Huber1-7/+9
Replace the user MPCI configuration table with a system provided _MPCI_Configuration. Update #3735.
2019-12-13config: CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLESebastian Huber1-41/+41
Obsolete the CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE configuration option. Update #3735.
2019-12-13config: Add CONFIGURE_IMFS_ENABLE_MKFIFOSebastian Huber1-5/+11
Obsolete undocumented configuration options CONFIGURE_MAXIMUM_FIFOS and CONFIGURE_MAXIMUM_PIPES. Replace these options with the new CONFIGURE_IMFS_ENABLE_MKFIFO configuration option. Update #3840.
2019-12-11pipe: Use condition variablesSebastian Huber1-20/+2
Use self-contained condition variables instead of Classic API barriers. This simplifies the implementation and configuration. Update #3840.
2019-12-11mpci: Simplify MPCI configurationSebastian Huber1-9/+2
Use watchdog for shared memory driver instead of a Classic API Timer.
2019-12-11rtems: Simplify semaphore configurationSebastian Huber1-18/+8
The MrsP semaphore implementation predates the addition of self-contained synchronization objects. At this time, the potential memory reduction was justified considering the more complex configuration and additional use of the workspace. With the availability of self-contained synchronization options, e.g. POSIX mutexes, this is no longer justified. Memory constrained applications should use the self-contained synchronization objects. Remove the CONFIGURE_MAXIMUM_MRSP_SEMAPHORES configuration option. This has only an impact on applications which use SMP and a large number of scheduler instances. Update #3833.
2019-12-11clock: Simplify driver initializationSebastian Huber1-4/+8
Use a system initialization handler instead of a legacy IO driver. Update #3834.
2019-12-09userext: Simplify configurationSebastian Huber1-21/+7
Avoid the use of the workspace and use statically allocated switch controls for the initial extensions.
2019-10-28config: Avoid zero-length arraySebastian Huber1-2/+4
Use RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION() instead. Close #3799.
2019-08-30record: Simplify configurationSebastian Huber1-2/+1
Update #3665.
2019-08-28record: Use BSS section instead of per-CPU dataSebastian Huber1-6/+10
The .rtemsrwset section is used for the per-CPU data. This section has loadable content. Place the ring buffers in the BSS section to avoid large executable image sizes. Not using the per-CPU data makes it possible to initialize the record support earlier. Update #3665.
2019-07-30Add and use THREAD_DEFAULT_MAXIMUM_NAME_SIZESebastian Huber1-1/+1
2019-06-19rtems/confdefs.h: Fix typoJoel Sherrill1-1/+1
2019-04-10posix: Avoid workspace for queued signalsSebastian Huber1-0/+4
2019-04-10posix: _Configuration_POSIX_Minimum_stack_sizeSebastian Huber1-1/+1
Rename to use proper namespace.
2019-04-10posix: _Configuration_POSIX_Maximum_queued_signalsSebastian Huber1-1/+1
Rename to use proper namespace.
2019-04-10config: Obsolete Go configuration optionsSebastian Huber1-46/+13
Update #2832.
2019-01-29Add low level event recording supportSebastian Huber1-0/+31
Add low level event recording infrastructure for system and user defined events. The infrastructure is able to record high frequency events such as * SMP lock acquire/release, * interrupt entry/exit, * thread switches, * UMA zone allocate/free, and * Ethernet packet input/output, etc. It allows post-mortem analysis in fatal error handlers, e.g. the last events are in the record buffer, the newest event overwrites the oldest event. It is possible to detect record buffer overflows for consumers that expect a continuous stream of events, e.g. to display the system state in real-time. The implementation supports high-end SMP machines (more than 1GHz processor frequency, more than four processors). Add a new API instead. The implementation uses per-processor data structures and no atomic read-modify-write operations. It is uses per-processor ring buffers to record the events. The CPU counter is used to get the time of events. It is combined with periodic uptime events to synchronize it with CLOCK_REALTIME. The existing capture engine tries to solve this problem also, but its performance is not good enough for high-end production systems. The main issues are the variable-size buffers and the use of SMP locks for synchronization. To fix this, the API would change significantly. Update #3665.
2018-12-17config: Remove CONFIGURE_CONFDEFS_DEBUGSebastian Huber1-59/+0
This configuration option was undocumented and not really helpful. To debug issues in <rtems/confdefs.h> it is better to save the preprocessesd file (GCC "-save-temps" option) and use the GCC "-Wp,-dD" pre-processor option.
2018-12-14score: Static Objects_Information initializationSebastian Huber1-309/+153
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-12-04Spelling and grammar fixes in source code comments (GCI 2018)Marçal Comajoan Cara1-2/+2
2018-11-12rtems: Move internal structures to extensiondata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to timerdata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to tasksdata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to semdata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to regiondata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to partdata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to messagedata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to dpmemdata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to barrierdata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to ratemondata.hSebastian Huber1-0/+1
Update #3598.
2018-11-08score: Rename interrupt stack symbolsSebastian Huber1-3/+3
Rename * _Configuration_Interrupt_stack_area_begin in _ISR_Stack_area_begin, * _Configuration_Interrupt_stack_area_end in _ISR_Stack_area_end, and * _Configuration_Interrupt_stack_size in _ISR_Stack_size. Move definitions to <rtems/score/isr.h>. The new names are considerable shorter and in the right namespace. Update #3459.
2018-11-07config: Fix CONFIGURE_DISABLE_NEWLIB_REENTRANCYSebastian Huber1-9/+5
Move the __getreent() variant using the global reentrancy structure to librtemscpu.a. This avoids a definition of __getreent() in the configuration module if CONFIGURE_DISABLE_NEWLIB_REENTRANCY is defined. This avoids all the dependencies which would be exposed by a reference to the global reentrancy structure. This change is only possible since the default configuration moved to librtemsdefaultconfig.a recently.