summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* sysinit: Add RTEMS_SYSINIT_ZERO_MEMORYSebastian Huber2020-02-069-22/+109
| | | | | | | | 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.
* config: CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLYSebastian Huber2020-02-061-10/+5
| | | | | | | Canonicalize CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY and use defined/undefined instead of TRUE/FALSE. Close #3862.
* config: Remove BSP_ZERO_WORKSPACE_AUTOMATICALLYSebastian Huber2020-02-061-7/+1
| | | | Update #3863.
* score: Fix linker sets on small data area targetsSebastian Huber2020-02-062-5/+14
| | | | Update #3865.
* score: Optimize STATUS_BUILD()Sebastian Huber2020-02-041-3/+5
| | | | | | Do not cast to unsigned int to avoid an unsigned long long enum type. Use a multiplication/division instead to preserve the signedness of the POSIX status.
* config: Add CONFIGURE_VERBOSE_SYSTEM_INITIALIZATIONSebastian Huber2020-02-044-0/+572
| | | | Update #3861.
* Use RTEMS_SYSINIT_ORDER_LAST_BUT_5Sebastian Huber2020-02-042-2/+2
| | | | | | | | Use RTEMS_SYSINIT_ORDER_LAST_BUT_5 instead of RTEMS_SYSINIT_ORDER_LAST to allow applications and support functions to place system initialization handlers behind the standard handlers. Update #3838.
* sysinit: Add RTEMS_SYSINIT_ORDER_LAST_BUT_[1-9]Sebastian Huber2020-02-041-12/+21
| | | | Update #3838.
* bsps: Rework work area initializationSebastian Huber2020-02-048-141/+131
| | | | | | | | | | | | | | | | | | | | 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.
* stackchk: Add RTEMS_SYSINIT_ISR_STACKSebastian Huber2020-02-042-2/+3
| | | | | | | Use a dedicated system initialization step for the stack checker interrupt stack support. Update #3838.
* bsps: Add RTEMS_SYSINIT_BSP_EARLYSebastian Huber2020-02-041-0/+1
| | | | | | | Add new BSP system initialization step for work to be performed before the work areas are initialized. Update #3838.
* score: Add _Memory_Fill()Sebastian Huber2020-02-043-1/+59
| | | | Update #3838.
* score: Add Memory HandlerSebastian Huber2020-02-044-0/+400
| | | | Update #3838.
* score: Optimize per-processor data placementSebastian Huber2020-02-011-1/+8
| | | | Only align per-processor data in SMP configurations.
* libtest: Fix T_check_task_context()Sebastian Huber2020-01-281-2/+2
| | | | Fix T_check_task_context() in RTEMS_SMP with RTEMS_DEBUG configurations.
* record: Fix configurationSebastian Huber2020-01-281-2/+4
|
* Use EAGAIN for POSIX mq wait in ISR errorMartin Erik Werner2020-01-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify the status code returned by _CORE_message_queue_Submit() when it detects a wait about to happen in an ISR (which would be deadly) to return a status which translated to EAGAIN instead of ENOMEM. This is only relevant for POSIX message queues, since Classic API message queues cannot block on send. The motivation is to match the "most related" errno value returned from mq_send() and mq_timedsend() according to POSIX, via Open Group: [EAGAIN] The O_NONBLOCK flag is set in the message queue description associated with mqdes, and the specified message queue is full. or via the RTEMS POSIX users documentation EAGAIN The message queue is non-blocking, and there is no room on the queue for another message as specified by the mq_maxmsg. Neither of these matches the case ofi avoided ISR wait perfectly, but they seem to be the closest equivalent, unless it is desirable to keep a new non-standard error for this case. It is presumed that this is not desirable. The previously returned ENOMEM error value is not documented in either the Open Group or the RTEMS POSIX uses documentation. A companion patch corrects the documentation to include this error condition. Based on the discussion in: https://lists.rtems.org/pipermail/devel/2020-January/056891.html closes #3857. Message-Id: <CAF9ehCW5P12ZkZja4UPYTbdBFUyC1VKVL-tU7nyUtvK1Lz2Z3g@mail.gmail.com>
* posix_devctl - Add support for SOCKCLOSEJoel Sherrill2020-01-171-1/+15
| | | | | | | | | The FACE Technical Standard, Edition 3.0 and later require the definition of the subcommand SOCKCLOSE in <devctl.h>. Reference: ​https://www.opengroup.org/face closes #3856.
* cpukit/libfs: remove more dead code from pipe/fifo.cGedare Bloom2020-01-031-2/+0
| | | | | Dead code identified by Coverity (CID 1456674). The value of ret at line 358 is always 0.
* cpukit/libfs: remove dead code from pipe/fifo.cGedare Bloom2020-01-031-2/+0
| | | | | Dead code identified by Coverity (CID 1456678). The value of ret at line 293 is always 0.
* mpci: Fix blocking proxy statusSebastian Huber2020-01-023-24/+4
| | | | | Remove THREAD_STATUS_PROXY_BLOCKING and replace it with STATUS_PROXY_BLOCKING.
* rtems: Fix MPCI initializationSebastian Huber2020-01-0215-132/+77
| | | | Update #2408.
* score: Fix objects node initializationSebastian Huber2020-01-021-0/+1
| | | | | | | The objects node is statically initialized to one. Clear the node field before it is set. Update #3621.
* libtest: Add T_check_task_context() actionSebastian Huber2019-12-203-0/+72
|
* libtest: Use test configuration in T_now()Sebastian Huber2019-12-203-16/+26
| | | | | Use the user provided now handler of the test configuration to get the time in T_now().
* libtest: Fix use of T_check_true()Sebastian Huber2019-12-202-3/+3
|
* config: Improve EDF SMP scheduler configurationSebastian Huber2019-12-192-5/+8
| | | | | | | | Use CONFIGURE_MAXIMUM_PROCESSORS to configure the EDF SMP scheduler context. This avoids hard to debug configuration errors resulting in memory corruptions. Close #3815.
* libmisc/top: Fix the idle time and priorities on SMPChris Johns2019-12-191-11/+27
| | | | | | | - This patch is based on the patch attached to #3552 submitted by jameszxj. Closes #3552
* config: Fix CONFIGURE_MAXIMUM_POSIX_THREADSSebastian Huber2019-12-191-1/+1
| | | | | | Bug was introduced by previous commit. Update #3845.
* config: Remove Ada configuration optionsSebastian Huber2019-12-191-62/+18
| | | | Update #3845.
* config: CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORSSebastian Huber2019-12-192-4/+9
| | | | | | | Rename CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS into CONFIGURE_MAXIMUM_FILE_DESCRIPTORS. Update #3753.
* config: CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLESebastian Huber2019-12-191-30/+28
| | | | | | Remove CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE. Update #3844.
* libcsupport: Update rtems_print printk handler to return the lengthChris Johns2019-12-161-2/+1
|
* score: Remove _Workspace_Allocate_or_fatal_error()Sebastian Huber2019-12-133-39/+1
| | | | | | This function is unused. Update #3735.
* config: Statically allocate MP object controlsSebastian Huber2019-12-134-21/+16
| | | | Update #3735.
* config: Statically allocate MP thread proxiesSebastian Huber2019-12-134-11/+34
| | | | Update #3735.
* config: Add _MPCI_ConfigurationSebastian Huber2019-12-1312-109/+97
| | | | | | | Replace the user MPCI configuration table with a system provided _MPCI_Configuration. Update #3735.
* rtems: Add and use rtems_object_get_local_node()Sebastian Huber2019-12-137-16/+30
| | | | Update #3841.
* config: CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLESebastian Huber2019-12-131-41/+41
| | | | | | | Obsolete the CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE configuration option. Update #3735.
* config: Add CONFIGURE_IMFS_ENABLE_MKFIFOSebastian Huber2019-12-131-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.
* states*.h: Fix naming inconsistency and formattingJoel Sherrill2019-12-112-2/+1
|
* Add TOD Hooks to allow BSP to take action when TOD is setJoel Sherrill2019-12-1110-8/+387
| | | | | | | | | | | | Two use cases were envisioned for this. 1) a BSP or application which desires to update a real-time clock when the RTEMS TOD is set. 2) a paravirtualized BSP can use this to propagate setting the time in an RTEMS application to the hosting environment. This enables the entire set of applications in the virtualized environments to have a single consistent TOD.
* pipe: Use condition variablesSebastian Huber2019-12-113-71/+21
| | | | | | | Use self-contained condition variables instead of Classic API barriers. This simplifies the implementation and configuration. Update #3840.
* Support pasring - in a version stringChris Johns2019-12-121-1/+1
| | | | Closes #3839
* mpci: Simplify MPCI configurationSebastian Huber2019-12-111-9/+2
| | | | Use watchdog for shared memory driver instead of a Classic API Timer.
* rtems: Simplify semaphore configurationSebastian Huber2019-12-114-31/+36
| | | | | | | | | | | | | | | 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.
* rtems: Optimize semaphore control blockSebastian Huber2019-12-119-76/+163
| | | | | | | Move variant, discipline, and global information to flags stored in a node pointer of active semaphores. Update #3833.
* score: Optimize _TLS_Get_size()Sebastian Huber2019-12-111-4/+9
|
* clock: Simplify driver initializationSebastian Huber2019-12-112-18/+33
| | | | | | Use a system initialization handler instead of a legacy IO driver. Update #3834.
* clock: Remove Clock_exit() from APISebastian Huber2019-12-111-2/+0
| | | | | | | This function is no longer supported by the standard clock driver implementation (clockimpl.h). Update #3436.