26 #include <rtems/config.h> 30 CPU_Uint32ptr_greater_equal_uintptr_t
35 CPU_Uint32ptr_greater_equal_uint32_t
38 #if defined(RTEMS_SMP) 52 static void _Per_CPU_State_busy_wait(
59 switch ( new_state ) {
66 _CPU_SMP_Processor_event_receive();
76 _CPU_SMP_Processor_event_receive();
91 switch ( current_state ) {
93 switch ( new_state ) {
104 switch ( new_state ) {
115 switch ( new_state ) {
133 void _Per_CPU_State_change(
141 _Per_CPU_State_busy_wait( cpu, new_state );
143 _Per_CPU_State_acquire( &lock_context );
145 next_state = _Per_CPU_State_get_next( cpu->
state, new_state );
146 cpu->
state = next_state;
152 for ( cpu_index = 0 ; cpu_index < cpu_max ; ++cpu_index ) {
155 if ( cpu_other != cpu ) {
156 switch ( cpu_other->
state ) {
170 _CPU_SMP_Processor_event_broadcast();
172 _Per_CPU_State_release( &lock_context );
The per CPU controls are initialized to zero.
void _Per_CPU_Perform_jobs(Per_CPU_Control *cpu)
Performs the jobs of the specified processor in FIFO order.
Processor is ready to start multitasking.
#define _ISR_lock_Release_and_ISR_enable(_lock, _context)
Releases an ISR lock.
This header file defines parts of the application configuration information API.
Information for the Assert Handler.
static void _SMP_Fatal(SMP_Fatal_code code)
Terminates with the given code.
#define SMP_MESSAGE_SHUTDOWN
SMP message to request a processor shutdown.
#define RTEMS_STATIC_ASSERT(_cond, _msg)
Asserts at compile time that the specified condition is satisfied.
#define _ISR_lock_ISR_disable_and_acquire(_lock, _context)
Acquires an ISR lock.
Per_CPU_State state
Indicates the current state of the CPU.
This is the terminal state.
Normal multitasking state.
Per_CPU_State
State of a processor.
#define ISR_LOCK_DEFINE(_qualifier, _designator, _name)
Defines an ISR lock variable.
Local ISR lock context for acquire and release pairs.
#define rtems_configuration_get_maximum_processors()
Returns the maximum number of processors which are configured for this application.
void _SMP_Send_message(uint32_t cpu_index, unsigned long message)
Sends an SMP message to a processor.
Multitasking start of processor is requested.
SuperCore SMP Implementation.