summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* rtems: Cache manager documentationSebastian Huber2014-02-281-66/+79
| | | | Move useful functions to the top of the file.
* sparc: Fix CPU counter supportSebastian Huber2014-02-243-2/+84
| | | | | | | | The SPARC processors supported by RTEMS have no built-in CPU counter support. We have to use some hardware counter module for this purpose. The BSP must provide a 32-bit register which contains the current CPU counter value and a function for the difference calculation. It can use for example the GPTIMER instance used for the clock driver.
* score: Fix thread TLS area initializationSebastian Huber2014-02-241-8/+13
| | | | | Do not use _TLS_Size here since this will lead GCC to assume that this symbol is not 0 and the later > 0 test will be optimized away.
* score: _CPU_SMP_Get_current_processor()Sebastian Huber2014-02-217-13/+9
| | | | | | | Remove RTEMS_COMPILER_PURE_ATTRIBUTE from _SMP_Get_current_processor() and all _CPU_SMP_Get_current_processor(). Make inline ASM statements volatile again. Test smptests/smpmigration01 showed that GCC optimizes too much otherwise.
* score: _Thread_Start_multitasking()Sebastian Huber2014-02-211-1/+5
| | | | | Fix serious race-condition. Read the heir after the per-CPU lock acquire.
* score: Rename _Internal_error_Occurred()Sebastian Huber2014-02-2127-36/+36
| | | | Rename _Internal_error_Occurred() into _Terminate().
* posix: Set pthread attribute values in detach and setschedparm methods.Jennifer Averett2014-02-192-0/+4
|
* score: _SMP_Inter_processor_interrupt_handler()Sebastian Huber2014-02-192-42/+23
| | | | | Inline _SMP_Inter_processor_interrupt_handler() to avoid function call overhead. Remove debug output.
* score: Wait for per-CPU state changes laterSebastian Huber2014-02-191-9/+5
| | | | | | Wait for per-CPU changes into PER_CPU_STATE_READY_TO_BEGIN_MULTITASKING later. There is no need to delay the initialization of the main processor at this point.
* score: Initialize per-CPU locksSebastian Huber2014-02-191-0/+6
|
* score: Move _SMP_Handler_initialize()Sebastian Huber2014-02-192-31/+22
|
* score: Rename rtems_smp_process_interrupt()Sebastian Huber2014-02-195-80/+6
| | | | | | Rename rtems_smp_process_interrupt() into _SMP_Inter_processor_interrupt_handler(). Delete unused header file <rtems/bspsmp.h>.
* score: Rename rtems_smp_secondary_cpu_initialize()Sebastian Huber2014-02-193-26/+28
| | | | | | Rename rtems_smp_secondary_cpu_initialize() into _SMP_Start_multitasking_on_secondary_processor(). Move declaration to <rtems/score/smpimpl.h>.
* score: Add and use <rtems/score/smpimpl.h>Sebastian Huber2014-02-198-83/+134
| | | | | Collect SMP implementation specific parts in the <rtems/score/smpimpl.h> header file.
* score: Delete bsp_smp_broadcast_interrupt()Sebastian Huber2014-02-192-22/+4
| | | | | | Since the per-CPU SMP lock must be acquired and released to send the message a single interrupt broadcast operations offers no benefits. If synchronization is required, then a SMP barrier must be used anyway.
* score: Rename bsp_smp_initialize()Sebastian Huber2014-02-198-21/+28
| | | | | Rename bsp_smp_initialize() into _CPU_SMP_Initialize() since every CPU port must supply this function.
* score: Remove ASM guardSebastian Huber2014-02-191-4/+0
|
* score: Rename RTEMS_BSP_SMP_SHUTDOWNSebastian Huber2014-02-192-10/+10
| | | | | Rename RTEMS_BSP_SMP_SHUTDOWN in SMP_MESSAGE_SHUTDOWN since SMP messages have nothing to do with the BSP. Use UINT32_C() instead of casts.
* score: Add RTEMS_FATAL_SOURCE_SMPSebastian Huber2014-02-194-6/+18
| | | | | | Use rtems_fatal() instead of _CPU_Fatal_halt() to shutdown processors in SMP configurations since this allows intervention of BSP or application specific fatal extensions.
* score: Add RTEMS_FATAL_SOURCE_BSPSebastian Huber2014-02-192-14/+6
| | | | | | Merge RTEMS_FATAL_SOURCE_BSP_GENERIC and RTEMS_FATAL_SOURCE_BSP_SPECIFIC into new fatal source RTEMS_FATAL_SOURCE_BSP. This makes it easier to figure out the code position given a fatal source and code.
* score: Delete INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UPSebastian Huber2014-02-193-18/+3
| | | | | This error case is no longer required since rtems_shutdown_executive() can be called anytime, anywhere
* score: Move _SMP_Request_other_cores_to_shutdown()Sebastian Huber2014-02-195-20/+29
| | | | | | Move _SMP_Request_other_cores_to_shutdown() invocation from rtems_shutdown_executive() to _Internal_error_Occurred() to allow a proper shutdown on SMP configurations even in the error case.
* score: Disable ISR in _Internal_error_Occurred()Sebastian Huber2014-02-193-3/+11
| | | | | | | Disable interrupts as the first step in _Internal_error_Occurred() to get a defined execution context for the fatal extensions. Make _ISR_Disable_without_giant() available for non-SMP configurations.
* score: Delete _Thread_BSP_contextSebastian Huber2014-02-197-157/+40
| | | | | | | | | | | | Do not return to BSP context in the exit() shutdown path. This makes it possible to re-use the initialization stack. It can be used for the interrupt stack for example. On targets with a small RAM this is a considerable benefit. This change eliminates also some special cases and simplifies the code. Delete _Thread_Set_global_exit_status(), _Thread_Get_global_exit_status() and _Thread_Stop_multitasking().
* score: Add SYSTEM_STATE_TERMINATEDSebastian Huber2014-02-194-20/+7
| | | | | | Merge systems states SYSTEM_STATE_SHUTDOWN and SYSTEM_STATE_FAILED into new system state SYSTEM_STATE_TERMINATED. This reflects that all system termination paths end up in _Internal_error_Occurred().
* powerpc: Change interrupt disable implemetationSebastian Huber2014-02-193-19/+36
| | | | | | | | | | | | Instead of SPRG0 (= special purpose register 272) use the new global symbol _PPC_INTERRUPT_DISABLE_MASK to store the interrupt disable mask. The benefit is that it is now possible to disable interrupts without further run-time initialization in boot_card(). At least on Freescale e500 cores this leads also to a faster execution since the mfmsr and mfspr instruction require four cycles to complete. The instructions to load the mask value can execute while the mfmsr is in progress.
* score: Move SMP interrupt stack initializationSebastian Huber2014-02-192-39/+25
| | | | | | | Move SMP interrupt stack initialization for secondary processors from _SMP_Handler_initialize() to _ISR_Handler_initialization() to avoid code duplication. Apply _CPU_Interrupt_stack_setup() to all interrupt stacks.
* cpukit: Correct bug in check of affinity support in newlib.Jennifer Averett2014-02-171-6/+22
|
* score: Add SMP barrierSebastian Huber2014-02-174-0/+181
|
* score: Use atomic API for SMP lockSebastian Huber2014-02-1716-559/+36
| | | | | Use a ticket lock implementation based on atomic operations. Delete CPU port specific SMP lock implementations.
* Require presence of <stdatomic.h> for SMP supportSebastian Huber2014-02-176-41/+15
|
* sparc: Add atomic support for SPARC V8Sebastian Huber2014-02-172-0/+203
| | | | Use SWAP instruction with one lock for the system in the SMP case.
* sparc: Add LEON3_ASR17_PROCESSOR_INDEX_SHIFTSebastian Huber2014-02-141-0/+14
| | | | Add _LEON3_Get_current_processor().
* score: Add Atomic_UintSebastian Huber2014-02-142-0/+171
|
* score: Fix warnings, C++ compatibility, fix typosSebastian Huber2014-02-141-18/+22
|
* score: Remove volatile from asm statementsSebastian Huber2014-02-142-2/+2
| | | | | The instructions to get the processor current index have no side-effects.
* score: Add CPU counter supportSebastian Huber2014-02-1440-0/+557
| | | | | | | | | Add a CPU counter interface to allow access to a free-running counter. It is useful to measure short time intervals. This can be used for example to enable profiling of critical low-level functions. Add two busy wait functions rtems_counter_delay_ticks() and rtems_counter_delay_nanoseconds() implemented via the CPU counter.
* sparc: Increase CPU_STRUCTURE_ALIGNMENT to 32Sebastian Huber2014-02-131-1/+1
| | | | Recent LEON4 systems use a cache line size of 32 bytes.
* score: Change debug helper functionsSebastian Huber2014-02-129-83/+45
| | | | | | | | Rename rtems_internal_error_description() to rtems_internal_error_text(). Rename rtems_fatal_source_description() to rtems_fatal_source_text(). Rename rtems_status_code_description() to rtems_status_text(). Remove previous implementation of rtems_status_text().
* sparc: Save/restore only non-volatile contextSebastian Huber2014-02-122-64/+74
| | | | | | | | | | The _CPU_Context_switch() is a normal function call. The following registers are volatile (the caller must assume that the register contents are destroyed by the callee) according to "SYSTEM V APPLICATION BINARY INTERFACE - SPARC Processor Supplement", Third Edition: g1, o0, o1, o2, o3, o4, o5. Drop these registers from the context. Ensure that offset defines match the structure offsets.
* score: Format _Thread_Get_maximum_internal_threadsSebastian Huber2014-02-101-3/+2
|
* rtems: Add rtems_status_code_description()Sebastian Huber2014-02-063-0/+80
|
* score: _CPU_Context_switch_to_first_task_smp()Sebastian Huber2014-02-056-41/+1
| | | | | Delete _CPU_Context_switch_to_first_task_smp() and use _CPU_Context_restore() instead.
* Add thread-local storage (TLS) supportSebastian Huber2014-02-0446-55/+521
| | | | | Tested and implemented on ARM, m68k, PowerPC and SPARC. Other architectures need more work.
* score: Add _Thread_Get_maximum_internal_threads()Sebastian Huber2014-02-042-11/+20
|
* score: Add _Heap_Size_with_overhead()Sebastian Huber2014-02-041-0/+23
|
* score: Add _Workspace_Allocate_aligned()Sebastian Huber2014-02-042-0/+16
|
* dosfs/fat.c: Remove use of register keywordJoel Sherrill2014-02-031-1/+1
|
* calloc.c: Remove use of register keywordJoel Sherrill2014-02-031-3/+3
|
* posix/*.c: Remove use of register keywordJoel Sherrill2014-02-0313-26/+26
|