summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* smp: New SMP lock APISebastian Huber2013-05-313-102/+83
| | | | | | | | | | | | | | Move the SMP lock implementation to the CPU port. An optimal SMP lock implementation is highly architecture dependent. For example the memory models may be fundamentally different. The new SMP lock API has a flaw. It does not provide the ability to use a local context for acquire and release pairs. Such a context is necessary to implement for example the Mellor-Crummey and Scott (MCS) locks. The SMP lock is currently used in _Thread_Disable_dispatch() and _Thread_Enable_dispatch() and makes them to a giant lock acquire and release. Since these functions do not pass state information via a local context there is currently no use case for such a feature.
* score: Mark as no returnSebastian Huber2013-05-311-5/+7
| | | | Mark rtems_smp_secondary_cpu_initialize() as no return.
* score: Remove idle field of Per_CPU_ControlSebastian Huber2013-05-311-5/+0
| | | | | | This field is unused except for special case simulator clock drivers. In these places use an alternative. Add and use _Thread_Set_global_exit_status() and _Thread_Get_global_exit_status().
* smp: Simplify SMP initialization sequenceSebastian Huber2013-05-293-30/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete bsp_smp_wait_for(). Other parts of the system work without timeout, e.g. the spinlocks. Using a timeout here does not make the system more robust. Delete bsp_smp_cpu_state and replace it with Per_CPU_State. The Per_CPU_State follows the Score naming conventions. Add _Per_CPU_Change_state() and _Per_CPU_Wait_for_state() functions to change and observe states. Use Per_CPU_State in Per_CPU_Control instead of the anonymous integer. Add _CPU_Processor_event_broadcast() and _CPU_Processor_event_receive() functions provided by the CPU port. Use these functions in _Per_CPU_Change_state() and _Per_CPU_Wait_for_state(). Add prototype for _SMP_Send_message(). Delete RTEMS_BSP_SMP_FIRST_TASK message. The first context switch is now performed in rtems_smp_secondary_cpu_initialize(). Issuing the first context switch in the context of the inter-processor interrupt is not possible on systems with a modern interrupt controller. Such an interrupt controler usually requires a handshake protocol with interrupt acknowledge and end of interrupt signals. A direct context switch in an interrupt handler circumvents the interrupt processing epilogue and may leave the system in an inconsistent state. Release lock in rtems_smp_process_interrupt() even if no message was delivered. This prevents deadlock of the system. Simplify and format _SMP_Send_message(), _SMP_Request_other_cores_to_perform_first_context_switch(), _SMP_Request_other_cores_to_dispatch() and _SMP_Request_other_cores_to_shutdown().
* smp: Delete bsp_smp_secondary_cpu_initialize()Sebastian Huber2013-05-291-18/+19
| | | | | | | Do not call bsp_smp_secondary_cpu_initialize() in rtems_smp_secondary_cpu_initialize(). This allows more flexibilty in the BSP low-level code. Specify context requirements for a call to rtems_smp_secondary_cpu_initialize().
* smp: Delete rtems_smp_send_message()Sebastian Huber2013-05-291-15/+0
|
* smp: Delete rtems_smp_initialize_per_cpu()Sebastian Huber2013-05-291-10/+0
|
* smp: Simplify main CPU initializationSebastian Huber2013-05-291-10/+13
| | | | | | Call _SMP_Handler_initialize() later and move bsp_smp_initialize() into _SMP_Handler_initialize(). Change bsp_smp_initialize() prototype to match integer types of calling context.
* smp: Make CPU_ALLOCATE_INTERRUPT_STACK optionalSebastian Huber2013-05-291-4/+0
|
* smp: Include missing headerSebastian Huber2013-05-291-0/+2
|
* smp: Add maximum_processors field to configSebastian Huber2013-05-161-8/+0
| | | | | | | Delete rtems_configuration_get_smp_maximum_processors(). Delete rtems_configuration_smp_maximum_processors variable. Add maximum_processors field to rtems_configuration_table if RTEMS_SMP is defined. Add rtems_configuration_get_maximum_processors().
* Implement a generic atomic ops for all UP mode architectures with ↵WeiY2013-05-011-0/+274
| | | | disable/enable-IRQ function simulated.
* Include <stdint.h>Ralf Corsépius2013-02-141-0/+2
|
* score: Add and use rtems_assert_contextSebastian Huber2013-02-121-1/+3
|
* score: atomic support for RTEMS. Generic atomic operations API definition.WeiY2013-02-072-0/+337
|
* cpukit: Fix many Doxygen warningsJoel Sherrill2013-01-109-26/+33
|
* cpukit: Use Consistent Beginning of Doxygen Group NotationJoel Sherrill2013-01-106-17/+9
| | | | | This is the result of a sed script which converts all uses of @{ into a consistent form.
* cpukit: Add EOL on files missing EOL at EOFJoel Sherrill2013-01-1038-38/+38
|
* cpukit: Doxygen group fixes and many warnings addressedJoel Sherrill2013-01-1012-45/+31
| | | | | | | The output of the modules.html is much improved. Most filesystem and POSIX API related groups are properly nested. Some formatting issues were addressed as were multiple inconsistencies.
* score: Doxygen Clean Up Task #3Mathew Kallada2013-01-0415-157/+218
|
* score: Add const qualifierSebastian Huber2013-01-021-4/+4
|
* score: Do not inline _RBTree_Find_unprotected()Sebastian Huber2013-01-021-1/+15
| | | | | This function is to big to inline. It leads also to test case explosion.
* score: Doxygen Clean Up Task #1Mathew Kallada2012-12-2920-169/+244
|
* score: Doxygen Clean Up Task #2Mathew Kallada2012-12-2819-258/+324
|
* Header File Doxygen Enhancement Task #1Alex Ivanov2012-12-281-4/+6
|
* Header File Doxygen Enhancement Task #7Mathew Kallada2012-12-281-8/+10
|
* score: Add _Objects_Active_count()Sebastian Huber2012-12-211-0/+11
|
* score: Add rtems_chain_node_count_unprotected()Sebastian Huber2012-12-211-0/+12
|
* Fix spellingSebastian Huber2012-12-141-1/+1
|
* misc: Header File Doxygen Enhancement Task #3Mathew Kallada2012-12-121-1/+3
| | | | http://www.google-melange.com/gci/task/view/google/gci2012/8006220
* sapi misc: Clean up Doxygen GCI task #1Christopher Kerl2012-12-071-3/+5
| | | | http://www.google-melange.com/gci/task/view/google/gci2012/8011204
* score: Add API extensions post switch listSebastian Huber2012-12-051-15/+44
| | | | | | | | Move post switch hook from API_extensions_Control to new API_extensions_Post_switch_control. Rename _API_extensions_Run_postswitch() in _API_extensions_Run_post_switch(). Add _API_extensions_Post_switch_list and _API_extensions_Add_post_switch().
* score misc: Score misc: Clean up Doxygen #11 (GCI 2012)Daniel Georgiev2012-12-018-0/+25
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. http://www.google-melange.com/gci/task/view/google/gci2012/8013204
* score misc: Score misc: Clean up Doxygen #10 (GCI 2012)Christopher Kerl2012-12-0111-48/+92
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. http://www.google-melange.com/gci/task/view/google/gci2012/7983216
* score misc: Score misc: Clean up Doxygen #9 (GCI 2012)Alex Ivanov2012-11-309-56/+71
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. https://google-melange.appspot.com/gci/task/view/google/gci2012/7977211
* Score misc: Clean up Doxygen #8 (GCI 2012)Mathew Kallada2012-11-294-11/+25
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. http://www.google-melange.com/gci/task/view/google/gci2012/7970221
* score misc: Score misc: Clean up Doxygen #7 (GCI 2012)Alex Ivanov2012-11-297-4/+47
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. https://google-melange.appspot.com/gci/task/view/google/gci2012/7986214
* score misc: Score misc: Clean up Doxygen #6 (GCI 2012)Christopher Kerl2012-11-299-25/+57
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. http://www.google-melange.com/gci/task/view/google/gci2012/7976215
* score misc: Score misc: Clean up Doxygen #5Alex Ivanov2012-11-299-6/+66
|
* score: DocumentationSebastian Huber2012-11-291-12/+7
|
* Score misc: Clean up Doxygen #4 (GCI 2012)Alexandre Devienne2012-11-289-14/+100
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. http://www.google-melange.com/gci/task/view/google/gci2012/7985215
* score misc: Clean up Doxygen #3 (GCI 2012)Alex Ivanov2012-11-287-1/+34
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. http://www.google-melange.com/gci/task/view/google/gci2012/7982215
* score misc: Clean up Doxygen #2 (GCI 2012)Christopher Kerl2012-11-289-14/+51
| | | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. http://www.google-melange.com/gci/task/view/google/gci2012/7986213
* score misc: Clean up Doxygen (GCI 2012)Alex Ivanov2012-11-288-26/+66
| | | | | | This patch is a task from GCI 2012 which improves the Doxygen comments in the RTEMS source. https://google-melange.appspot.com/gci/task/view/google/gci2012/7978208
* score: Add CPU_Exception_frameSebastian Huber2012-11-271-3/+3
| | | | | | | | | | | | | | | | | | | | | Add CPU port type CPU_Exception_frame and function _CPU_Exception_frame_print(). The CPU ports of avr, bfin, h8300, lm32, m32c, m32r, m68k, nios2, sh, sparc64, and v850 use an empty default implementation of _CPU_Exception_frame_print(). Add rtems_exception_frame and rtems_exception_frame_print(). Add RTEMS_FATAL_SOURCE_EXCEPTION for CPU exceptions. Use rtems_fatal() with source RTEMS_FATAL_SOURCE_EXCEPTION in CPU ports of i386, powerpc, and sparc for unexpected exceptions. Add third parameter to RTEMS_BSP_CLEANUP_OPTIONS() which controls the BSP_PRINT_EXCEPTION_CONTEXT define used in the default bsp_fatal_extension(). Add test sptests/spfatal26.
* score: PR1607: Add and use CPU_SIZEOF_POINTERSebastian Huber2012-11-221-4/+4
| | | | | | | | | | | | | | | | | Add and use new CPU port define CPU_SIZEOF_POINTER. It must be an integer literal that can be used by the assembler. This value will be used to calculate offsets of structure members. These offsets will be used in assembler code. The size of a pointer is part of the application binary interface (ABI) and thus independent of the actual programming language. The compiler will provide defines to determine the current ABI. We use these defines to select the appropriate CPU_SIZEOF_POINTER value. Static assertions in the new file "cpukit/score/src/percpuasm.c" will ensure that the value of CPU_SIZEOF_POINTER is consistent with the current compiler settings. Also the offset values used by assembler code are verfied.
* score: Inline _API_extensions_Run_postswitch()Sebastian Huber2012-11-221-1/+15
| | | | | The _API_extensions_Run_postswitch() function is only used in _Thread_Dispatch(). Avoid superfluous load of _Thread_Executing.
* score: Inline _User_extensions_Thread_switch()Sebastian Huber2012-11-221-2/+16
| | | | | The _User_extensions_Thread_switch() function is only used in _Thread_Dispatch().
* score: Add and use <rtems/score/userextimpl.h>Sebastian Huber2012-11-222-195/+235
| | | | | This file contains the parts of <rtems/score/userext.h> that are only necessary for the RTEMS implementation.
* score: Change _Internal_error_Occurred()Sebastian Huber2012-11-221-8/+23
| | | | | | | Call the fatal handlers of the user extensions before the update of _Internal_errors_What_happened. This reduces the requirements on the execution context further. Now a valid read-write data is only required after the call to the fatal handlers.