summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Remove CPU_set_ControlSebastian Huber2017-10-113-3/+0
| | | | | | Use Processor_mask instead. Update #2514.
* score: Add _Thread_queue_Dispatch_disable()Sebastian Huber2017-10-104-13/+4
|
* score: Use struct timespec for TODSebastian Huber2017-10-091-8/+5
| | | | | | | Use the timestamps only for uptime based values. Use struct timespec for the absolute time values (TOD). Update #2740.
* rtems: Fix format warningsSebastian Huber2017-10-061-2/+2
| | | | Update #3111.
* posix: Implement self-contained POSIX mutexSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX mutexes are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3112.
* posix: Implement self-contained POSIX condvarSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX condition variables are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3113.
* posix: Implement self-contained POSIX rwlocksSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX rwlocks are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3115.
* posix: Implement self-contained POSIX barriersSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX barriers are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3114.
* Add interrupt server suspend/resumeSebastian Huber2017-07-121-0/+6
| | | | | | | This mechanism can be used to safely move the interrupt server from one scheduler instance to another for example. Update #3071.
* rtems: Add rtems_scheduler_ident_by_processor_setSebastian Huber2017-07-113-0/+86
| | | | Update #3070.
* rtems: Add rtems_scheduler_ident_by_processor()Sebastian Huber2017-07-113-0/+67
| | | | Update #3069.
* rtems: Fix warningSebastian Huber2017-07-111-2/+0
| | | | Update #3059.
* rtems: Fix rtems_scheduler_remove_processor()Sebastian Huber2017-07-071-4/+8
| | | | | | | | Account for the thread processor affinity and make sure that it is possible to allocate a processor to each thread dedicated to a scheduler instance. Update #3059.
* score: Add processor set to scheduler contextSebastian Huber2017-07-073-9/+11
| | | | | | | Replace the simple processor count with the processor set owned by the scheduler instance. Update #3059.
* ratemonreportstatistics.c: Fix printf() warnings so clean on 32 and 64 bit ↵Joel Sherrill2017-04-241-7/+8
| | | | architectures
* rtems: Fix error return pathSebastian Huber2017-03-281-0/+1
|
* rtems: Fix RTEMS_NO_TIMEOUT defineSebastian Huber2017-02-021-1/+1
| | | | | Cast the internal WATCHDOG_NO_TIMEOUT to the right type for a Classic API interval to avoid implict type conversion warnings.
* rtems: Fix RTEMS_MAXIMUM_PRIORITY defineSebastian Huber2017-02-011-1/+1
| | | | | Cast the internal PRIORITY_MAXIMUM to the right type for a Classic API task priority to avoid integer conversion warnings.
* score: Add _Thread_queue_Object_nameSebastian Huber2017-01-311-1/+1
| | | | | | | | | | | | | Add the special thread queue name _Thread_queue_Object_name to mark thread queues embedded in an object with identifier. Using the special thread state STATES_THREAD_QUEUE_WITH_IDENTIFIER is not reliable for this purpose since the thread wait information and thread state are protected by different SMP locks in separate critical sections. Remove STATES_THREAD_QUEUE_WITH_IDENTIFIER. Add and use _Thread_queue_Object_initialize(). Update #2858.
* rtems: Fix _Rate_monotonic_Renew_deadline()Kuan-Hsun Chen2017-01-301-4/+7
| | | | | | | | | | | | Prepare a precondition to prevent the potential integer overflow. Remove one redundant parameter in _Rate_monotonic_Renew_deadline(). sptests/sprmsched02: Create A test case for checking the overflow condition of postponed_jobs in rtems_rate_monotonic_period_status. Update #2885.
* Remove rtems_rate_monotonic_postponed_job_count()Kuan-Hsun Chen2017-01-263-34/+6
| | | | | | | | | | | Add a variable named "count" in rtems_rate_monotonic_period_status structure. Revise rtems_rate_monotonic_get_status() for the postponed job count. sptests/sp69: Add in the verification of the postponed job count for rtems_rate_monotonic_get_status(). Update #2795.
* rtems: rtems_rate_monotonic_postponed_job_count()Sebastian Huber2017-01-241-12/+7
| | | | | | Use proper locking in SMP configurations. Update #2795.
* rtems: Fix _Rate_monotonic_Release_postponed_job()Sebastian Huber2017-01-241-5/+3
| | | | | | Use proper locking in SMP configurations. Update #2795.
* rtems: Fix _Rate_monotonic_Renew_deadline()Sebastian Huber2017-01-243-44/+21
| | | | | | | Make _Rate_monotonic_Renew_deadline() static and use proper locking in SMP configurations. Update #2795.
* classic: adjust names of RM postponed job functionsGedare Bloom2017-01-132-9/+14
| | | | closes #2795
* Enhancement of the RMS manager for the overrun handling.Kuan-Hsun Chen2017-01-134-9/+176
| | | | | | | | | | | | | | | Three additional functions: rtems_rate_monotonic_postponed_job_count, _Rate_monotonic_Renew_deadline, and _Rate_monotonic_Release_postponed_job. Four refined functions: _Rate_monotonic_Activate, _Rate_monotonic_Block_while_expired, rtems_rate_monotonic_period, _Rate_monotonic_Timeout. Rate_monotonic_Control contains one counter for counting the postponed jobs and one for recording the recent deadline. Update #2795.
* posix: shared memory supportGedare Bloom2017-01-131-0/+1
| | | | | | | | | Add POSIX shared memory manager (Shm). Includes a hook-based approach for the backing memory storage that defaults to the Workspace, and a test is provided using the heap. A test is also provided for the basic use of mmap'ing a shared memory object. This test currently fails at the mmap stage due to no support for mmap.
* rtems: Use header file for rtems_object_get_name()Sebastian Huber2017-01-121-10/+1
|
* score: Replace STATES_DELAYINGSebastian Huber2017-01-121-1/+1
| | | | | | | | Replace STATES_DELAYING with STATES_WAITING_FOR_TIME. There is no need for separate timeout thread states. The Thread_Control::Timer::header and Watchdog_Control::cpu members can be used to figure out the kind of timeout.
* Remove obsolete __RTEMS_HAVE_SYS_CPUSET_H__Joel Sherrill2017-01-114-14/+0
|
* score: Introduce _Internal_error()Sebastian Huber2016-12-121-8/+2
|
* Add INTERNAL_ERROR_RTEMS_INIT_TASK_CREATE_FAILEDSebastian Huber2016-12-121-2/+6
| | | | Update #2825.
* score: Remove fatal is internal indicatorSebastian Huber2016-12-091-2/+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.
* rtems: Use _Thread_Dispatch_direct()Sebastian Huber2016-12-022-2/+2
| | | | Update #2797.
* rtems: Fix rtems_scheduler_add_processor()Sebastian Huber2016-12-021-4/+1
| | | | | | Fix thread dispatch profiling of rtems_scheduler_add_processor(). Update #2797.
* score: Initialize thread queue context earlySebastian Huber2016-12-023-1/+3
| | | | | | | | Initialize thread queue context early preferably outside the critical section. Remove implicit _Thread_queue_Context_initialize() from _Thread_Wait_acquire().
* score: Optimize _Thread_queue_Enqueue()Sebastian Huber2016-11-241-1/+4
| | | | | | | | | Move thread state for _Thread_queue_Enqueue() to the thread queue context. This reduces the parameter count of _Thread_queue_Enqueue() from five to four (ARM for example has only four function parameter registers). Since the thread state is used after several function calls inside _Thread_queue_Enqueue() this parameter was saved on the stack previously.
* posix: Add self-contained pthread spinlockSebastian Huber2016-11-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Turn pthread_spinlock_t into a self-contained object. On uni-processor configurations, interrupts are disabled in the lock/trylock operations and the previous interrupt status is restored in the corresponding unlock operations. On SMP configurations, a ticket lock is a acquired and released in addition. The self-contained pthread_spinlock_t object is defined by Newlib in <sys/_pthreadtypes.h>. typedef struct { struct _Ticket_lock_Control _lock; __uint32_t _interrupt_state; } pthread_spinlock_t; This implementation is simple and efficient. However, this test case of the Linux Test Project would fail due to call of printf() and sleep() during spin lock ownership: https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c There is only limited support for profiling on SMP configurations. Delete CORE spinlock implementation. Update #2674.
* score: Rename _Thread_queue_Enqueue_critical()Sebastian Huber2016-11-231-1/+1
| | | | | Delete unused _Thread_queue_Enqueue() and rename _Thread_queue_Enqueue_critical() to _Thread_queue_Enqueue().
* score: Add thread queue enqueue calloutSebastian Huber2016-11-233-31/+44
| | | | | | | 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.
* rtems: Conditionally define rtems_interrupt_frameSebastian Huber2016-11-181-1/+6
| | | | Update #2808.
* score: Add and use _Thread_Dispatch_direct()Sebastian Huber2016-11-181-1/+1
| | | | | | | | | | 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.
* rtems: Add scheduler processor add/removeSebastian Huber2016-11-104-4/+318
| | | | Update #2797.
* score: Simplify _Scheduler_Get_by_id()Sebastian Huber2016-11-096-12/+10
| | | | | | | | | | Avoid dead code in non-SMP configurations. Return scheduler identifier independent of the current processor count of the scheduler via rtems_scheduler_ident(), since this value may change during run-time. Check the processor count in _Scheduler_Set() under scheduler lock protection. Update #2797.
* rtems: Fix rtems_task_create() scheduler selectionSebastian Huber2016-11-091-1/+1
| | | | | | | Use the home scheduler of the executing thread for the created thread. This is in line with pthread_create(). Using the current processor may pick up an unexpected scheduler in case of a temporary migration, e.g. due to locking protocols.
* score: Introduce thread resource count methodsSebastian Huber2016-11-031-1/+1
| | | | | This makes it easier to conditionally enable/disable the thread resource count usage.
* rtems: Fix binary semaphore resource countSebastian Huber2016-11-031-4/+1
| | | | | | Binary semaphores (not simple binary semaphores) maintain the resource count since 8797c76addf22a2f0ffc3717ff977695e35b9b0b. Do this also for initially locked binary semaphores.
* score: Introduce Thread_Scheduler_control::homeSebastian Huber2016-11-023-4/+4
| | | | | | | | Replace Thread_Scheduler_control::control and Thread_Scheduler_control::own_control with new Thread_Scheduler_control::home. Update #2556.
* rtems: Add rtems_task_iterate()Sebastian Huber2016-11-023-0/+64
| | | | Update #2423.
* score: Unify CORE mutex seize/surrenderSebastian Huber2016-09-272-3/+4
| | | | | | Use the Thread_Control::resource_count for the no protocol mutexes. Merge the no protocol and priority inherit CORE mutex seize/surrender operations.