summaryrefslogtreecommitdiffstats
path: root/doc (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-01-26user/conf.t: Fix typoJoel Sherrill1-1/+1
2015-01-22score: Delete superfluous Heap_Statistics::instanceSebastian Huber1-2/+0
This value depends on the _Heap_Initialize() call sequence and carries no useful information.
2014-12-19doc: add some red-black tree documentationGedare Bloom3-4/+103
closes #2059
2014-12-16doc: Add multilib section to CPU supplementSebastian Huber3-0/+121
Add multilib section for ARM and PowerPC
2014-12-12doc: Clarify rate-monotonic statisticsSebastian Huber1-4/+15
2014-12-12doc: Clarify rtems_task_set_priority()Sebastian Huber1-0/+3
2014-12-05Update bug report URLSebastian Huber2-2/+2
2014-12-04SPARC: optimize IRQ enable & disableDaniel Hellstrom1-4/+27
* Coding style cleanups. * Use OS reserved trap 0x89 for IRQ Disable * Use OS reserved trap 0x8A for IRQ Enable * Add to SPARC CPU supplement documentation This will result in faster Disable/Enable code since the system trap handler does not need to decode which function the user wants. Besides the IRQ disable/enabled can now be inline which avoids the caller to take into account that o0-o7+g1-g4 registers are destroyed by trap handler. It was also possible to reduce the interrupt trap handler by five instructions due to this.
2014-11-28score: Add heap statisticsSebastian Huber1-13/+19
Add lifetime bytes allocated and freed since they were present in the malloc statistics. Add number of failed allocations.
2014-11-28score: Return heap stats via _Heap_Get_informationSebastian Huber1-6/+25
Print out heap statistics via the MALLOC and WKSPACE shell commands.
2014-11-28libcsupport: Delete malloc statisticsSebastian Huber2-83/+27
Use the heap handler statistics instead. Add heap walk option to MALLOC shell command. close #1367
2014-11-27shell: Make mv, cp and rm usable for applicationsSebastian Huber1-6/+6
close #2030
2014-11-20shell: DocumentationSebastian Huber2-3/+161
2014-11-20shell: Add CMDLS, CMDCHOWN, CMDCHMOD commandsSebastian Huber1-0/+186
2014-11-20shell: Rename HALT to SHUTDOWN commandSebastian Huber1-24/+13
Use a normal command for shutdown via exit().
2014-10-09Eliminate use of /*PAGE and clean up formattingJoel Sherrill3-65/+31
2014-10-09avr/rtems/score/cpu.h: Fix macros to avoid warningsJoel Sherrill1-31/+0
2014-10-07termios: Partially hide rtems_termios_ttySebastian Huber1-17/+21
Move interrupt lock to device context and expose only this structure to the read, write and set attributes device handler. This makes these device handler independent of the general Termios infrastructure suitable for direct use in printk() support.
2014-10-07termios: Separate flow control from normal handlerSebastian Huber1-0/+1
2014-09-18doc/shell: Correct build issues from fc9f8f5085724622a189ba5d44ac116d7b27e27cJoel Sherrill3-2/+5
2014-09-16Use correct prototype of benchmark_timer_read()Joel Sherrill1-1/+1
This change starts with removing the effectively empty file timerdrv.h. The prototypes for benchmark_timer_XXX() were in btimer.h which was not universally used. Thus every use of timerdrv.h had to be changed to btimer.h. Then the prototypes for benchmark_timer_read() had to be adjusted to return benchmark_timer_t rather than int or uint32_t. I took this opportunity to also correct the file headers to separate the copyright from the file description comments which is needed to ensure the copyright isn't propagated into Doxygen output.
2014-09-16doc: Sort the shell file commands into alphabetical order.Chris Johns1-1354/+1433
2014-09-16shell: Add an md5 hash command for files.Chris Johns1-67/+139
This command lets you get an MD5 hash for a file in an RTEMS file system.
2014-09-16shell: Add a ping command.Chris Johns1-21/+290
The ping code is taken from a recent FreeBSD release. Some options have been tested, other not tested or do not work. This could be due to the age of our TCP/IP stack. This version of ping will not work if more than 64 file descriptors are open at once because the select FD size is 64 as set in newlib.
2014-09-12doc: Clarify ABI in SPARC CPU supplementSebastian Huber1-11/+16
2014-09-08doc/arm: Update floating point unit supportSebastian Huber1-1/+9
2014-08-26rtems: Add more clock tick functionsSebastian Huber1-0/+104
Add rtems_clock_tick_later(), rtems_clock_tick_later_usec() and rtems_clock_tick_before().
2014-08-25rtems: Inline rtems_clock_get_ticks_since_boot()Sebastian Huber1-21/+10
Update documentation.
2014-08-20or1k.t: Fix spelling errorsJoel Sherrill1-4/+4
2014-08-20Add new documentation section for OpenRISC CPU architecture.Hesham ALMatary3-0/+84
2014-07-21doc: Update console driver documentationSebastian Huber1-398/+344
2014-07-09score: Implement scheduler helping protocolSebastian Huber1-0/+78
The following scheduler operations return a thread in need for help - unblock, - change priority, and - yield. A thread in need for help is a thread that encounters a scheduler state change from scheduled to ready or a thread that cannot be scheduled in an unblock operation. Such a thread can ask threads which depend on resources owned by this thread for help. Add a new ask for help scheduler operation. This operation is used by _Scheduler_Ask_for_help() to help threads in need for help returned by the operations mentioned above. This operation is also used by _Scheduler_Thread_change_resource_root() in case the root of a resource sub-tree changes. A use case is the ownership change of a resource. In case it is not possible to schedule a thread in need for help, then the corresponding scheduler node will be placed into the set of ready scheduler nodes of the scheduler instance. Once a state change from ready to scheduled happens for this scheduler node it may be used to schedule the thread in need for help.
2014-06-03score: Use Resource Handler for MrsP semaphoresSebastian Huber1-1/+10
This enables proper resource dependency tracking and as a side-effect deadlock detection.
2014-06-02score: _Scheduler_Set_affinity()Sebastian Huber1-1/+9
Do not change the scheduler with this function. Documentation. Coding style.
2014-05-28score: Multiprocessor Resource Sharing ProtocolSebastian Huber3-5/+242
Add basic support for the Multiprocessor Resource Sharing Protocol (MrsP). The Multiprocessor Resource Sharing Protocol (MrsP) is defined in A. Burns and A.J. Wellings, A Schedulability Compatible Multiprocessor Resource Sharing Protocol - MrsP, Proceedings of the 25th Euromicro Conference on Real-Time Systems (ECRTS 2013), July 2013. It is a generalization of the Priority Ceiling Protocol to SMP systems. Each MrsP semaphore uses a ceiling priority per scheduler instance. These ceiling priorities can be specified with rtems_semaphore_set_priority(). A task obtaining or owning a MrsP semaphore will execute with the ceiling priority for its scheduler instance as specified by the MrsP semaphore object. Tasks waiting to get ownership of a MrsP semaphore will not relinquish the processor voluntarily. In case the owner of a MrsP semaphore gets preempted it can ask all tasks waiting for this semaphore to help out and temporarily borrow the right to execute on one of their assigned processors. The help out feature is not implemented with this patch.
2014-05-20rtems: Clarify task set/get scheduler parametersSebastian Huber1-5/+7
2014-05-15score: Simplify _Thread_Change_priority()Sebastian Huber1-5/+0
The function to change a thread priority was too complex. Simplify it with a new scheduler operation. This increases the average case performance due to the simplified logic. The interrupt disabled critical section is a bit prolonged since now the extract, update and enqueue steps are executed atomically. This should however not impact the worst-case interrupt latency since at least for the Deterministic Priority Scheduler this sequence can be carried out with a wee bit of instructions and no loops. Add _Scheduler_Change_priority() to replace the sequence of - _Thread_Set_transient(), - _Scheduler_Extract(), - _Scheduler_Enqueue(), and - _Scheduler_Enqueue_first(). Delete STATES_TRANSIENT, _States_Is_transient() and _Thread_Set_transient() since this state is now superfluous. With this change it is possible to get rid of the SCHEDULER_SMP_NODE_IN_THE_AIR state. This considerably simplifies the implementation of the new SMP locking protocols.
2014-05-08doc: Use @dfn for glossary termsSebastian Huber1-1/+1
2014-05-08doc: Move SMP glossary to global glossarySebastian Huber2-126/+93
Add some terms.
2014-05-07score: Implement forced thread migrationSebastian Huber1-0/+46
The current implementation of task migration in RTEMS has some implications with respect to the interrupt latency. It is crucial to preserve the system invariant that a task can execute on at most one processor in the system at a time. This is accomplished with a boolean indicator in the task context. The processor architecture specific low-level task context switch code will mark that a task context is no longer executing and waits that the heir context stopped execution before it restores the heir context and resumes execution of the heir task. So there is one point in time in which a processor is without a task. This is essential to avoid cyclic dependencies in case multiple tasks migrate at once. Otherwise some supervising entity is necessary to prevent life-locks. Such a global supervisor would lead to scalability problems so this approach is not used. Currently the thread dispatch is performed with interrupts disabled. So in case the heir task is currently executing on another processor then this prolongs the time of disabled interrupts since one processor has to wait for another processor to make progress. It is difficult to avoid this issue with the interrupt latency since interrupts normally store the context of the interrupted task on its stack. In case a task is marked as not executing we must not use its task stack to store such an interrupt context. We cannot use the heir stack before it stopped execution on another processor. So if we enable interrupts during this transition we have to provide an alternative task independent stack for this time frame. This issue needs further investigation.
2014-05-05score: SMP_FATAL_SCHEDULER_WITHOUT_PROCESSORSSebastian Huber2-3/+3
Avoid the SMP_FATAL_SCHEDULER_WITHOUT_PROCESSORS fatal error and make it a run-time error in rtems_scheduler_ident() and _Scheduler_Get_by_id().
2014-05-05doc: Add SMP glossarySebastian Huber1-0/+110
2014-04-30doc: Extend documentation for unlimited objectsRalf Kirchner1-4/+37
Mark POSIX Keys and POSIX Key Value Pairs as supported. Add list of unsupported object classes. Add hint to unified work areas. Add example.
2014-04-28sparc: Add _CPU_Get_current_per_CPU_control()Sebastian Huber1-0/+5
Use register g6 for the per-CPU control of the current processor. The register g6 is reserved for the operating system by the SPARC ABI. On Linux register g6 is used for a similar purpose with the same method since 1996. The register g6 must be initialized during system startup and then must remain unchanged. Since the per-CPU control is used in all critical sections of the operating system, this is a performance optimization for the operating system core procedures. An additional benefit is that the low-level context switch and interrupt processing code is now identical on non-SMP and SMP configurations.
2014-04-28sparc: Document register g7 usageSebastian Huber1-0/+3
2014-04-28sparc: Optimize context switchSebastian Huber1-0/+3
The registers g2 through g4 are reserved for applications. GCC uses them as volatile registers by default. So they are treated like volatile registers in RTEMS as well.
2014-04-22bsps: Fix TLS support in linker command filesSebastian Huber1-1/+3
The TLS section symbols had wrong values in case of an empty TLS data section and a nonempty TLS BSS section.
2014-04-22doc: Setting Affinity to a Single ProcessorSebastian Huber1-8/+20
2014-04-17score: Clarify TLS supportSebastian Huber1-1/+20
2014-04-17doc: TypoSebastian Huber1-2/+1