summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Fix atomic compare exchangeSebastian Huber2015-09-251-16/+49
|
* score: Fix resource count for self-contained mutexSebastian Huber2015-09-141-3/+32
|
* rbtree: Replace implementationSebastian Huber2015-09-031-431/+422
| | | | | Use the BSD <sys/tree.h> implementation since it is faster, more flexible and uses less storage. See https://github.com/sebhub/rb-bench.
* score: Fix return status of mutex try acquireSebastian Huber2015-09-011-18/+18
| | | | This fixes a copy and paste error (from libbsd).
* rbtree: Delete rtems_rbtree_find_control()Sebastian Huber2015-09-011-7/+0
| | | | | This function is hard to support in alternative implementations. It has no internal use case.
* rbheap: Drop direction from _RBTree_Iterate()Sebastian Huber2015-08-311-4/+3
|
* sptests/sprbtree01: Avoid internal APISebastian Huber2015-08-311-939/+951
|
* sptests/sprbtree01: Fix random ops test caseSebastian Huber2015-08-311-3/+3
|
* score: Add self-contained condition implementationSebastian Huber2015-07-302-0/+113
|
* score: Add scheduler <sys/lock.h> supportSebastian Huber2015-07-302-0/+22
|
* score: Add self-contained futex implementationSebastian Huber2015-07-302-0/+79
|
* score: Add self-contained semaphore implementationSebastian Huber2015-07-302-0/+65
|
* score: Add self-contained mutex implementationSebastian Huber2015-07-306-0/+486
| | | | | | | This mutex implementation uses a thread priority queue with a simple priority inheritance mechanism (similar to the object based mutexes). The storage space must be supplied by the user (16 bytes on 32-bit targets).
* score: Introduce Thread_queue_HeadsSebastian Huber2015-07-233-4/+4
| | | | | | | | | | | | | Move the storage for the thread queue heads to the threads. Each thread provides a set of thread queue heads allocated from a dedicated memory pool. In case a thread blocks on a queue, then it lends its heads to the queue. In case the thread unblocks, then it takes a free set of threads from the queue. Since a thread can block on at most one queue this works. This mechanism is used in FreeBSD. The motivation for this change is to reduce the memory demands of the synchronization objects. On a 32-bit uni-processor configuration the Thread_queue_Control size is now 8 bytes, compared to 64 bytes in RTEMS 4.10 (other changes reduced the size as well).
* score: Introduce Thread_queue_QueueSebastian Huber2015-07-231-2/+2
| | | | | | Separate the thread queue heads and lock from the operations. This enables the support for light weight objects which only support one queuing discipline.
* score: TypoSebastian Huber2015-07-131-1/+1
|
* score: Accept NULL pointer in _Freechain_Put()Sebastian Huber2015-07-011-0/+2
| | | | With this a _Freechain_Put( _Freechain_Get() ) works always.
* score: Freechain handler API changesSebastian Huber2015-07-012-152/+19
| | | | | Replace the extend function with an allocator since this fits better to the current use case.
* score: Hide SMP lock profiling impl if disabledSebastian Huber2015-06-261-2/+2
| | | | The problem is that empty structures have a different size in C and C++.
* rtems: Add rtems_interrupt_local_disable|enable()Sebastian Huber2015-06-222-77/+87
| | | | | | | | Add rtems_interrupt_local_disable|enable() as suggested by Pavel Pisa to emphasize that interrupts are only disabled on the current processor. Do not define the rtems_interrupt_disable|enable|flash() macros and functions on SMP configurations since they don't ensure system wide mutual exclusion.
* sptests/sp37: Fix type and simplifySebastian Huber2015-06-191-15/+7
|
* Remove use ticks for statistics configure option.Joel Sherrill2015-06-151-42/+22
| | | | | | | | | | This was obsolete and broken based upon recent time keeping changes. Thie build option was previously enabled by adding USE_TICKS_FOR_STATISTICS=1 to the configure command line. This propagated into the code as preprocessor conditionals using the __RTEMS_USE_TICKS_FOR_STATISTICS__ conditional.
* score: Add _Watchdog_Preinitialize()Sebastian Huber2015-06-131-4/+4
| | | | | | Add an assert to ensure that the watchdog is the proper state for a _Watchdog_Initialize(). This helps to detect invalid initializations which may lead to a corrupt watchdog chain.
* sptests/sptasknopreempt01: New testSebastian Huber2015-06-126-0/+130
| | | | Update #2365.
* sptests/sptimecounter03: New testSebastian Huber2015-06-096-0/+144
|
* sptests/spcontext01: Add second volatile clobberSebastian Huber2015-06-091-1/+10
| | | | | Do a volatile clobber in the context switch extension to cover the path through _Thread_Do_dispatch() invoked after interrupt processing.
* sptests/spcontext01: Improve outputSebastian Huber2015-06-032-10/+20
|
* sptests/spcontext01: Test deferred FP contextAlexander Krutwig2015-05-262-20/+47
|
* timecounter: Use in RTEMSAlexander Krutwig2015-05-208-11/+348
| | | | | | | | Replace timestamp implementation with FreeBSD bintime and timecounters. New test sptests/sptimecounter02. Update #2271.
* timecounter: Port to RTEMSAlexander Krutwig2015-05-206-0/+185
| | | | | | New test sptests/timecounter01. Update #2271.
* score: Add static initializers for thread queuesSebastian Huber2015-05-191-0/+14
|
* score: Remove Giant lock in rtems_clock_tick()Sebastian Huber2015-05-191-4/+0
| | | | Update #2307.
* score: New thread queue implementationSebastian Huber2015-05-195-67/+54
| | | | | | | | | Use thread wait flags for synchronization. The enqueue operation is now part of the initial critical section. This is the key change and enables fine grained locking on SMP for objects using a thread queue like semaphores and message queues. Update #2273.
* score: Add Thread_queue_OperationsSebastian Huber2015-05-191-2/+2
| | | | | | | | Replace the Thread_Priority_control with more general Thread_queue_Operations which will be used for generic priority change, timeout, signal and wait queue operations in the future. Update #2273.
* score: Generalize _Event_Timeout()Sebastian Huber2015-05-191-3/+3
| | | | | | | Add a thread wait timeout code. Replace _Event_Timeout() with a general purpose _Thread_Timeout() watchdog handler. Update #2273.
* score: Reduce thread wait statesSebastian Huber2015-05-191-3/+3
| | | | | | | | | | Merge THREAD_WAIT_STATE_SATISFIED, THREAD_WAIT_STATE_TIMEOUT, THREAD_WAIT_STATE_INTERRUPT_SATISFIED, and THREAD_WAIT_STATE_INTERRUPT_TIMEOUT into one state THREAD_WAIT_STATE_READY_AGAIN. This helps to write generic routines to block a thread. Update #2273.
* score: New timer server implementationSebastian Huber2015-05-192-110/+59
| | | | | | | | Use mostly the standard watchdog operations. Use a system event for synchronization. This implementation is simpler and offers better SMP performance. Close #2131.
* score: Add Watchdog_IteratorSebastian Huber2015-05-192-3/+115
| | | | | | | | | | Rewrite the _Watchdog_Insert(), _Watchdog_Remove() and _Watchdog_Tickle() functions to use iterator items to synchronize concurrent operations. This makes it possible to get rid of the global variables _Watchdog_Sync_level and _Watchdog_Sync_count which are a blocking point for scalable SMP solutions. Update #2307.
* score: Add header to _Watchdog_Remove()Sebastian Huber2015-05-192-2/+2
| | | | | | | | Add watchdog header parameter to _Watchdog_Remove() to be in line with the other operations. Add _Watchdog_Remove_ticks() and _Watchdog_Remove_seconds() for convenience. Update #2307.
* score: _Thread_queue_Extract()Sebastian Huber2015-05-191-25/+4
| | | | | Remove thread queue parameter from _Thread_queue_Extract() since the current thread queue is stored in the thread control block.
* sptests/spcontext01: Check FPU task combinationsAlexander Krutwig2015-05-072-12/+43
|
* sptests/spstkalloc02: Fix namespace issueSebastian Huber2015-04-271-3/+3
| | | | Avoid collision with <sys/param.h> defined PAGE_SIZE.
* sp13/system.h: Account for all message buffersJoel Sherrill2015-04-231-2/+2
| | | | | | | There may be a way to reduce the memory requirements but it will require time to ensure the math is right and it passes on all targets. At the current time, it fails on 22 BSPs which run on simulators.
* score: Delete Thread_queue_Control::stateSebastian Huber2015-04-231-1/+1
| | | | | Use a parameter for _Thread_queue_Enqueue() instead to reduce memory usage.
* score: Add _Thread_Get_interrupt_disable()Sebastian Huber2015-04-211-6/+6
| | | | | | | | | | Remove _Thread_Acquire() and _Thread_Acquire_for_executing(). Add utility functions for the default thread lock. Use the default thread lock for the RTEMS events. There is no need to disable thread dispatching and a Giant acquire in _Event_Timeout() since this was already done by the caller. Update #2273.
* score: Add _ISR_lock_ISR_disable/enable()Sebastian Huber2015-04-201-0/+6
|
* sp13: Document message buffer usage and adjust configurationJoel Sherrill2015-04-171-5/+26
|
* sptests/sp52: Reduce clock tick intervalSebastian Huber2015-04-171-0/+2
| | | | This helps on slow simulators.
* score: Fix _TOD_Set_with_timestamp()Sebastian Huber2015-04-171-15/+20
| | | | | Update the current time before the watchdog adjust so that timer routines observe the new time.
* sptests/sp68: Avoid use of internal variablesSebastian Huber2015-04-161-10/+12
|