summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* sptests/sp20: Use printer taskSebastian Huber2016-06-224-46/+88
| | | | This avoids test failures due to slow output devices.
* Make rtems/print.h independent of rtems/bspIo.hSebastian Huber2016-06-221-1/+0
|
* Rename and move RTEMS_PRINTF_ATTRIBUTE()Sebastian Huber2016-06-221-3/+5
| | | | | Rename RTEMS_PRINTF_ATTRIBUTE() into RTEMS_PRINTFLIKE() (similar to <sys/cdefs.h> __printflike()) and move it to <rtems/score/basedefs.h>.
* sptests/spcpucounter01: Resurrect workaroundSebastian Huber2016-06-211-2/+21
| | | | | Resurrect workaround accidentially removed by 3e2a3c49480b9888362d016dd202edd562d9e069.
* sptests/spcpucounter01: Add some statisticsSebastian Huber2016-06-203-50/+229
|
* score: Refine system initialization orderSebastian Huber2016-06-201-0/+36
|
* sptests/spsysinit01: Move begin of test messageSebastian Huber2016-06-201-2/+7
|
* rtems: Fix no protocol mutex releaseSebastian Huber2016-06-062-42/+71
| | | | | | | | | | | | | | | | The Classic binary semaphores without a locking protocol (RTEMS_BINARY_SEMAPHORE) could be released by everyone, e.g. in contrast to the POSIX mutexes (all variants) or the Classic binary semphores with priority inheritance or ceiling, there was no owner check in the release path. This behaviour was a bit unexpected and not documented. Add an owner check to the release path. Update sptests/sp42 accordingly. This change has nothing to do with the simple binary semaphores (RTEMS_SIMPLE_BINARY_SEMAPHORE) which have no owner at all. Update #2725
* rtems: Fix semaphore field nameSebastian Huber2016-05-301-1/+1
|
* score: Simplify CORE mutexSebastian Huber2016-05-301-3/+4
| | | | | Remove superfluous support for simple binary semaphores. With this we can get rid of the CORE_MUTEX_NESTING_BLOCKS variant.
* score: _CORE_mutex_Check_dispatch_for_seize()Sebastian Huber2016-05-301-3/+3
| | | | | | | | | | | Move the safety check performed by _CORE_mutex_Check_dispatch_for_seize() out of the performance critical path and generalize it. Blocking on a thread queue with an unexpected thread dispatch disabled level is illegal in all system states. Add the expected thread dispatch disable level (which may be 1 or 2 depending on the operation) to Thread_queue_Context and use it in _Thread_queue_Enqueue_critical().
* score: Add _Thread_queue_Context_set_MP_callout()Sebastian Huber2016-05-301-1/+1
| | | | | | Add _Thread_queue_Context_set_MP_callout() to simplify _Thread_queue_Context_initialize(). This makes it possible to more easily add additional fields to Thread_queue_Context.
* score: Add Status_Control for all APIsSebastian Huber2016-05-262-20/+16
| | | | | | | | | | | Unify the status codes of the Classic and POSIX API to use the new enum Status_Control. This eliminates the Thread_Control::Wait::timeout_code field and the timeout parameter of _Thread_queue_Enqueue_critical() and _MPCI_Send_request_packet(). It gets rid of the status code translation tables and instead uses simple bit operations to get the status for a particular API. This enables translation of status code constants at compile time. Add _Thread_Wait_get_status() to avoid direct access of thread internal data structures.
* Fix semaphore post overflow statusSebastian Huber2016-05-262-2/+34
| | | | Close #2720.
* score: Move thread queue MP callout to contextSebastian Huber2016-05-251-3/+3
| | | | | | | | Drop the multiprocessing (MP) dependent callout parameter from the thread queue extract, dequeue, flush and unblock methods. Merge this parameter with the lock context into new structure Thread_queue_Context. This helps to gets rid of the conditionally compiled method call helpers.
* testsuite: Fix printk format warnings.Chris Johns2016-05-252-7/+7
|
* cpukit, testsuite: Add rtems_printf and rtems_printer support.Chris Johns2016-05-2514-36/+57
| | | | | | | | | | | | | | | | | | | This change adds rtems_printf and related functions and wraps the RTEMS print plugin support into a user API. All references to the plugin are removed and replaced with the rtems_printer interface. Printk and related functions are made to return a valid number of characters formatted and output. The function attribute to check printf functions has been added to rtems_printf and printk. No changes to remove warrnings are part of this patch set. The testsuite has been moved over to the rtems_printer. The testsuite has a mix of rtems_printer access and direct print control via the tmacros.h header file. The support for begink/endk has been removed as it served no purpose and only confused the code base. The testsuite has not been refactored to use rtems_printf. This is future work.
* Replace *_Get_interrupt_disable() with *_Get()Sebastian Huber2016-05-202-2/+2
| | | | | Uniformly use *_Get() to get an object by identifier with a lock context.
* rtems: _Semaphore_Get_interrupt_disable()Sebastian Huber2016-05-201-2/+1
| | | | | | Use _Objects_Get_local() for _Semaphore_Get_interrupt_disable() to get rid of the location parameter. Move remote object handling to semaphore MPCI support.
* testsuites: Avoid Giant lockSebastian Huber2016-05-207-22/+22
| | | | | | | | | Replace _Thread_Disable_dispatch() with _Thread_Dispatch_disable(). Replace _Thread_Enable_dispatch() with _Thread_Dispatch_enable(). This is a preparation to remove the Giant lock. Update #2555.
* testsuites: Replace _Thread_Get()Sebastian Huber2016-05-201-5/+4
| | | | | | | Replace _Thread_Get() with _Thread_Get_interrupt_disable() to avoid the Giant lock. Update #2555.
* sptests/spintrcritical22: Avoid _Objects_Get()Sebastian Huber2016-05-201-5/+4
| | | | | | Use _Semaphore_Get_interrupt_disable() instead. Update #2555.
* score: Add Thread_Change_life()Sebastian Huber2016-05-201-5/+10
| | | | | | | | | Add _Thread_Change_life_locked() as a general function to alter the thread life state. Use it to implement _Thread_Set_life_protection() as a first step. Update #2555. Update #2626.
* sptests/spthreadlife01: Add self delete test caseSebastian Huber2016-05-171-6/+35
|
* score: Fix CORE mutex initializationSebastian Huber2016-05-126-0/+306
| | | | | | | | | The priority inheritance and ceiling CORE mutexes wrongly used the FIFO queueing discipline. Delete misleading _CORE_mutex_Is_priority(). Bug introduced by 1e1a91ed11458ddbb27b94d0001d8f0fc2ef7a97. Add test sptests/spmutex01, since no existing uni-processor test covered the thread priority queueing discipline for CORE mutexes.
* score: Make _Objects_Information_table constSebastian Huber2016-05-041-35/+0
| | | | | The _Objects_Information_table is statically initialized. So, we can make it read-only.
* rtems: Remove task variablesSebastian Huber2016-05-045-479/+0
| | | | | Update #2494. Update #2555.
* score: Delete __RTEMS_STRICT_ORDER_MUTEX__Sebastian Huber2016-05-021-7/+0
| | | | | | Remove support for strict order mutexes. Close #2124.
* posix: Simplify message queuesSebastian Huber2016-05-021-15/+1
| | | | | | | | | | | | The mq_open() function returns a descriptor to a POSIX message queue object identified by a name. This is similar to sem_open(). In contrast to the POSIX semaphore the POSIX message queues use a separate object for the descriptor. This extra object is superfluous, since the object identifier can be used directly for this purpose, just like for the semaphores. Update #2702. Update #2555.
* score: Add _Thread_queue_Is_empty()Sebastian Huber2016-04-221-1/+1
|
* score: Simplify _Objects_Get_next()Sebastian Huber2016-04-211-11/+3
| | | | Remove unused location parameter.
* sptests/spsysinit01: Fix warningSebastian Huber2016-04-211-2/+2
|
* score: Use chain iterator for user extensionsSebastian Huber2016-04-186-0/+482
| | | | | | | | | | | Add a lock and use a chain iterator for safe iteration during concurrent user extension addition and removal. Ensure that dynamically added thread delete and fatal extensions are called in reverse order. Update #2555. Update #2692.
* score: Add Chain_IteratorSebastian Huber2016-04-183-2/+128
| | | | | Add a chain iterator for safe iteration of chains with concurrent node extraction.
* Obsolete rtems_clock_get() directive.Joel Sherrill2016-04-146-150/+1
| | | | | | | This service was marked as deprecated long prior to the 4.11 release series and is now being removed. closes #2676.
* posix: Run key destructors during thread restartSebastian Huber2016-04-142-13/+40
| | | | | | | | | | POSIX key destructors must be called during thread restart. Just like the POSIX cleanup handlers. This ensures that the TLS object destructors are called during thread restart for example. It is important for the global construction, which uses a thread restart to run the Init task in a clean environment. Close #2689.
* score: Use red-black tree for active global objectsSebastian Huber2016-04-061-5/+0
| | | | | | | Use a red-black tree to lookup active global objects by identifier or name. Update #2555.
* score: Use red-black tree for active MP proxiesSebastian Huber2016-04-061-5/+0
| | | | Update #2555.
* score: Delete Thread_Wait_information::idSebastian Huber2016-04-062-6/+373
| | | | | | | | | | | This field was only by the monitor in non-multiprocessing configurations. Add new field Thread_Wait_information::remote_id in multiprocessing configurations and use it for the remote procedure call thread queue. Add _Thread_Wait_get_id() to obtain the object identifier for debug and system information tools. Ensure the object layout via static asserts. Add test cases to sptests/spthreadq01.
* score: Remove Thread_queue_Queue::operations fieldSebastian Huber2016-03-291-12/+2
| | | | | | | | | Remove the Thread_queue_Queue::operations field to reduce the size of this structure. Add a thread queue operations parameter to the _Thread_queue_First(), _Thread_queue_First_locked(), _Thread_queue_Enqueue(), _Thread_queue_Dequeue() and _Thread_queue_Flush() functions. This is a preparation patch to reduce the size of several synchronization objects.
* sp13/task1.c: Remove warning for misleading indentationJoel Sherrill2016-03-241-19/+20
| | | | | Fix a block of off-by-one indentation and add braces to clarify intention.
* rtems: Rework rate-monotonic schedulerSebastian Huber2016-03-221-12/+20
| | | | | | | | | | Use the default thread lock to protect rate-monotonic state changes. This avoids use of the Giant lock. Split rtems_rate_monotonic_period() body into several static functions. Introduce a new thread wait class THREAD_WAIT_CLASS_PERIOD for period objects to synchronize the blocking operation. Close #2631.
* sptests/sptls02: Use GNU++11Sebastian Huber2016-03-181-1/+1
| | | | | This avoids a problem with the feature test macros introduced in Newlib be657151f12f4d198e45395987f0a626ee1bbb91.
* score: Use allocator lock in _Objects_Get_next()Sebastian Huber2016-03-161-2/+0
| | | | | | | | Use the object allocator lock in _Objects_Get_next() instead of disabled thread dispatching since object creation and deletion is covered by this lock. Update #2555.
* score: Use ISR lock for IO driver registrationSebastian Huber2016-03-142-0/+3
| | | | | | Create implementation header file. Update #2555.
* score: Replace watchdog handler implementationSebastian Huber2016-03-0419-441/+360
| | | | | | | | | Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
* sptests/spsysinit01: Fix for RTEMS_DEBUGSebastian Huber2016-03-011-0/+8
| | | | Update #2408.
* sptests/sp65: Fix test namesSebastian Huber2016-02-221-2/+2
|
* Delete unused API extensionsSebastian Huber2016-02-031-1/+0
|
* Use linker set for POSIX User Threads initSebastian Huber2016-02-031-0/+31
| | | | Update #2408.