summaryrefslogtreecommitdiffstats
path: root/cpukit/include (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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-042-0/+14
| | | | Update #3861.
* sysinit: Add RTEMS_SYSINIT_ORDER_LAST_BUT_[1-9]Sebastian Huber2020-02-041-12/+21
| | | | Update #3838.
* bsps: Rework work area initializationSebastian Huber2020-02-044-24/+13
| | | | | | | | | | | | | | | | | | | | 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-041-0/+1
| | | | | | | 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-041-1/+10
| | | | Update #3838.
* score: Add Memory HandlerSebastian Huber2020-02-041-0/+331
| | | | Update #3838.
* 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>
* mpci: Fix blocking proxy statusSebastian Huber2020-01-022-23/+3
| | | | | Remove THREAD_STATUS_PROXY_BLOCKING and replace it with STATUS_PROXY_BLOCKING.
* rtems: Fix MPCI initializationSebastian Huber2020-01-025-44/+6
| | | | Update #2408.
* libtest: Add T_check_task_context() actionSebastian Huber2019-12-201-0/+2
|
* libtest: Use test configuration in T_now()Sebastian Huber2019-12-201-11/+5
| | | | | Use the user provided now handler of the test configuration to get the time in T_now().
* 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.
* 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-191-3/+8
| | | | | | | 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.
* score: Remove _Workspace_Allocate_or_fatal_error()Sebastian Huber2019-12-132-16/+1
| | | | | | This function is unused. Update #3735.
* config: Statically allocate MP object controlsSebastian Huber2019-12-132-16/+11
| | | | Update #3735.
* config: Statically allocate MP thread proxiesSebastian Huber2019-12-132-6/+30
| | | | Update #3735.
* config: Add _MPCI_ConfigurationSebastian Huber2019-12-134-67/+51
| | | | | | | 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-133-9/+19
| | | | 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-112-1/+116
| | | | | | | | | | | | 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-112-22/+4
| | | | | | | Use self-contained condition variables instead of Classic API barriers. This simplifies the implementation and configuration. Update #3840.
* 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-112-22/+75
| | | | | | | 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.
* score: Optimize _Per_CPU_Get_index()Sebastian Huber2019-12-101-0/+5
| | | | Optimize _Per_CPU_Get_index() in uniprocessor configurations.
* userext: Fix configurationSebastian Huber2019-12-091-1/+0
|
* userext: Simplify configurationSebastian Huber2019-12-093-24/+32
| | | | | Avoid the use of the workspace and use statically allocated switch controls for the initial extensions.
* untar: Unify untar supportSebastian Huber2019-11-251-34/+21
| | | | Update #3823.
* linkersets: Revert to zero-length arraysSebastian Huber2019-11-251-18/+8
| | | | | | | | | This partially reverts commit 7ec08391fee73d7a25855089f4996f3c4f448007. Since the RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION() cannot control the alignment of the symbol it cannot be used to define the begin of a linker set. File scope basic __asm__ statements cannot have operands, so there is no way to specify the desired alignment.
* Document RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION()Sebastian Huber2019-11-251-1/+2
|
* imfs: Fix IMFS_make_linearfile()Sebastian Huber2019-11-211-1/+1
| | | | | | | | Fix prototype. Fix node size. Linfiles are dynamically turned into memfiles. Update #3823.
* imfs: Add IMFS_make_linfile()Sebastian Huber2019-11-191-0/+31
| | | | Update #3818.
* Synchronize kernel <sys/time.h> with FreeBSDrrs2019-11-181-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Integrate parts of this commit: This commit brings in a new refactored TCP stack called Rack. Rack includes the following features: - A different SACK processing scheme (the old sack structures are not used). - RACK (Recent acknowledgment) where counting dup-acks is no longer done instead time is used to knwo when to retransmit. (see the I-D) - TLP (Tail Loss Probe) where we will probe for tail-losses to attempt to try not to take a retransmit time-out. (see the I-D) - Burst mitigation using TCPHTPS - PRR (partial rate reduction) see the RFC. Once built into your kernel, you can select this stack by either socket option with the name of the stack is "rack" or by setting the global sysctl so the default is rack. Note that any connection that does not support SACK will be kicked back to the "default" base FreeBSD stack (currently known as "default"). To build this into your kernel you will need to enable in your kernel: makeoptions WITH_EXTRA_TCP_STACKS=1 options TCPHPTS Sponsored by: Netflix Inc. Differential Revision: https://reviews.freebsd.org/D15525
* rtems-5: Improve heap fatal error informationsebastian.huber2019-11-053-4/+74
| | | | Update #3806.
* linkersets: Avoid use of zero-length arraySebastian Huber2019-10-281-12/+22
| | | | Use RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION() instead.
* config: Avoid zero-length arraySebastian Huber2019-10-281-2/+4
| | | | | | Use RTEMS_DEFINE_GLOBAL_SYMBOL_IN_SECTION() instead. Close #3799.