summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Scheduler node awareness for thread queuesSebastian Huber2016-09-217-319/+862
| | | | | | | | Maintain the priority of a thread for each scheduler instance via the thread queue enqueue, extract, priority actions and surrender operations. This replaces the primitive priority boosting. Update #2556.
* rtems: Add rtems_task_get_priority()Sebastian Huber2016-09-213-0/+107
| | | | | Update #2556. Update #2784.
* score: Manage scheduler nodes via thread queuesSebastian Huber2016-09-215-0/+33
| | | | Update #2556.
* score: Add scheduler node table for each threadSebastian Huber2016-09-217-58/+156
| | | | Update #2556.
* score: Rework thread priority managementSebastian Huber2016-09-2163-1467/+2678
| | | | | | | | | | | | | | | | | | | | | | | | | Add priority nodes which contribute to the overall thread priority. The actual priority of a thread is now an aggregation of priority nodes. The thread priority aggregation for the home scheduler instance of a thread consists of at least one priority node, which is normally the real priority of the thread. The locking protocols (e.g. priority ceiling and priority inheritance), rate-monotonic period objects and the POSIX sporadic server add, change and remove priority nodes. A thread changes its priority now immediately, e.g. priority changes are not deferred until the thread releases its last resource. Replace the _Thread_Change_priority() function with * _Thread_Priority_perform_actions(), * _Thread_Priority_add(), * _Thread_Priority_remove(), * _Thread_Priority_change(), and * _Thread_Priority_update(). Update #2412. Update #2556.
* termios: Add IO control handlerSebastian Huber2016-09-192-2/+20
| | | | Update #2785.
* termios: Use IMFS nodes for new Termios devicesSebastian Huber2016-09-192-235/+281
| | | | | | | | This makes the new Termios devices independent of device major/minor numbers. It enables BSP independent Termios device drivers which may reside in the cpukit domain. These drivers require an IMFS and do not work with the device file system. However, the device file system should go away in the future.
* imfs: Untangle dependenciesSebastian Huber2016-09-193-89/+116
| | | | | This helps to use IMFS_make_generic_node() without pulling in the complete IMFS implementation.
* imfs: Fix IMFS_stat_file()Sebastian Huber2016-09-162-6/+3
| | | | | Use the adjusted and not the requested memfile bytes per block. Untangle dependencies.
* Add SPI bus frameworkAlexander Krutwig2016-09-165-0/+877
| | | | | | User API is compatible to Linux userspace API. New test libtests/spi01. Update #2776.
* score: Introduce _Thread_Get_priority()Sebastian Huber2016-09-0822-41/+69
| | | | Avoid direct access to thread internal data fields.
* score: Add scheduler node implementation headerSebastian Huber2016-09-086-106/+140
| | | | Update #2556.
* score: Move thread wait node to scheduler nodeSebastian Huber2016-09-089-144/+220
| | | | Update #2556.
* score: Move scheduler node to own header fileSebastian Huber2016-09-085-163/+196
| | | | | | | This makes it possible to add scheduler nodes to structures defined in <rtems/score/thread.h>. Update #2556.
* score: Optimize thread queue enqueueSebastian Huber2016-09-081-17/+32
| | | | Optimize the enqueue to empty thread queue case.
* score: Introduce Thread_queue_Lock_contextSebastian Huber2016-09-0833-186/+235
| | | | | | Introduce Thread_queue_Lock_context to contain the context necessary for thread queue lock and thread wait lock acquire/release operations to reduce the Thread_Control size.
* score: Simplify thread queue acquire/releaseSebastian Huber2016-09-0816-92/+68
|
* score: Fix warningSebastian Huber2016-09-081-1/+1
|
* score: Fix warningSebastian Huber2016-09-081-1/+1
|
* score: Fix for RTEMS_DEBUGSebastian Huber2016-09-081-0/+1
|
* libdl: Add ARM C++ relocation record support.Chris Johns2016-09-082-2/+18
| | | | Closes #2767
* stackchk: Fix stack checker thread initializationSebastian Huber2016-09-082-30/+4
| | | | | | | Commit 0fd6f25507fbea5f4892b71b58837cdda17856b4 relaxed the thread begin extension execution environment. This broke the stack check which only partially initialized the stack pattern in its create extension. Move the part of the begin extension to the create extension.
* stackchk: Use a const pattern to checkSebastian Huber2016-09-082-90/+51
|
* stackchk: Remove superfluous internal header fileSebastian Huber2016-09-083-103/+26
|
* score: Remove superfluous SMP debug supportSebastian Huber2016-09-076-34/+2
| | | | This information turned out to be useless in the last couple of months.
* score: Add _Chain_Initialize_one()Sebastian Huber2016-09-061-0/+27
|
* score: Improve red-black tree debug supportSebastian Huber2016-09-064-3/+19
| | | | Ensure that we extract a node only from the right tree.
* score: Add _RBTree_Initialize_one()Sebastian Huber2016-09-061-0/+20
|
* score: Add missing const qualifiersSebastian Huber2016-09-062-10/+10
|
* capture: Use proper accessor functionsSebastian Huber2016-09-061-4/+4
|
* capture: Workaround to avoid misaligned accessSebastian Huber2016-09-061-1/+1
| | | | | Move the 64-bit field to a not 64-bit aligned structure offset to stop the compiler from generating 64-bit load/store operations.
* libmisc/capture: Remove the reserved _t in the types.Chris Johns2016-09-018-271/+252
|
* libmisc/capture: Fix the capture engine on SMP.Chris Johns2016-09-019-666/+880
| | | | | | | | | | | | | | | | | | | | | | | This patches some issues with the capture engine: 1. Check is the engine is open in ctrace commands. 2. Check all record open and appends for overflow. 3. Fix the record open to take the size of user data and not the record header. 4. Use packed structs for data being written to the per cpu buffers. 5. Remove direct struct access to the capture buffers to avoid misaligned accesses. 6. Add support to extract records, no struct access to the capture buffers. 7. Update ctrace to extract records from the capture buffers. 8. Add support to ctrace to always print the task name if it has one. 9. Add support to manage names or the lack of a name. 10. Range of minor fixes. 11. Fix a long standing bug in ctset's handling of args. Closes #2780.
* arm: Add VFP context validate support for ARMv5Kevin Kirspel2016-08-192-5/+11
|
* score: Fix undefined behaviourSebastian Huber2016-08-181-1/+1
| | | | | Cast POSIX error codes to unsigned int to avoid undefined behaviour in case of PTHREAD_BARRIER_SERIAL_THREAD which is -1.
* testsuite: Add libdl/dl03 cache test.Chris Johns2016-08-152-1/+5
|
* libdl: Fix cache corruption bugs.Chris Johns2016-08-153-30/+86
| | | | | | | | | This patch fixes a number of bugs in the cache when requests are made to read close to the end of the file and the data is copied from the top of the cache buffer to the bottom of the buffer. This was compounded by attempting to read past the end of the file. Closes #2754.
* libdl: Add trace output when reading section headers.Chris Johns2016-08-151-0/+3
|
* score: Improve _RBTree_Insert_inline()Sebastian Huber2016-08-121-1/+9
| | | | Return if the inserted node is the new minimum node or not.
* score: Introduce thread queue surrender operationSebastian Huber2016-08-114-36/+94
| | | | | | This is an optimization for _Thread_queue_Surrender(). It helps to encapsulate the priority boosting in the priority inheritance thread queue operations.
* score: Dismantle _Thread_queue_Do_extract_locked()Sebastian Huber2016-08-111-28/+39
| | | | | | | Dismantle _Thread_queue_Do_extract_locked() into re-usable parts like _Thread_queue_MP_set_callout() and _Thread_queue_Make_ready_again(). Use them in _Thread_queue_Surrender() to propare for a new thread queue surrender operation.
* score: Add _Thread_queue_Surrender()Sebastian Huber2016-08-116-134/+86
| | | | | Add _Thread_queue_Surrender() to unify the mutex surrender procedures which involve a thread queue operation.
* build-system: Always enable C++ if the compiler is present.Chris Johns2016-08-111-2/+4
| | | | | | | | | | | We always build a C++ compiler and building with C++ does not effect RTEMS or the runtime. This patch always enabled the support. There is no need to manually enable it any more. You can disable C++ with '--disable-cxx'. If an architecture does not have a C++ compiler support is automatically disabled.
* posix: nanosleep: adjust elapsed time calculationGedare Bloom2016-08-101-39/+39
| | | | | | | Use clock_gettime before and after sleep to calculate the time spent asleep, and the amount of time remaining. updates #2732
* libmisc/untar: Set the perms to the value in the tar file.Chris Johns2016-08-092-20/+34
| | | | | | | This patch parses the mode field in the tar header and sets the directory or file to the mode value in the header. Closes #2768.
* score: Add debug support to red-black treesSebastian Huber2016-08-0811-32/+62
| | | | This helps to detect double insert and extract errors.
* posix: Fix for RTEMS_DEBUGSebastian Huber2016-08-081-0/+1
|
* score: Simplify _Thread_Finalize_life_change()Sebastian Huber2016-08-051-7/+1
|
* score: Fix a release/cancel job race conditionSebastian Huber2016-08-0416-83/+72
| | | | | | | | Split up the potential thread priority change in the scheduler release/cancel job operation. Protect the rate monotonic period state with a dedicated SMP lock. This avoids a race condition during _Rate_monotonic_Timeout() while _Rate_monotonic_Cancel() is called on another processor.
* score: Fix _Thread_queue_Path_release()Sebastian Huber2016-08-041-8/+13
| | | | | | It is possible that the owner of the terminal link of a thread queue path waits on a thread queue. However, this thread queue has no owner, e.g. a thread queue of a message queue.