summaryrefslogtreecommitdiffstats
path: root/cpukit/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Add RTEMS_FATAL_SOURCE_STACK_CHECKERSebastian Huber2012-11-151-0/+7
|
* score: Add RTEMS_FATAL_SOURCE_ASSERTSebastian Huber2012-11-151-0/+7
|
* score: Add RTEMS_FATAL_SOURCE_BSP_SPECIFICSebastian Huber2012-11-151-0/+7
|
* score: Add RTEMS_FATAL_SOURCE_BSP_GENERICSebastian Huber2012-11-151-0/+10
|
* score: Add RTEMS_FATAL_SOURCE_EXITSebastian Huber2012-11-151-0/+7
| | | | | | | Include <bsp/default-initial-extension.h> in all BSPs. Call rtems_fatal() with RTEMS_FATAL_SOURCE_EXIT as source and the exit() status code as fatal code in every bsp_cleanup(). Move previous bsp_cleanup() code into bsp_fatal_extension().
* score: Add RTEMS_FATAL_SOURCE_APPLICATIONSebastian Huber2012-11-151-0/+7
|
* score: Add RTEMS_FATAL_SOURCE_BDBUFSebastian Huber2012-11-151-0/+7
| | | | | | Add rtems_bdbuf_fatal_code as a replacement for the previous fatal error codes. Remove unused error codes. Add new error codes. Use rtems_fatal() with RTEMS_FATAL_SOURCE_BDBUF as source.
* score: Add RTEMS_FATAL_SOURCE_LASTSebastian Huber2012-11-151-2/+10
| | | | | This enum value ensures that the enum type needs at least 32-bits for architectures with short enums.
* score: Add INTERNAL_ERROR_CPU_ISR_INSTALL_VECTORSebastian Huber2012-11-153-1/+36
| | | | | Use INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR on PowerPC for _CPU_ISR_install_vector().
* score: Add nest level to interal error stateSebastian Huber2012-11-152-0/+9
| | | | | Add Internal_errors_Information::nest_level. This helps to detect recursive calls to _Internal_error_Occurred().
* score: DocumentationSebastian Huber2012-11-151-3/+10
|
* powerpc: Delete _CPU_Install_interrupt_stack()Sebastian Huber2012-11-141-11/+0
| | | | This function is only used if CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE.
* score: Fix per CPU member offsetsSebastian Huber2012-11-131-65/+47
| | | | | | | | Offset calculation was wrong for 16-bit and 64-bit pointer targets. Remove unused offsets. Move Per_CPU_Control::dispatch_necessary after Per_CPU_Control::isr_nest_level. Move SMP members to end of structure. All assembler relevant members are now at the structure beginning.
* score: Move global variables definitionSebastian Huber2012-11-133-2/+6
| | | | | 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-133-30/+52
| | | | | | | | | 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-138-283/+260
| | | | | | | 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.
* score: Add and use RTEMS_ARRAY_SIZE()Sebastian Huber2012-11-131-0/+2
|
* 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: Support static_assert and _Static_assertSebastian Huber2012-11-061-2/+10
|
* rtems: Add system eventsSebastian Huber2012-10-302-0/+18
| | | | | | | System events are similar to normal events. They offer a second set of events. These events are intended for internal RTEMS use and should not be used by applications (with the exception of the transient system event).
* score: Work area initialization API changeSebastian Huber2012-10-255-33/+95
| | | | | | | | | | | | 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-252-1/+23
|
* score: Change _Heap_Extend() APISebastian Huber2012-10-255-20/+100
| | | | | | | | | | | | | | 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
|
* score/thread.h: Move Thread_CPU_usage_t definition downJoel Sherrill2012-10-021-12/+12
| | | | At the previous location, uint32_t was not available.
* score/percpu.h: _Thread_Time_of_last_context_switch always availableJoel Sherrill2012-10-021-5/+2
| | | | This field is used whether ticks are used for statistics or not.
* score/tod.h: Fix formattingJoel Sherrill2012-10-021-2/+2
|
* mips/idtcpu.h: Fix nested comment warningJoel Sherrill2012-09-051-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
|
* PR2069: [CBS Scheduler] Memory leak and enqueue problemAndreas Heinig2012-08-062-1/+13
| | | | | | | Due to the fact that CBS extends the EDF scheduler, most parts of EDF are reused. One part is the allocation of the per-thread data. However, the CBS per-thread structure defines a further element (while including the rest of Scheduler_EDF_Per_thread)
* score: Change greedy allocation APISebastian Huber2012-07-172-11/+30
|
* score: Fix performance issue for 64-bit timestampsSebastian Huber2012-06-145-62/+22
| | | | | | | | | | | | | 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-146-32/+35
| | | | | Group the global TOD variables (_TOD_Now, _TOD_Uptime, and _TOD_Is_set) in a structure to reduce address loads in _TOD_Tickle_ticks().
* v850 - byte swap instructions not available on all multilibsJoel Sherrill2012-06-122-7/+33
|
* v850 port: Initial addition with BSP for simulator in GDBJoel Sherrill2012-06-1110-0/+1925
| | | | | | | | | | | | | | | | | | Port + v850 does not have appear to have any optimized bit scan instructions + v850 does have single instructions for wap u16 and u32 + Code path optimization preferences set + Add BSP variants for each GCC CPU model flag and a README - v850e1 variant does not work (fails during BSP initialization) BSP for GDB v850 Simulator + linkcmds matches defaults in GDB simulator with RTEMS mods + crt1.c added from v850 newlib port for __main() + BSP exits cleanly + printk and console I/O work + uses clock tick from IDLE task + Tests not requiring real clock ISR work Documentation + CPU Supplment chapter for v850 added
* powerpc/cpu.h: Define CPU_SIMPLE_VECTORED_INTERRUPTS and remove ↵Joel Sherrill2012-06-111-2/+14
| | | | _CPU_ISR_Initialize
* mips/cpu.h: Define CPU_SIMPLE_VECTORED_INTERRUPTS and remove _CPU_ISR_InitializeJoel Sherrill2012-06-111-7/+2
|
* i386/cpu.h: Define CPU_SIMPLE_VECTORED_INTERRUPTS and remove _CPU_ISR_InitializeJoel Sherrill2012-06-111-2/+14
|
* arm/cpu.h: Define CPU_SIMPLE_VECTORED_INTERRUPTS and remove _CPU_ISR_InitializeJoel Sherrill2012-06-111-2/+5
|
* 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
|