summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* score: Remove idle field of Per_CPU_ControlSebastian Huber2013-05-311-5/+6
| | | | | | 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: Move secondary CPU initialization requestSebastian Huber2013-05-291-6/+0
| | | | | Do not assume that the scheduler selects the main processor for the initialization thread.
* smp: Use _CPU_Fatal_halt()Sebastian Huber2013-05-291-2/+2
|
* smp: Simplify SMP initialization sequenceSebastian Huber2013-05-292-159/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-3/+0
| | | | | | | 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: Simplify main CPU initializationSebastian Huber2013-05-291-2/+10
| | | | | | 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-9/+13
|
* smp: Rely on BSS initializationSebastian Huber2013-05-291-5/+0
| | | | | | The _Per_CPU_Information is part of the BSS segment and must be zero initialized. Some processors may already poll some per-CPU fields and wait for a state change at this point.
* score: use reference with strict mutexGedare Bloom2013-05-181-1/+1
|
* smp: Add maximum_processors field to configSebastian Huber2013-05-162-2/+2
| | | | | | | 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().
* PR2090: Fix warning in threadqdequeuepriority.cAndreas Heinig2013-02-261-0/+1
|
* score: use new alignment routine in object extend information.Gedare Bloom2013-02-121-12/+16
|
* PR1560: _Objects_Extend_information improper alignmentGedare Bloom2013-02-111-5/+18
| | | | | | _Objects_Extend_information uses a sizeof(uint32_t) offset that leads to improper alignment in case the CPU (actually, heap) alignment is 8 or higher. The problem is solved by adding enough padding to align the sub-tables.
* score: Fix _Objects_Shrink_information()Sebastian Huber2013-01-071-20/+16
| | | | The chain iteration was wrong. The chain tail is not an object.
* score: Add const qualifierSebastian Huber2013-01-021-4/+4
|
* score: Do not inline _RBTree_Find_unprotected()Sebastian Huber2013-01-021-0/+24
| | | | | This function is to big to inline. It leads also to test case explosion.
* score: Add _Objects_Active_count()Sebastian Huber2012-12-211-0/+29
|
* score: Add rtems_chain_node_count_unprotected()Sebastian Huber2012-12-211-0/+34
|
* score: Add API extensions post switch listSebastian Huber2012-12-052-2/+13
| | | | | | | | 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: Critical fix for timer serverSebastian Huber2012-12-051-7/+0
| | | | | | | | Under certain conditions it is possible that a call to _Watchdog_Adjust_to_chain() happens with a unit parameter value of zero (for example sptests/spintrcritical17). Remove superfluous checks that prevent an adjust to a chain of a watchdog chain which first element has a delta zero value.
* score misc: Score misc: Clean up Doxygen #11 (GCI 2012)Daniel Georgiev2012-12-0120-207/+119
| | | | | | | 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-0120-144/+148
| | | | | | | 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-3012-106/+81
| | | | | | | 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-2920-84/+131
| | | | | | | 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-2920-183/+137
| | | | | | | 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-2920-141/+154
| | | | | | | 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-2920-223/+133
|
* Score misc: Clean up Doxygen #4 (GCI 2012)Alexandre Devienne2012-11-2820-279/+129
| | | | | | | 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-2819-137/+131
| | | | | | | 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-2820-160/+150
| | | | | | | 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-2820-194/+133
| | | | | | 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: PR1607: Add and use CPU_SIZEOF_POINTERSebastian Huber2012-11-221-0/+59
| | | | | | | | | | | | | | | | | 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-222-20/+1
| | | | | 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-40/+0
| | | | | The _User_extensions_Thread_switch() function is only used in _Thread_Dispatch().
* score: Add and use <rtems/score/userextimpl.h>Sebastian Huber2012-11-2224-28/+12
| | | | | 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-2/+1
| | | | | | | 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.
* score: Delete nest level from internal error stateSebastian Huber2012-11-221-2/+0
| | | | This reverts commit 7d0bdcac1ac20d6f22b24689c16e6aa7bc3c1e40.
* score: Add and use _TOD_Get_with_nanoseconds()Sebastian Huber2012-11-212-67/+9
| | | | Delete _TOD_Get_as_timestamp().
* score: Add _Timestamp_To_timeval()Sebastian Huber2012-11-211-0/+29
|
* score: Add nest level to interal error stateSebastian Huber2012-11-151-0/+2
| | | | | Add Internal_errors_Information::nest_level. This helps to detect recursive calls to _Internal_error_Occurred().
* score: Move global variables definitionSebastian Huber2012-11-131-0/+4
| | | | | Define _System_state_Current and _Internal_errors_What_happened in interr.c to make _Internal_error_Occurred() more independent.
* score: Statically initialize user extensionsSebastian Huber2012-11-132-28/+50
| | | | | | | | | The initial extensions remain now in a read-only table and will not be copied to work space memory. The extension chains are statically initialized. This makes it possible to call _User_extensions_Iterate() independent of the system state. It is now guaranteed that the fatal callout of the initial extensions will be called provided the stack pointer, the read-only data, and code memory are valid.
* score: Add and use _User_extensions_Iterate()Sebastian Huber2012-11-136-261/+133
| | | | | | | Replace the separate user extension iterations with a single iteration function. This reduces code size and improves maintainability since the iteration logic is only in one function. The runtime overhead is insignificant.
* sapi: Make initial user extensions table read-onlySebastian Huber2012-11-071-4/+4
|
* sapi: Use rtems_configuration_get_idle_taskSebastian Huber2012-11-071-1/+1
|
* sapi: Use rtems_*_get_number_of_initial_extensionsSebastian Huber2012-11-071-1/+1
|
* sapi: Use rtems_config*_get_user_extension_tableSebastian Huber2012-11-071-1/+1
|
* sapi: Use rtems_config*_get_idle_task_stack_sizeSebastian Huber2012-11-071-1/+1
|
* sapi: Use rtems_config*_get_interrupt_stack_sizeSebastian Huber2012-11-072-15/+18
|
* score: Work area initialization API changeSebastian Huber2012-10-251-13/+54
| | | | | | | | | | | | The work areas (RTEMS work space and C program heap) will be initialized now in a separate step and are no longer part of rtems_initialize_data_structures(). Initialization is performed with tables of Heap_Area entries. This allows usage of scattered memory areas present on various small scale micro-controllers. The sbrk() support API changes also. The bsp_sbrk_init() must now deal with a minimum size for the first memory chunk to take the configured work space size into account.