summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems (follow)
Commit message (Collapse)AuthorAgeFilesLines
* rtems: Change timer server task mode settingSebastian Huber2020-02-251-5/+7
| | | | | | Use the non-preempt mode only in uni-processor configurations. Update #3876.
* score: _Scheduler_Is_non_preempt_mode_supported()Sebastian Huber2020-02-251-3/+6
| | | | | | | | If the non-preempt mode for threads is supported depends on the scheduler implementation. Add _Scheduler_Is_non_preempt_mode_supported() to indicate this. Update #3876.
* score: Add _SMP_Need_inter_processor_interrupts()Sebastian Huber2020-02-251-1/+2
| | | | | | | Test for the proper system condition instead of using the rtems_configuration_is_smp_enabled() workaround. Update #3876.
* config: Bring back RTEMS 4.11 configuration tableSebastian Huber2020-02-251-0/+18
| | | | | This improves API backward compatibility of RTEMS 5.1 to previous versions.
* rtems: Simplify _RTEMS_tasks_Initialize_user_task()Sebastian Huber2020-02-251-3/+2
| | | | | Due to the system initialization order, the _Thread_Global_constructor must be 0 in this function.
* config: Simplify initialization task configSebastian Huber2020-02-253-68/+114
| | | | | | | | | | With the removal of the CONFIGURE_HAS_OWN_INIT_TASK_TABLE configuration option at most one Classic API user initialization task can be configured. Provide an RTEMS API configuration table for backward compatibility. Update #3873.
* score: Move thread stack allocationSebastian Huber2020-02-121-2/+14
| | | | | | Move thread stack allocation to caller side of _Thread_Initialize(). Update #3835.
* score: Add Thread_ConfigurationSebastian Huber2020-02-121-26/+19
| | | | | | | | | Add the Thread_Configuration structure to reduce the parameter count of _Thread_Initialize(). This makes it easier to add more parameters in the future. It simplifies the code generation since most architectures do not have that many registers available for function parameters. Update #3835.
* rtems: Fix MPCI initializationSebastian Huber2020-01-0210-88/+71
| | | | Update #2408.
* Add TOD Hooks to allow BSP to take action when TOD is setJoel Sherrill2019-12-111-2/+7
| | | | | | | | | | | | 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.
* rtems: Optimize semaphore control blockSebastian Huber2019-12-116-49/+79
| | | | | | | Move variant, discipline, and global information to flags stored in a node pointer of active semaphores. Update #3833.
* termios: Add Capability to Generate SIGINTR and SIGQUITJoel Sherrill2019-10-082-0/+2
| | | | | | | | | | | | | | This patch adds the ability for termios to send SIGINTR on receipt of VINTR and SIGQUIT for VKILL and return -1/EINTR from read() on a termios channel. Importantly, this patch does not alter the default behavior or force POSIX signal code in just because termios is used. The application must explicitly enable the POSIX behavior of generating a signal upon receipt of these characters. This is discussed in the POSIX standard: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap11.html Closes #3800.
* posix: Remove unused OBJECTS_POSIX_INTERRUPTSSebastian Huber2019-05-201-3/+0
|
* score: Rename _SMP_Get_processor_count()Sebastian Huber2019-04-112-2/+2
| | | | | | | Rename _SMP_Get_processor_count() in _SMP_Get_processor_maximum() to be in line with the API level rtems_scheduler_get_processor_maximum(). Update #3732.
* rtems: Add rtems_scheduler_get_processor_maximum()Sebastian Huber2019-04-091-2/+2
| | | | | | | | | | | Add rtems_scheduler_get_processor_maximum() as a replacement for rtems_get_processor_count(). The rtems_get_processor_count() is a bit orphaned. Adopt it by the Scheduler Manager. The count is also misleading, since the processor set may have gaps and the actual count of online processors may be less than the value returned by rtems_get_processor_count(). Update #3732.
* rtems: Add rtems_scheduler_get_processor()Sebastian Huber2019-04-091-2/+2
| | | | | | | | | | | Add rtems_scheduler_get_processor() as a replacement for rtems_get_current_processor(). The rtems_get_current_processor() is a bit orphaned. Adopt it by the Scheduler Manager. This is in line with the glibc sched_getcpu() function. Deprecate rtems_get_current_processor(). Update #3731.
* Remove superfluous <rtems/system.h> includesSebastian Huber2019-03-1415-15/+0
|
* Remove explicit file names from @fileSebastian Huber2019-02-282-2/+2
| | | | | | This makes the @file documentation independent of the actual file name. Update #3707.
* score: Avoid some deadlocks in _Once()Sebastian Huber2019-02-181-2/+3
| | | | | | | | Recursive usage of the same pthread_once_t results now in a deadlock. Previously, an error of EINVAL was returned. This usage scenario is invalid according to the POSIX pthread_once() specification. Close #3334.
* Adjust interrupt mode tests for some CPU portsSebastian Huber2019-01-091-1/+3
| | | | | | | In case the robust thread dispatch is enabled by the CPU port, then the interrupt level must not be changed through the task mode. Update #3000.
* rtems: Allow to set ISR level 0 in SMP configSebastian Huber2019-01-091-0/+1
| | | | Update #3000.
* Separate task mode checksSebastian Huber2019-01-091-15/+15
| | | | Update #3000.
* score: Static Objects_Information initializationSebastian Huber2018-12-1418-490/+466
| | | | | | | | | | | 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.
* score: Remove Objects_Information::auto_extendSebastian Huber2018-12-141-1/+1
| | | | | | | Use Objects_Information::objects_per_block to provide this information. Add and use _Objects_Is_auto_extend(). Update #3621.
* score: Remove Objects_Information::maximumSebastian Huber2018-12-071-1/+1
| | | | | | | This information is already present in Objects_Information::maximum_id. Add and use _Objects_Get_maximum_index(). Update #3621.
* score: Optimize object lookupSebastian Huber2018-12-073-8/+16
| | | | | | | | | | | | | | | | Use the maximum ID for the ID to object translation. Using the maximum ID gets rid of an additional load from the object information in _Objects_Get(). In addition, object lookups fail for every ID in case the object information is cleared to zero. This makes it a bit more robust during system startup (see new tests in spconfig02). The local table no longer needs a NULL pointer entry at array index zero. Adjust all the object iteration loops accordingly. Remove Objects_Information::minimum_id since it contains only redundant information. Add _Objects_Get_minimum_id() to get the minimum ID. Update #3621.
* score: Remove Objects_Information::is_stringSebastian Huber2018-12-078-16/+8
| | | | | | Use Objects_Information::name_length to store this information. Update #3621.
* rtems: Add rtems_scheduler_get_maximum_priority()Sebastian Huber2018-12-071-0/+53
| | | | Update #3636.
* score: Avoid sbintime_t in API headersSebastian Huber2018-12-072-0/+2
| | | | | | | | | | The sbintime_t is a non-POSIX type and not visible if strict standard options are selected. Move implementation details from <rtems/score/timestamp.h> to <rtems/score/timestampimpl.h>. Update #3598.
* rtems: Fix rtems_task_restart() argument typeSebastian Huber2018-12-061-2/+2
| | | | Close #3637.
* rtems: Fix semaphore MPCI supportSebastian Huber2018-11-261-0/+4
|
* rtems: Simplify rtems_interrupt_catch()Sebastian Huber2018-11-121-33/+5
| | | | | | Remove casts and superfluous inline functions. Update #3585.
* rtems: Avoid include of <rtems/score/scheduler.h>Sebastian Huber2018-11-121-0/+31
| | | | Update #3598.
* rtems: Avoid <rtems/score/timecounter.h> in APISebastian Huber2018-11-121-0/+31
| | | | | | Use a real function for rtems_clock_get_uptime_seconds(). Update #3598.
* rtems: Move internal structures to tasksdata.hSebastian Huber2018-11-127-7/+7
| | | | Update #3598.
* rtems: Move internal structures to semdata.hSebastian Huber2018-11-121-0/+1
| | | | Update #3598.
* rtems: Remove Modes_ControlSebastian Huber2018-11-122-2/+2
| | | | | | | Use rtems_mode directly. This is in line with rtems_attribute and rtems_option. Update #3598.
* posix: Provide threads by defaultSebastian Huber2018-10-291-1/+1
| | | | Update #2514.
* posix: Provide message queues by defaultSebastian Huber2018-10-291-1/+1
| | | | Update #2514.
* posix: Provide shared memory objects by defaultSebastian Huber2018-10-291-1/+1
| | | | Update #2514.
* posix: Provide named semaphores by defaultSebastian Huber2018-10-291-4/+4
| | | | Update #2514.
* score: Remove bogus thread object name supportSebastian Huber2018-10-291-3/+1
| | | | Update #2514.
* build: Merge rtems/Makefile.amSebastian Huber2018-10-101-202/+0
|
* build: Remove specialized CPPFLAGSSebastian Huber2018-10-091-1/+0
|
* score: Fix legacy RTEMS_STATIC_ASSERT()Sebastian Huber2018-10-053-6/+18
| | | | | | | | | In standard C pointer operands are not allowed in integer constant expressions. Avoid a static assertion based on an array typedef since this could lead to warnings ("variably modified 'x' at file scope" and "typedef 'x' locally defined but not used"); This implementation requires unique messages.
* rtems: Add rtems_task_exit()Sebastian Huber2018-10-012-0/+39
| | | | Update #3533.
* score: Add thread pin/unpin supportSebastian Huber2018-09-101-1/+1
| | | | | | | | | Add support to temporarily pin a thread to its current processor. This may be used to access per-processor data structures in critical sections with enabled thread dispatching, e.g. a pinned thread is allowed to block. Update #3508.
* score: Fix _Addresses_Subtract()Sebastian Huber2018-08-102-8/+8
| | | | | | Use architecture-specific integer type for an address difference. Update #3486.
* rtems: Parameter types in rtems_partition_create()Sebastian Huber2018-08-101-2/+2
| | | | | | | | | | Use uintptr_t to specify the length of the partition buffer area instead of uint32_t. This is in line with rtems_region_create(). On 64-bit targets, the length may exceed 4GiB. Use size_t for the buffer size, since on some targets the single object size is less than the overall address range, e.g. m32c sizeof(uintptr_t) > sizeof(size_t). Update #3486.
* rtems: Relax partition buffer area alignmentSebastian Huber2018-08-021-2/+2
| | | | | | | | | | | | | | | The partition buffer area alignment required by rtems_partition_create() was too strict since it was checked via _Addresses_Is_aligned() which uses CPU_ALIGNMENT. The CPU_ALIGNMENT must take long double and vector data type alignment requirements into account. For the partition maintenance only pointer alignment is required (Chain_Node, which consists of two pointers). The user should ensure that its partition buffer area is suitable for the items it wants to manage. The user should not be burdened to provide buffers with the maximum architecture alignment, e.g. why need a 16 byte aligned buffer if you want to manage items with 4 byte integers only? Update #3482.