Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | testsuites/sptests/sp[i-z]*/*.doc: Change license to BSD-2 | Joel Sherrill | 2022-04-05 | 1 | -3/+22 |
| | | | | Updates #3053. | ||||
* | testsuites/sptests/sp[s-z]*: Change license to BSD-2 | Joel Sherrill | 2022-04-05 | 1 | -3/+22 |
| | | | | Updates #3053. | ||||
* | posix: Enable more sptests test cases by default | Sebastian Huber | 2018-10-29 | 1 | -23/+8 |
| | | | | Update #2514. | ||||
* | testsuite/sptests: Merged nested Makefile.am files into one Makefile.am | Chris Johns | 2018-04-10 | 1 | -22/+0 |
| | | | | | | This change is part of the testsuite Makefile.am reorganization. Update #3382 | ||||
* | tests: Use simple console driver | Sebastian Huber | 2017-11-06 | 1 | -1/+1 |
| | | | | | Update #3170. Update #3199. | ||||
* | tests: Remove TEST_INIT | Sebastian Huber | 2017-10-28 | 1 | -2/+0 |
| | | | | | | | | The TEST_EXTERN is a used only by the system.h style tests and they use CONFIGURE_INIT appropriately. Update #3170. Update #3199. | ||||
* | testsuite: Use printk for all test output where possible. | Chris Johns | 2017-10-23 | 1 | -0/+2 |
| | | | | | | | | | | - Remove the printf support leaving the direct printk support configured with TESTS_USE_PRINTK and all other output goes via a buffered vsniprintf call to printk. - Control the test's single init for functions and global data with TEST_INIT and not CONFIGURE_INIT. They are now separate. Updates #3170. | ||||
* | spthreadq01/init.c: Fix unused variable warnings | Joel Sherrill | 2017-10-12 | 1 | -3/+0 |
| | |||||
* | posix: Implement self-contained POSIX mutex | Sebastian Huber | 2017-10-05 | 1 | -38/+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 condvar | Sebastian Huber | 2017-10-05 | 1 | -3/+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 rwlocks | Sebastian Huber | 2017-10-05 | 1 | -19/+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 semaphores | Sebastian Huber | 2017-10-05 | 1 | -18/+0 |
| | | | | | | | | | | | | | | For semaphore object pointer and object validation see POSIX_SEMAPHORE_VALIDATE_OBJECT(). Destruction or close of a busy semaphore returns an error status. The object is not flushed. POSIX semaphores are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3116. | ||||
* | score: Initialize thread queue context early | Sebastian Huber | 2016-12-02 | 1 | -0/+1 |
| | | | | | | | | Initialize thread queue context early preferably outside the critical section. Remove implicit _Thread_queue_Context_initialize() from _Thread_Wait_acquire(). | ||||
* | score: Turn thread lock into thread wait lock | Sebastian Huber | 2016-07-27 | 1 | -4/+3 |
| | | | | | | | | | The _Thread_Lock_acquire() function had a potentially infinite run-time due to the lack of fairness at atomic operations level. Update #2412. Update #2556. Update #2765. | ||||
* | testsuites: Avoid Giant lock | Sebastian Huber | 2016-05-20 | 1 | -3/+1 |
| | | | | | | | | | 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. | ||||
* | posix: Simplify message queues | Sebastian Huber | 2016-05-02 | 1 | -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 Huber | 2016-04-22 | 1 | -1/+1 |
| | |||||
* | score: Delete Thread_Wait_information::id | Sebastian Huber | 2016-04-06 | 2 | -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 field | Sebastian Huber | 2016-03-29 | 1 | -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. | ||||
* | score: Introduce Thread_queue_Heads | Sebastian Huber | 2015-07-23 | 1 | -2/+2 |
| | | | | | | | | | | | | | 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_Queue | Sebastian Huber | 2015-07-23 | 1 | -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: Typo | Sebastian Huber | 2015-07-13 | 1 | -1/+1 |
| | |||||
* | score: Add static initializers for thread queues | Sebastian Huber | 2015-05-19 | 1 | -0/+14 |
| | |||||
* | score: _Thread_queue_Extract() | Sebastian Huber | 2015-05-19 | 1 | -25/+4 |
| | | | | | Remove thread queue parameter from _Thread_queue_Extract() since the current thread queue is stored in the thread control block. | ||||
* | score: Delete Thread_queue_Control::state | Sebastian Huber | 2015-04-23 | 1 | -1/+1 |
| | | | | | Use a parameter for _Thread_queue_Enqueue() instead to reduce memory usage. | ||||
* | score: PR2172: _Thread_queue_Extract() | Sebastian Huber | 2014-04-01 | 1 | -3/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add _Thread_queue_Extract_with_return_code(). On SMP this sequence in _Thread_queue_Process_timeout() was broken: [...] /* * After we enable interrupts here, a lot may happen in the * meantime, e.g. nested interrupts may release the resource that * times out here. So we enter _Thread_queue_Extract() * speculatively. Inside this function we check the actual status * under ISR disable protection. This ensures that exactly one * executing context performs the extract operation (other parties * may call _Thread_queue_Dequeue()). If this context won, then * we have a timeout. * * We can use the_thread_queue pointer here even if * the_thread->Wait.queue is already set to NULL since the extract * operation will only use the thread queue discipline to select * the right extract operation. The timeout status is set during * thread queue initialization. */ we_did_it = _Thread_queue_Extract( the_thread_queue, the_thread ); if ( we_did_it ) { the_thread->Wait.return_code = the_thread_queue->timeout_status; } [...] In case _Thread_queue_Extract() successfully extracted a thread, then this thread may start execution on a remote processor immediately and read the the_thread->Wait.return_code before we update it here with the timeout status. Thus it observes a successful operation even if it timed out. | ||||
* | tests/sptests: Use <rtems/test.h> | Sebastian Huber | 2014-03-25 | 1 | -2/+6 |
| | |||||
* | Change all references of rtems.com to rtems.org. | Chris Johns | 2014-03-21 | 2 | -2/+2 |
| | |||||
* | sptests/spthreadq01: Add SMP support | Sebastian Huber | 2013-08-27 | 1 | -2/+6 |
| | |||||
* | score: Create threadq implementation header | Sebastian Huber | 2013-07-26 | 1 | -1/+1 |
| | | | | | | | | Move implementation specific parts of tqdata.h, threadq.h and threadq.inl into new header file threadqimpl.h. The threadq.h contains now only the application visible API. Delete tqdata.h. | ||||
* | testsuites: Use _Thread_Get_executing() | Sebastian Huber | 2013-07-22 | 1 | -1/+1 |
| | |||||
* | sptests - Eliminate missing prototype warnings | Joel Sherrill | 2012-05-31 | 1 | -0/+7 |
| | |||||
* | Remove All CVS Id Strings Possible Using a Script | Joel Sherrill | 2012-05-11 | 3 | -9/+0 |
| | | | | | | | | | | | | Script does what is expected and tries to do it as smartly as possible. + remove occurrences of two blank comment lines next to each other after Id string line removed. + remove entire comment blocks which only exited to contain CVS Ids + If the processing left a blank line at the top of a file, it was removed. | ||||
* | Revert: Remove CVS Ids | Joel Sherrill | 2012-05-07 | 1 | -0/+5 |
| | | | | | See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html for details. | ||||
* | Remove CVS-Ids. | Ralf Corsépius | 2012-05-04 | 1 | -5/+0 |
| | |||||
* | Remove all .cvsignore files. | Joel Sherrill | 2012-02-01 | 1 | -2/+0 |
| | |||||
* | 2011-12-08 Joel Sherrill <joel.sherrill@oarcorp.com> | Joel Sherrill | 2011-12-08 | 1 | -3/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 1589/build * sp01/Makefile.am, sp02/Makefile.am, sp03/Makefile.am, sp04/Makefile.am, sp05/Makefile.am, sp06/Makefile.am, sp07/Makefile.am, sp08/Makefile.am, sp09/Makefile.am, sp10/Makefile.am, sp11/Makefile.am, sp12/Makefile.am, sp13/Makefile.am, sp14/Makefile.am, sp15/Makefile.am, sp16/Makefile.am, sp17/Makefile.am, sp18/Makefile.am, sp19/Makefile.am, sp20/Makefile.am, sp2038/Makefile.am, sp21/Makefile.am, sp22/Makefile.am, sp23/Makefile.am, sp24/Makefile.am, sp25/Makefile.am, sp26/Makefile.am, sp27/Makefile.am, sp27a/Makefile.am, sp28/Makefile.am, sp29/Makefile.am, sp30/Makefile.am, sp31/Makefile.am, sp32/Makefile.am, sp33/Makefile.am, sp34/Makefile.am, sp35/Makefile.am, sp36/Makefile.am, sp37/Makefile.am, sp38/Makefile.am, sp39/Makefile.am, sp40/Makefile.am, sp41/Makefile.am, sp42/Makefile.am, sp43/Makefile.am, sp44/Makefile.am, sp45/Makefile.am, sp46/Makefile.am, sp47/Makefile.am, sp48/Makefile.am, sp49/Makefile.am, sp50/Makefile.am, sp51/Makefile.am, sp52/Makefile.am, sp53/Makefile.am, sp54/Makefile.am, sp55/Makefile.am, sp56/Makefile.am, sp57/Makefile.am, sp58/Makefile.am, sp59/Makefile.am, sp60/Makefile.am, sp62/Makefile.am, sp63/Makefile.am, sp64/Makefile.am, sp65/Makefile.am, sp66/Makefile.am, sp67/Makefile.am, sp68/Makefile.am, sp69/Makefile.am, sp70/Makefile.am, sp71/Makefile.am, sp72/Makefile.am, sp73/Makefile.am, sp74/Makefile.am, sp75/Makefile.am, sp76/Makefile.am, spassoc01/Makefile.am, spcbssched01/Makefile.am, spcbssched02/Makefile.am, spcbssched03/Makefile.am, spchain/Makefile.am, spclockget/Makefile.am, spcoverage/Makefile.am, spedfsched01/Makefile.am, spedfsched02/Makefile.am, spedfsched03/Makefile.am, sperror01/Makefile.am, sperror02/Makefile.am, sperror03/Makefile.am, spfatal01/Makefile.am, spfatal02/Makefile.am, spfatal03/Makefile.am, spfatal04/Makefile.am, spfatal05/Makefile.am, spfatal06/Makefile.am, spfatal07/Makefile.am, spfatal08/Makefile.am, spfatal09/Makefile.am, spfatal10/Makefile.am, spfatal11/Makefile.am, spfatal12/Makefile.am, spfatal13/Makefile.am, spfatal14/Makefile.am, spfatal15/Makefile.am, spfatal16/Makefile.am, spfatal17/Makefile.am, spfatal18/Makefile.am, spfatal19/Makefile.am, spfatal20/Makefile.am, spfatal21/Makefile.am, spfatal22/Makefile.am, spfatal23/Makefile.am, spfatal24/Makefile.am, spfatal25/Makefile.am, spfifo01/Makefile.am, spfifo02/Makefile.am, spfifo03/Makefile.am, spfifo04/Makefile.am, spfifo05/Makefile.am, spheapprot/Makefile.am, spintrcritical01/Makefile.am, spintrcritical02/Makefile.am, spintrcritical03/Makefile.am, spintrcritical04/Makefile.am, spintrcritical05/Makefile.am, spintrcritical06/Makefile.am, spintrcritical07/Makefile.am, spintrcritical08/Makefile.am, spintrcritical09/Makefile.am, spintrcritical10/Makefile.am, spintrcritical11/Makefile.am, spintrcritical12/Makefile.am, spintrcritical13/Makefile.am, spintrcritical14/Makefile.am, spintrcritical15/Makefile.am, spintrcritical16/Makefile.am, spintrcritical17/Makefile.am, spmkdir/Makefile.am, spmountmgr01/Makefile.am, spnotepad01/Makefile.am, spnsext01/Makefile.am, spobjgetnext/Makefile.am, spprintk/Makefile.am, spprivenv01/Makefile.am, sprbtree01/Makefile.am, spsimplesched01/Makefile.am, spsimplesched02/Makefile.am, spsimplesched03/Makefile.am, spsize/Makefile.am, spstkalloc/Makefile.am, spthreadq01/Makefile.am, spwatchdog/Makefile.am, spwkspace/Makefile.am: Remove obsolete optional manager capability. | ||||
* | Add HAVE_CONFIG_H. | Ralf Corsepius | 2011-02-22 | 1 | -0/+4 |
| | |||||
* | 2009-07-09 Joel Sherrill <joel.sherrill@OARcorp.com> | Joel Sherrill | 2009-07-09 | 5 | -0/+115 |
* Makefile.am, configure.ac: Add test for Thread Queue extract a thread not blocked on a thread queue. * spthreadq01/.cvsignore, spthreadq01/Makefile.am, spthreadq01/init.c, spthreadq01/spthreadq01.doc, spthreadq01/spthreadq01.scn: New files. |