summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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().
* isr.c: Do not call _CPU_Initialize_vectors() if PIC Interrupt ModelJoel Sherrill2012-06-111-5/+8
|
* threadhandler.c: Fix spelling of __main() in prototypeJoel Sherrill2012-06-111-5/+8
|
* Fix C files which had two semi-colons at EOLJoel Sherrill2012-05-312-2/+2
|
* PR2065: RBTree: Insert function (protected) does not enable interruptsGedare Bloom2012-05-131-2/+4
| | | | | Save the return value from the unprotected version and return it after enabling interrupts to their previous level.
* Remove CVS Id Strings (manual edits after script)Joel Sherrill2012-05-111-4/+0
| | | | | | These modifications were required by hand after running the script. In some cases, the file names did not match patterns. In others, the format of the file did not match any common patterns.
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-11241-482/+0
| | | | | | | | | | | | Script does what is expected and tries to do it as smartly as possible. + remove occurrences of two blank comment lines next to each other after Id string line removed. + remove entire comment blocks which only exited to contain CVS Ids + If the processing left a blank line at the top of a file, it was removed.
* rbtree: API changes. Remove rbtree control node from RBTree_Next.Gedare Bloom2012-05-083-11/+8
| | | | | | | | | | | | The implementation of RBTree_Next was using an awkward construction to detect and avoid accessing the false root of the red-black tree. To deal with the false root, RBTree_Next was comparing node parents with the control node. Instead the false root can be detected by checking if the grandparent of a node exists; the grandparent of the tree's true root is NULL by definition so the root of the tree is found while walking up the tree by checking for the non-existence of a grandparent. This change propagates into the predecessor/successor and iterate functions.
* PR2061: RBTree: updating min and max on insert with duplicatesGedare Bloom2012-05-081-1/+6
| | | | | | | When inserting to a red-black tree with duplicates the min and max pointers are not updated properly. We need to check the key of the min/max node against the insert node since the insert point could be the child of a node with an identical key to the min/max node.
* PR2060: RBTree: updating min and max on extract pathGedare Bloom2012-05-081-17/+9
| | | | | | During node extraction from a red-black tree the min and max values are updated incorrectly. We need to use the successor/predecessor functions to find the next/previous node when we remove the min/max from the tree.
* score/rbtree: eliminate unused function _RBTree_Peek.Gedare Bloom2012-05-081-49/+0
|
* rbtree: API ChangesGedare Bloom2012-05-081-1/+1
| | | | | Make default for rtems_rbtree functions be unprotected (preemption enabled) unless an unprotected variant e.g. rtems_rbtree_xxx_unprotected is available.
* score/rbtree: replace _RBTree_Peek_unprotected with _RBTree_First.Gedare Bloom2012-05-081-4/+2
|