summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/no_cpu/rtems/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* smp: New SMP lock APISebastian Huber2013-05-311-0/+114
| | | | | | | | | | | | | | 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.
* smp: Simplify SMP initialization sequenceSebastian Huber2013-05-291-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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().
* score: Add CPU context validationSebastian Huber2013-05-101-0/+31
|
* cpukit: Use Consistent Beginning of Doxygen Group NotationJoel Sherrill2013-01-101-4/+4
| | | | | This is the result of a sed script which converts all uses of @{ into a consistent form.
* score: Doxygen Clean Up Task #5Alex Ivanov2013-01-023-669/+708
|
* score: Add CPU_Exception_frameSebastian Huber2012-11-271-0/+22
| | | | | | | | | | | | | | | | | | | | | 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-0/+9
| | | | | | | | | | | | | | | | | 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.
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-114-8/+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.
* no_cpu: replace no_cpu_isr with rtems_isrGedare Bloom2012-04-161-6/+0
|
* 2011-09-22 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber2011-09-221-0/+70
| | | | | | PR 1914/cpukit * rtems/score/cpu.h: Document CPU_TIMESTAMP_USE_STRUCT_TIMESPEC, CPU_TIMESTAMP_USE_INT64, and CPU_TIMESTAMP_USE_INT64_INLINE.
* 2010-10-21 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2010-10-211-1/+1
| | | | | | * rtems/score/cpu.h: Add RTEMS_COMPILER_NO_RETURN_ATTRIBUTE to _CPU_Context_restore() because it does not return. Telling GCC this avoids generation of dead code.
* 2010-07-29 Gedare Bloom <giddyup44@yahoo.com>Joel Sherrill2010-07-292-2/+2
| | | | | | | | | | | PR 1635/cpukit * rtems/score/cpu.h, rtems/score/types.h: Refactoring of priority handling, to isolate the bitmap implementation of priorities in the supercore so that priority management is a little more modular. This change is in anticipation of scheduler implementations that can select how they manage tracking priority levels / finding the highest priority ready task. Note that most of the changes here are simple renaming, to clarify the use of the bitmap-based priority management.
* 2010-07-16 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber2010-07-162-6/+3
| | | | | * rtems/score/cpu.h: Include <rtems/score/types.h> first. * rtems/score/types.h: Use <rtems/score/basedefs.h> header file.
* 2010-06-28 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2010-06-291-14/+0
| | | | | | | | PR 1573/cpukit * cpu_asm.c, rtems/score/cpu.h: Add a per cpu data structure which contains the information required by RTEMS for each CPU core. This encapsulates information such as thread executing, heir, idle and dispatch needed.
* Whitespace removal.Ralf Corsepius2009-12-022-27/+27
|
* 2009-02-12 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2009-02-121-1/+1
| | | | | * cpu.c, rtems/score/cpu.h: Change prototype of IDLE thread to consistently return void * and take a uintptr_t argument.
* 2009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2009-02-111-21/+1
| | | | | | * cpu.c, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and passing address of _Thread_Dispatch to _CPU_Initialize. Clean up comments.
* #include <stdint.h> instead of <rtems/stdint.h>.Ralf Corsepius2008-12-111-1/+1
|
* 2008-10-02 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2008-10-022-7/+1
| | | | | * cpu_asm.c, rtems/score/cpu.h, rtems/score/types.h: Corrections and updates.
* 2008-09-11 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2008-09-111-8/+6
| | | | | * rtems/score/types.h: Do not define boolean, single_precision, double_precision unless RTEMS_DEPRECATED_TYPES is given.
* Include stdbool.h. Use bool as base-type for boolean.Ralf Corsepius2008-08-211-1/+2
|
* 2008-07-31 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2008-07-311-1/+1
| | | | * cpu.c, rtems/score/cpu.h: Correct prototype of Idle threads.
* 2008-06-05 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2008-06-051-0/+13
| | | | | | | | * rtems/score/cpu.h: Add CPU_SIMPLE_VECTORED_INTERRUPTS porting parameter to indicate that the port uses the Simple Vectored Interrupt model or the Programmable Interrupt Controller Model. The PIC model is implemented primarily in the BSP and it is responsible for all memory allocation.
* 2008-01-29 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2008-01-291-1/+11
| | | | * rtems/score/cpu.h: Remove most doxygen warnings.
* 2007-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2007-12-171-0/+8
| | | | * rtems/score/cpu.h: Add _CPU_Context_Get_SP() for stack check utility.
* 2007-12-11 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2007-12-111-2/+2
| | | | * rtems/score/cpu.h: Style.
* 2007-12-10 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2007-12-101-1/+0
| | | | * rtems/score/cpu.h: Fix Doxygen.
* 2007-12-04 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2007-12-041-19/+0
| | | | | | * cpu.c, rtems/score/cpu.h: Move interrupt_stack_size field from CPU Table to Configuration Table. Eliminate CPU Table from all ports. Delete references to CPU Table in all forms.
* 2007-12-03 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2007-12-031-54/+0
| | | | | | | | | * rtems/score/cpu.h: Moved most of the remaining CPU Table fields to the Configuration Table. This included pretasking_hook, predriver_hook, postdriver_hook, idle_task, do_zero_of_workspace, extra_mpci_receive_server_stack, stack_allocate_hook, and stack_free_hook. As a side-effect of this effort some multiprocessing code was made conditional and some style clean up occurred.
* Use Context_Control_fp* instead of void* for fp_contexts.Ralf Corsepius2007-04-171-3/+3
| | | | Eliminate evil casts.
* 2006-11-17 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2006-11-171-6/+0
| | | | * rtems/score/types.h: Remove unsigned64, signed64.
* 2006-01-16 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2006-01-162-47/+58
| | | | | | | * rtems/asm.h, rtems/score/cpu.h, rtems/score/types.h: Part of a large patch to improve Doxygen output. As a side-effect, grammar and spelling errors were corrected, spacing errors were address, and some variable names were improved.
* 2005-11-08 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius2005-11-081-2/+2
| | | | * rtems/score/types.h: Eliminate unsigned16, unsigned32.
* Header guards cleanup.Ralf Corsepius2005-02-041-1/+1
|
* New header guard.Ralf Corsepius2005-01-284-8/+8
|
* 2005-01-24 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius2005-01-241-6/+0
| | | | | * rtems/score/types.h: Remove signed8, signed16, signed32, unsigned8, unsigned16, unsigned32.
* 2005-01-24 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius2005-01-241-2/+2
| | | | * rtems/score/cpu.h: *_swap_u32( uint32_t ).
* 2005-01-24 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius2005-01-241-0/+2
| | | | * rtems/score/types.h: #include <rtems/stdint.h>.
* Cosmetics.Ralf Corsepius2004-11-212-2/+0
|
* 2004-11-21 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius2004-11-211-2/+2
| | | | | * rtems/score/types.h: Use __rtems_score_types_h as preprocessor guard.
* 2004-10-02 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius2004-11-023-6/+14
| | | | | | * rtems/score/cpu.h: Add doxygen preamble. * rtems/score/cpu_asm.h: Add doxygen preamble. * rtems/score/types.h: Add doxygen preamble.
* 2004-11-01 Joel Sherrill <joel@oarcorp.com>Joel Sherrill2004-11-011-291/+472
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * score/cpu/no_cpu/rtems/score/cpu.h, score/include/rtems/debug.h, score/include/rtems/seterr.h, score/include/rtems/system.h, score/include/rtems/score/address.h, score/include/rtems/score/apiext.h, score/include/rtems/score/apimutex.h, score/include/rtems/score/bitfield.h, score/include/rtems/score/chain.h, score/include/rtems/score/context.h, score/include/rtems/score/copyrt.h, score/include/rtems/score/coremsg.h, score/include/rtems/score/coremutex.h, score/include/rtems/score/coresem.h, score/include/rtems/score/heap.h, score/include/rtems/score/interr.h, score/include/rtems/score/isr.h, score/include/rtems/score/mpci.h, score/include/rtems/score/mppkt.h, score/include/rtems/score/objectmp.h, score/include/rtems/score/priority.h, score/include/rtems/score/stack.h, score/include/rtems/score/states.h, score/include/rtems/score/sysstate.h, score/include/rtems/score/thread.h, score/include/rtems/score/threadmp.h, score/include/rtems/score/threadq.h, score/include/rtems/score/tod.h, score/include/rtems/score/tqdata.h, score/include/rtems/score/userext.h, score/include/rtems/score/watchdog.h, score/include/rtems/score/wkspace.h, score/inline/rtems/score/address.inl, score/inline/rtems/score/chain.inl, score/inline/rtems/score/coremsg.inl, score/inline/rtems/score/coremutex.inl, score/inline/rtems/score/coresem.inl, score/inline/rtems/score/heap.inl, score/inline/rtems/score/isr.inl, score/inline/rtems/score/mppkt.inl, score/inline/rtems/score/objectmp.inl, score/inline/rtems/score/priority.inl, score/inline/rtems/score/stack.inl, score/inline/rtems/score/states.inl, score/inline/rtems/score/sysstate.inl, score/inline/rtems/score/thread.inl, score/inline/rtems/score/threadmp.inl, score/inline/rtems/score/tod.inl, score/inline/rtems/score/tqdata.inl, score/inline/rtems/score/userext.inl, score/inline/rtems/score/watchdog.inl, score/inline/rtems/score/wkspace.inl: Add Doxygen comments -- working modifications which are not complete and may have broken code. Committing so work and testing can proceed. * score/Doxyfile, score/mainpage.h: New files.
* 2004-09-29 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2004-09-291-4/+1
| | | | * rtems/score/cpu.h: i960 obsoleted and all references removed.
* 2004-03-30 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius2004-03-301-11/+11
| | | | * cpu.c, rtems/score/cpu.h: Convert to using c99 fixed size types.
* Unused.Ralf Corsepius2004-03-081-2/+0
|
* 2003-09-26 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2003-09-261-4/+9
| | | | | * rtems/score/cpu.h: Obsoleting HP PA-RISC port and removing all references.
* 2003-09-04 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2003-09-044-4/+4
| | | | | * cpu.c, cpu_asm.c, rtems/score/cpu.h, rtems/score/cpu_asm.h, rtems/score/no_cpu.h, rtems/score/types.h: URL for license changed.
* 2001-04-03 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2002-04-031-1/+1
| | | | | | | * Per PR94, all rtems/score/CPUtypes.h are named rtems/score/types.h. * rtems/score/no_cputypes.h: Removed. * rtems/score/types.h: New file via CVS magic. * Makefile.am, rtems/score/cpu.h: Account for name change.
* 2001-11-28 Joel Sherrill <joel@OARcorp.com>,Joel Sherrill2001-11-281-0/+7
| | | | | | | This was tracked as PR91. * rtems/score/cpu.h: Added CPU_PROVIDES_ISR_IS_IN_PROGRESS macro which is used to specify if the port uses the standard macro for this (FALSE). A TRUE setting indicates the port provides its own implementation.
* 2001-01-03 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2001-01-031-1/+13
| | | | * rtems/score/cpu.h: Added _CPU_Initialize_vectors().