summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* score: Append to free list in _Heap_Extend()Sebastian Huber2012-10-251-1/+10
|
* score: Change _Heap_Extend() APISebastian Huber2012-10-253-13/+46
| | | | | | | | | | | | | | The _Heap_Extend() has now the same signature as _Heap_Initialize(). The 4th parameter is ignored (page size in _Heap_Initialize()). Add Heap_Area and Heap_Initialization_or_extend_handler. Add and test _Heap_No_extend(). This helps to do a table based heap initialization and extension. Create a table of Heap_Area elements and iterate through it. Set the handler to _Heap_Initialize() in the first iteration and then to _Heap_Extend().
* score: Use _Workspace_Allocate_or_fatal_error()Sebastian Huber2012-10-151-5/+8
| | | | | | Use _Workspace_Allocate_or_fatal_error() consistently in case auto extend is turned off. This helps to avoid undefined behaviour in _API_Mutex_Allocate() in case _API_Mutex_Information() fails.
* threadqextractwithproxy.c: Doxygen header and spacingJoel Sherrill2012-10-111-15/+14
|
* score: Critical fix for thread dispatchingSebastian Huber2012-10-071-4/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The changes in _Thread_Dispatch() of commits dad36c52b8be5d7b46bc7af85655055db7208652 and d4dc7c8196355f08044e67a3f5c1e19485f17ff1 introduced a severe bug which destroys the real-time properties of RTEMS completely. Consider the following scenario. We have three tasks L (lowest priority), M (middle priority), and H (highest priority). Now let a thread dispatch from M to L happen. An interrupt occurs in _Thread_Dispatch() here: void _Thread_Dispatch( void ) { [...] post_switch: _ISR_Enable( level ); <-- INTERRUPT <-- AFTER INTERRUPT _Thread_Unnest_dispatch(); _API_extensions_Run_postswitch(); } The interrupt event makes task H ready. The interrupt code will see _Thread_Dispatch_disable_level > 0 and thus doesn't perform a _Thread_Dispatch(). Now we return to position "AFTER INTERRUPT". This means task L executes now although task H is ready! Task H will execute once someone calls _Thread_Dispatch().
* threaddispatch.c: Fix typoJoel Sherrill2012-10-021-1/+1
|
* coremsg.c: Clean up and comment improvementJoel Sherrill2012-08-311-7/+13
| | | | | | | | This code was reviewed as part of coverage analysis improvements. The uncovered range had unclear documentation and the code itself was also cleaned up to be easier to understand. Author: Krzysztof Mięsowicz <krzysztof.miesowicz@gmail.com>
* PR2069: Similar. Forgot to add missing file.Andreas Heinig2012-08-061-0/+38
|
* score: Change greedy allocation APISebastian Huber2012-07-171-8/+25
|
* score: Fix performance issue for 64-bit timestampsSebastian Huber2012-06-142-7/+13
| | | | | | | | | | | | | The 64-bit timestamps were introduced to simplify the timestamp calculations. This works well since nearly all operations are additions. The previous _TOD_Tickle_ticks() implementation had a serious performance regression in case of 64-bit timestamps due to the usage of two 64-bit divisions which are quite expensive on some architectures. A new field seconds_trigger in TOD_Control is introduced to trigger the _Watchdog_Tickle_seconds() in _TOD_Tickle_ticks(). This avoids the 64-bit divisions completely and only 32-bit additions are used.
* score: New structure TOD_ControlSebastian Huber2012-06-145-11/+11
| | | | | Group the global TOD variables (_TOD_Now, _TOD_Uptime, and _TOD_Is_set) in a structure to reduce address loads in _TOD_Tickle_ticks().